Peeling Back The Keyboard Onion, Layers Upon Layers: Reprogramming Your Keyboard

In a previous post, I briefly mentioned QMK and VIA.

QMK is compiled firmware for supported keyboards. This allows you to load firmware with custom functionality and maps onto a keyboard. This allows you to customize nearly every aspect of the keyboard’s behavior. So, what is VIA? VIA is a feature in QMK that lets you change your keymap on your keyboard without needing to reflash firmware. Some keyboards, Epomaker ones come to mind, have implemented VIA support without QMK…or at least possibly violating the open source license of QMK. I could live with that, I’m not an open source purist, but their implementation is also frequently incomplete and buggy.

There is also a fork of Via called Vial, which requires porting firmware to include support for additional QMK firmware features in software.

The advantage of all of these options is you can reprogram and customize the behavior of your keyboard and save it to the keyboard…making it independent of any computer. Many keyboards provide driver software that can do ‘some’ of the same things, but they are also only for Windows. I’m a Linux user, so I’m often out of luck there. Linux does have some key remapping options, but my current recommendation is a very low level option called keyd. It remaps keys at that level, and supports a lot of the features that you usually need QMK for. Keyd supports multiple keyboards with different layouts, modifying based on the USB vendor ID of the keyboard, and always you to remap any key combination and even add layers.

So, let’s dig into some of the features. Layers are built into most keyboards using the FN key…when you press it, this allows for different keys. Layers are essentially overlapping keyboard maps, which can be triggered. The Mac/Windows toggle on your keyboard, if you have one, toggles between two keyboard maps. The FN key activates a new layer when it is held. I have coded something in QMK to actually change the backlight color of a keyboard to indicate what layer was activated.

QMK/VIA allows the following sorts of behaviors to be triggered by keypress

  • Change the default layer
  • Activate layer when key is held
  • Activates layer when held, keypress when tapped
  • Activates layer until next key is pressed
  • Toggle the layer on/off
  • Tap the key 5 times to lock the layer in place.

Increasingly, discerning keyboard users are demanding this feature on keyboards. I wrote about the budget C3 Pro from Keychron, which is a full QMK/VIA supported TKL. The other budget option I found was the Skyloong GK61 60% hotswappable QMK/VIA keyboard. Budget as in, under $50. The 50-100 market is getting options as well. This shouldn’t be a luxury feature, and increasingly it isn’t.

My layer needs are very simple. I have a 75% keyboard which has Delete, Page Up, and Page Down on the right side…which means no Home, End, Insert. The 75% profile is not consistent about what keys will be offered in the format factor. With a QMK/VIA keyboard, I could make those keys whichever ones I wanted, change the keycaps…and it would behave that way forever. This keyboard though, doesn’t have that…so I’m using the keyd daemon…which of course means if I move to another computer, it no longer works.

The icing on the cake for these options are macros. The ability to trigger sequences of entries. And again, with QMK/VIA can be stored in the keyboard itself.

So, why not check this out? And here’s hoping more manufacturers include the option.

Leave a Comment