The sofleii tool (planned)
Note
Planned, not released. Nothing on this page exists yet. It describes what the tool is meant to do, so the details will change as it gets built. See the roadmap.
sofleii will be a command-line tool and a terminal UI (Rust, ratatui) for managing the keyboard from a terminal. It will live in this repo, next to the firmware it talks to.
How it talks to the keyboard
Through the Studio RPC protocol, the same one the Studio web app uses,
to the left half, over USB serial or Bluetooth. The firmware already
carries what it needs: v3.0.0 kept cormoran’s custom-RPC plumbing, with the
ble-management subsystem for BLE profiles and the runtime-sensor-rotate
subsystem for the encoder (see Firmware).
What it will do
- Status: whether the halves are connected to each other, and the connection to the host.
- BLE profiles: list, switch, rename and unpair.
- Battery levels.
- Output priority: USB or BLE first.
- Firmware updates: check the running firmware against the GitHub releases, and flash from the tool.
- The repo’s routines as CLI subcommands and TUI actions, instead of
remembering task names:
flash-release,flash-release-reset,build-flash,doctor,deps-checkanddraw. Today they are mise tasks.
Roadmap
- #44: sofleii, the Rust/ratatui CLI and TUI for status, control and repo routines (the epic).
- #45, firmware: forward the right half’s battery level to the host.
- #46, firmware: expose build and version info over Studio RPC, which is what makes update checks possible.
- #47: firmware update check and flashing from the tool.
- #48: run the repo’s user-facing mise routines from the CLI and TUI.
Until it exists, use Studio for profiles and live keymap edits, and the mise tasks for everything else.