Case study
A Linux driver and configuration app for a keypad with no Linux support
The Huion Keydial Mini (K20) has 18 keys and a dial, but on Linux it had no useful configuration path, so we built Keydial Commander: a driver and a configuration app, released as open source.
Python Linux evdev/uinput React WebSocket
The problem
On Linux the K20 presented fixed keyboard input. Using it as a programmable controller for creative work needed both an input-layer driver and a way to configure it without editing files by hand.
The same path had to work over Bluetooth and USB, suppress the original keystrokes, preserve user-level security, update mappings without service restarts, and stay understandable to people who did not want to operate a driver from the terminal.
Our approach
A Python driver grabs the device through Linux evdev, so the factory keystrokes never reach other apps, and emits the chosen actions through uinput as a user service, with no root at runtime. Profiles are YAML files that save as you edit.
One local service owns profiles and live updates and exposes the same behavior through a CLI, a local HTTP and WebSocket API, and a React and Vite interface where you click a key on a picture of the device to configure it. Keys light up as you press them, any action can be test-fired, and commands launch programs directly, never through a shell.
The result
Keydial Commander is public source under the MIT license. It supports all 18 buttons and the dial, shortcuts, chords, multi-step macros, application launch, profile switching, live input feedback, Bluetooth and USB operation, CLI control, and visual configuration.
Separating hardware input, action mapping, and configuration behind one local service is what made the driver usable from more than one interface. It is Linux-only and still alpha: setup needs a one-time device-access and service install, and broader hardware support and simpler packaging are still open.
The product
Keydial Commander
Open source Live
Turns the Huion Keydial Mini (K20) into a Stream-Deck-style macro pad on Linux โ remap all 18 keys and the dial to shortcuts, chords, macros, app launches, and profile switches.
Start a project
Have something to build?
Tell us what you're building. We reply personally with a few questions, then send a written scope before any work starts.