-
Notifications
You must be signed in to change notification settings - Fork 2
V2 Roadmap
V1.0.0 shipped with the full protocol layer, pages, icon library, behavior modes (tap, toggle, momentary, shift), keystroke recorder, media keys, button LEDs, dark mode, Settings window, launch at login, device self test, and a notarized release pipeline.
V2 is organized in five tracks; top items first within each track. Items marked done shipped early, inside the 1.0 cycle.
Goal: a stranger opens the app and assumes Apple shipped it.
- Sidebar (NavigationSplitView), three columns: sidebar (pages, real list with double-click rename, drag to reorder, per-row delete), content (device mirror), detail (inspector); profiles deliberately deferred to the app-switching-profiles feature below, which needs multi-profile UI anyway
- Tile drag and drop, Home Screen icon shift semantics (not swap)
- Drag a tile onto a sidebar page row to move it to that page; only completes if the destination has a genuinely empty slot
- Profile version history in place of undo/redo, matching Apple's own autosave-plus-versions model (File > Revert To > Browse All Versions): every save snapshots the state, Settings > History browses and restores, Duplicate Profile is the manual checkpoint
- Hover states (Dock-style magnify), animated selection, non-blocking banner when no device is connected, first-run onboarding sheet
- Settings window at Cmd comma (General, Device, Icons, History, About)
- Native toolbar and a top level Device menu
- In app Help window on Cmd ?
Definition of done: side by side with System Settings, nothing looks foreign. Deferred on purpose: profile management UI (see app switching profiles below), native toolbar redesign beyond what shipped, notch style HUD confirmations.
- LED rainbow cascade on connect; doubles as a hardware self test
- Full screen test pattern on demand (Cmd T); gradients, rings, stripes, corner markers, numbered tiles and knob zones
- Brightness fade in on connect instead of a hard jump
- Public repo, MIT license, README, PROTOCOL.md, CONTRIBUTING.md, SECURITY.md, notarized GitHub Releases
- Homebrew tap (
brew tap shoelesstim/tap) - CI on every push and pull request (build and test on stable Xcode; caught a real strict-concurrency bug the first day it ran)
- Split RazerStreamKit into its own SPM package so other apps can depend on just the protocol layer
- Submit to the official homebrew/cask once the project has traction
- App switching profiles: the deck follows the frontmost app to its mapped page; manual override always wins; mapping editor in Settings
- Profile import and export
- Native single file share format (.razerstream)
- Elgato Stream Deck profile importer with a layout review step
- Loupedeck 6.3 import for whatever is parseable from local storage
- Icon libraries beyond SF Symbols: bundled Lucide and Bootstrap Icons (both MIT), plus user icon packs from any folder of PNG or SVG files (Stream Deck packs work as is); more packs are a copy into scripts/fetch_icon_packs.sh
- Live tiles: dirty-tile refresh, self-updating content instead of a
static label or icon
- Clock: current time and weekday, updates itself once a minute, no button press needed
- Now playing with album art, CPU and RAM meters, calendar next up
- A general data or plugin API so a tile can point at a script or process and redraw from its output; requested on Reddit by a former Loupedeck plugin author. Needs its own design pass (refresh cadence per tile, error display on script failure) before building.
- Haptics; vibrate patterns per action type (the hardware command exists)
- Touch gestures; two finger swipe switches pages
- Knob acceleration; fast turns scale the action
- Device sleep; dim after idle, wake on any input
- Webhooks and Home Assistant or MQTT actions
- Plugin API; action providers as separate processes or scripts (see 4)
The maintainer is not building these; the project is structured so someone else can, and PROTOCOL.md means a port never needs a serial sniffer.
- Linux kit and CLI: RazerStreamKit is Foundation plus POSIX serial I/O;
it needs one small device discovery shim behind
#if os(Linux)and the rstream CLI ports nearly for free. Good first contribution. - Linux GUI: a GTK or Qt frontend on top of the kit
- Windows: realistically a C# app built against PROTOCOL.md
Open an issue saying what you are taking, or comment on an existing one; small focused PRs beat big ones. Hardware findings belong in PROTOCOL.md.