Modular control surface
Every key is a display.
Nobble's keys carry their own screens, so the legend on a key is whatever that key does in the application you are using right now. Switch app, and the keyboard has already changed.
Watch the legends follow
Foreground app Video editor
A desktop client watches which application is in front and pushes the matching layout to the device. Nothing is printed, so nothing is wrong when you change tools.
Available now
The addon SDK is public.
An addon is a separate program. The client starts it, speaks line-delimited
JSON to its stdin and stdout, and supervises it — a crash is an exit code,
not a dead client. You implement one trait and call run();
the SDK owns the loop, the framing and the protocol version.
// the whole of an addon that does one thing
impl Addon for Hello {
fn id(&self) -> &'static str { "hello" }
fn perform(&mut self, action: &str, _: &Invocation<'_>)
-> Result<(), AddonError> { … }
}
fn main() { nobble_addon_sdk::run(Hello); }
Apache-2.0, and permissive on purpose: a restrictive licence on an SDK propagates into everything written with it, so an addon you write is yours — closed-source if you like, sold if you like.
Where the project is
Honest about what exists.
-
Public
Addon SDK Builds on its own, documented, Apache-2.0.
-
In development
Desktop client Detects the foreground application and serves layouts.
-
In development
Hardware and firmware Not shipping. There is nothing to buy yet.