Nobble github / sdk →

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.