Only czdev CLI remains in the workspace. Tauri GUI was unused and
causing CI failures.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Uploads screenshots + icon + meta.json alongside deb
- Requires store.screenshots in app-builder.json
- title auto-read from app_name field
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Read ALL_PROXY first (socks5 works better in China)
- LFS verify is best-effort (some org configs reject OAuth tokens)
- Revert scope back to public_repo (sufficient after org approval)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Creates proper LFS pointer in the git tree so .deb files are stored
in LFS storage, keeping the repo lightweight.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Auto-detects system language (en/zh-CN/zh-TW).
Translations in crates/czdev/locales/*.yml, compiled into binary.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
czdev bump: queries published versions, shows next patch version.
README: added install instructions and publish workflow.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Picks up ee05edf which adds SDL_RenderSetLogicalSize to fix LCD
rendering position on non-HiDPI displays.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Move the desktop quickstart guide content into the main README so new
users see it immediately. Add NC2000, APPLauncher, and Hello example
emulator screenshots. Add dedicated EMULATOR.md for detailed usage.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Adds QUICKSTART_ZH.md and QUICKSTART_JA.md covering the full desktop
dev workflow (doctor → run → watch → deploy). Links added to the
English quickstart and README.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- apps/nc2000 @ e79f18a — dispatch host SDL events into handle_key_wayback
and drive RunTimeSlice off wall clock instead of the vsync-throttled
lv_tick, so NC2000 actually sees keystrokes and runs at the device's
5.12MHz CPU rate.
- emulator @ 6f86d75 — translate Fn/Sym modifier layers on the on-screen
keyboard (and on physical keys while a modifier is held), matching the
skin silkscreen (F1..F12 on digits, ▲▼◄► on F/X/Z/C, etc).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- apps/applaunch: prebuilt-emulator-app manifest that reuses the
libAPPLaunch.dylib the emulator's own CMake produces from the
UserDemo submodule. Zero edits to UserDemo.
- examples/lvgl_widgets: 3-line lv_demo_widgets() call, proving the
force-loaded demo symbols from the emulator are reachable.
- examples/lvgl_music: lv_demo_music() — LVGL's built-in music UI.
- examples/key_echo: lv_demo_keypad_encoder() — keyboard-driven
navigation demo covering the "pressing keys does something" case.
hello_cz gets a trivial text tweak.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Three small features so more app types can plug into the desktop loop
without touching emulator or UserDemo sources:
- Manifest gains cmake_args (extra -DX=Y) and cmake_target fields.
NC2000 uses both: passes ENABLE_PORT_LVGL=ON, points the SDK/LVGL
paths via ${CZ_SDK_DIR}/${CZ_LVGL_DIR} placeholders, and builds the
nc2000_lvgl target instead of the default bin_name.
- Manifest gains `env` with ${APP_DIR} substitution so apps can
declare runtime env vars (e.g. NC2000_ROM_DIR pointing at the
checked-out ROMs directory).
- New `runtime: "prebuilt-emulator-app"` for apps whose library is
built by the emulator's own CMake (e.g. APPLaunch via the UserDemo
submodule). czdev skips cmake for these and uses the pre-staged
file directly. Also fixed a same-path copy truncating the prebuilt
dylib to 0 bytes on macOS.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
sdk/include/lv_conf.h mirrors the emulator's (music + keypad_encoder
demos enabled) so apps using the SDK see the same LVGL feature set
the host provides.
sdk/cmake/CZApp.cmake gains:
- demos/ header search path so apps can #include
"widgets/lv_demo_widgets.h" etc.
- NO_KBD_STUBS option for apps that want to resolve the host's real
lv_sdl_keyboard_create at dlopen time (instead of the weak inert
stub). Default weak stub stays for the 90% of apps that don't care
about keyboard input.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
emulator submodule bumped to ci-cd branch head which enables LVGL's
built-in demos (widgets, music, keypad_encoder) as host-resolved
symbols. Apps can now declare `extern void lv_demo_widgets(void);`
and call it from app_main without vendoring demo sources.
apps/nc2000 is a new submodule pointing at CardputerZero-NC2000's
ci-cd branch, which adds the port_lvgl/ frontend producing
libnc2000.dylib/.so via cz_app.h. port_fb on the device is unchanged.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
The emulator always dlsyms lv_sdl_keyboard_create / lv_sdl_keyboard_handler
and, when the app provides neither, falls back to a bare keypad indev with
no read_cb. LVGL then spams "indev_read_cb is not registered" every tick.
CZApp.cmake now emits weak defaults that install a proper no-op read_cb,
matching LVGL's signature (returns lv_indev_t*). Apps that want real
keyboard input override these with strong definitions at link time.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Matrix job installs SDL2/freetype/cmake, runs czdev doctor, builds
hello_cz, then headless-launches the emulator with SDL_VIDEODRIVER=dummy
and asserts it survives for 5s. Windows has a separate informational
job that surfaces the pending LVGL DLL rework (T08 in DESKTOP_DEV.md §4)
rather than failing silently.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Three files (src/hello_cz.c + CMakeLists.txt + app-builder.json)
exercise the full SDK: implement app_main/app_event, include
sdk/cmake/CZApp.cmake, and declare runtime=lvgl-dlopen. Serves as
the canonical template for new apps and the fixture for CI smoke.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>