Making the Huion Keydial Mini K20 work on Linux
The K20 had no Linux support, so I wrote a driver and a visual editor for it: all 18 keys and the dial, over Bluetooth or USB, with no root at runtime.
The Huion Keydial Mini (K20) is a small keypad with 18 keys and a dial, and it wasn’t even supported on Linux. I wanted two things: to make it work properly on Linux, and to have an application that uses the hardware in a genuinely user-friendly, feature-rich way. That became Keydial Commander.
The hard part: the factory keys
Out of the box, the K20 sends fixed keystrokes. If you only listen for them and add your own actions on top, your apps get both: the factory keystroke and yours. So the driver grabs the device through Linux evdev, which stops the factory keystrokes from reaching anything else, and emits the actions you chose through uinput. It runs as a user service with no root at runtime, and it works the same over Bluetooth and USB.
Making it friendly
A driver you configure by editing files isn’t much of a feature. Keydial Commander has a visual editor: click a key on a picture of the device, or drag an action onto it. Keys light up as you press them, and any action can be test-fired from the editor. Every key and the dial can send shortcuts, chords, multi-step macros, app launches, or profile switches.
Profiles are YAML files that save as you edit. A CLI, a local HTTP/WebSocket API, and the React interface all drive the same service, and commands launch programs directly, never through a shell.
Try it
If you own a K20 and run Linux, Keydial Commander is free and MIT-licensed on GitHub. It’s alpha, and setup needs a one-time device-access and service install. Try it, and open an issue if your setup misbehaves.
Next up: automatic per-app profile switching and easier packaging.
More screenshots are on the Keydial Commander page.