Keyboard configurator


A little while ago, we looked at a keyboard configuration utility called Chrysalis that lets you modify the keyboard layout and layer functionality of Kaleidoscope-powered open source keyboards. It's a brilliant tool for people who type a lot, but its effectiveness is restricted to a small set of keyboards, including the Keyboardio Model 01, the Atreus, Dygma's Raise, the ErgoDox EZ, and other keyboards wired like the original ErgoDox. KMonad is another keyboard configuration tool, only this time targeting keyboards using the super-powerful and more populous Quantum Mechanical Keyboard Firmware. It even includes support for the aforementioned ErgoDox EZ. While it officially supports only a handful of keyboards (pun intended), the community maintains support for dozens more.

You've probably guessed by now that KMonad isn't a KDE application. It actually takes its name from the minimal window manager, xmonad, with the implication being that KMonad manages your keyboard rather than your X windows. This kind of DIY attitude toward both the hardware and the firmware obviously requires some serious commitment, which is just as well. KMonad is written in Haskell and requires some serious installation patience to build from source, which is currently the only way to get hold of it. The tool itself is equally minimal on the command line. With the binary in your path, you run it with a single argument pointing to a configuration file. KMonad will then sit between the raw keyboard inputs and the kernel, so you're able to almost completely manipulate and transform the input events before they're passed to your user-level operating system. There's an excellent syntax document included with the package that explains everything you can do with the configuration file, which includes aliases, layers, and macros. It's powerful and tricky but capable of building almost any keyboard configuration you can imagine.

Take complete control over your keyboard by changing its layout, triggering macros, and replacing characters.

Project Website

Recipe manager

Buy this article as PDF

Express-Checkout as PDF
Price $2.95
(incl. VAT)

Buy Linux Magazine

Get it on Google Play

US / Canada

Get it on Google Play

UK / Australia

Related content

  • ScummVM

    The SCUMM engine is the basis of almost all the classic

    adventure games by Lukasfilm Games/LukasArts.

    Now fans can launch these game on Linux thanks to


  • Blender

    With a little help from Blender you can create your own 3D models – including animations. This article shows you how to assemble a partially automated virtual watch model with Blender and Python.

  • Retro Gaming

    Many computer games from the 1980s and 1990s enjoy cult status. Graphics and sound were not very advanced back then, which forced the producers to impress gamers with good ideas and a convincing level of design. Emulators let you run those classic games on a Linux PC.

  • Get Started with Fedora

    Fedora might look foreign at first, but after a few minutes of finding your way around, you can feel right at home. To help jump start your journey into Fedora, let's take the grand tour.

  • Sheep-Throwing Marsupial in the "Yo Frankie" Game

    If you've ordered the DVD, you're probably already busy throwing sheep and beating up rats in a lovely virtual countryside.

comments powered by Disqus
Subscribe to our Linux Newsletters
Find Linux and Open Source Jobs
Subscribe to our ADMIN Newsletters

Support Our Work

Linux Magazine content is made possible with support from readers like you. Please consider contributing when you’ve found an article to be beneficial.

Learn More