Goal: A "Hello World" Tauri app that can detect the Matrix and draw on it.
Delivery: Single Executable (MainFrameWork.exe, ~8MB).
- [Setup] Scaffold Tauri Project
- Initialize Tauri v2 (Rust) + React (TypeScript) + Vite.
- Configure
tauri.conf.jsonfor "Single Instance" and "Hardware Permissions".
- [Core] Rust Persistence
- Implemented as
AppState+save_settings()/load_settings()inpersistence.rs(named differently than originally planned, same result). - Add
aes-gcmcrate. Implementsave_encrypted()andload_encrypted()functions.
- Implemented as
- [Feature] Matrix Canvas
- Rust: Implement
serialportcommunication with RP2040. - React: Build 34x9 Grid UI.
- Bridge: Create Tauri Command
draw_matrix(bytes)to flush buffer.
- Rust: Implement
Goal: Dynamic "God Mode" Dashboard (Fans, Battery, Hot-swap).
- [Core] Device Manager
- Rust: Build
DeviceScannerstruct usingrusbcrate. - Poll Loop: Check for VID
0x32AC(Framework) every 2s or on USB Event. - React: Update Dashboard tabs based on
Scannerstate.
- Rust: Build
- [Core] EC Access — via
framework_lib::chromium_ec, not a custom ioctl/extern-C implementation as originally planned here.- Linux: Implemented in
ec_control.rs(battery, charge limit, temps, fan RPM/duty/auto) — written and type-checked, but not yet run against real Linux hardware (this project's dev/test machine is Windows-only). Needs that verification pass before calling it done. - Windows: Deliberately not implemented — the only available EC driver requires disabling Secure Boot, which this app won't automate. See SECURITY.md.
- Linux: Implemented in
- [UI] Dashboard Widgets
- Bind "Refresh" button to
scanner.refresh(). - Build Fan Curve Graph (SVG).
- Bind "Refresh" button to
Goal: Full Keyboard/Macropad configuration via Raw HID.
- [Core] VIA/HID Service
- Rust: Implement
hidapito send/receive Raw HID packets. - Logic: Port QMK/VIA protocol definitions to Rust structs.
- Status: RGB Lighting Control Implemented (MVP).
- Rust: Implement
- [UI] Keymap Editor
- Build Layer visualizer.
- Build Macro recorder.