Fink Different: Keyboards as counter-culture.
If you watched Star Wars for the first time, without seeing images of the Empire’s perfectly spaced thousands of goose-stepping minions in spotless white-lacquered armor. If you didn’t see the fleets of black and grey tie-fighters, the immaculately designed star cruisers, the evil moon-shaped flagship… you wouldn’t know that the rebels were rebels. After all, rebels don’t look like rebels if they don’t have something to contrast them against. They just look like normal people. That’s probably why when you see Luke Skywalker, Han Solo or Finn (all rebels) dressed in stormtrooper garb, they somehow seem even more rebellious then they were before. It’s not what they’re wearing, it’s how they wear it. Dirty, scuffed, broken. Helmet missing or askew. An out of place, beat up weapon slung diagonally across their body. It’s the simple act of defacing the uniform that identifies them in our mind as counter-cultural. Funnily enough, it works in reverse. To the dismay of...
Oct 6, 2024
Image credit: @HoffmanMyster
Remapping Keys “Mapping” refers to the relational ‘map’ between the physical keys on a keyboard and the signals sent to the computer or device when a key or key combination is pressed. For most non-mechanical keyboards, this mapping is rigid and cannot be modified. Custom keyboards and most popular mechanical keyboards can be remapped using keymapping software—sometimes proprietary, especially for the latter category of brands like Logitech or Razer. We are more interested in custom boards and other offerings that do support more keymapping customization. Arguably the “default” and most common software solution for custom keymapping is QMK, with QMK Toolbox as their software interface to flash custom mappings. QMK is incredibly powerful, but it does have two fairly major drawbacks—it’s not newcomer-friendly, and it requires re-flashing the firmware to make any changes. There is no GUI; all custom mapping is done in a text editor, and installation is carried out through the terminal. If you want to tinker around and see how a handful of configurations work, you’ll be going through the remap and flash process each time you make a change. Great for power users and those familiar with these processes, not so much for the average user. Remapping With Visuals, on the Fly For everyone else, there are two main options aside from using QMK and QMK Toolbox. VIA and Vial offer fully-fledged graphical interfaces to remap compatible keyboards, with changes applied immediately when adjusted in the software. This makes for a very powerful tool for anyone curious to try different layouts or frequent little tweaks to find the perfect settings for them. Between the two options available, VIA is currently the more prevalent choice, so you’ve probably seen that name floating around discussions online. Vial operates very similarly to VIA, and can effectively be used interchangeably (more on Download VIA Definitions below). VIA has a more elegant interface and is probably more friendly to the novice user. Recently(ish), however, VIA became a Chrome webapp-only application, which caused concern for some users about security—ultimately it is up to the user to make the call here. I personally use Vial, so the remainder of this article will walk through the process using Vial. (Note that VIA and Vial protocols are compatible with each other, possibly excepting encoders/knobs, so this is not a permanent decision to be made between the two programs)
Using Vial After downloading and installing Vial, you can get started almost immediately. In many cases, the keyboard you’re trying to use will automatically be recognized by Vial and can be remapped without any additional steps. Download VIA Definitions In some cases, the keyboard will have a VIA-compatible firmware installed that isn’t natively recognized by Vial. If your keyboard doesn’t show up in Vial when you plug it in, the software will prompt you to Download VIA Definitions in the File menu “in order to enable support for VIA keyboards”.
Sideload VIA JSON If your keyboard still is not recognized after loading the VIA definitions (and you know that it is compatible with VIA—if not, you will need to flash a compatible firmware first), then you can manually sideload the VIA JSON file from the File menu -> Sideload VIA JSON. json files are the link between keyboard and software; they inform VIA and Vial of the matrix of keys as it exists physically on the keyboard, and they also define a starting point for keymapping of those keys. Without this file and information, the software has no idea how many keys the keyboard has or what each of them should be doing.
Remapping with Vial After the device is auto-detected or the .json file is sideloaded, modifications can be made to the keymapping using the Vial interface and all changes will be applied immediately and saved to the device. After closing the software the custom keymapping will be retained on the device, even after unplugging and replugging. The one thing to keep in mind is that if you had to sideload the .json file in order to remap, that .json file will need to be sideloaded every time you want to remap the keyboard using Vial (not every time you use it, only if you want to change the keymap). Keep the file around and handy for when that time comes. (Note that this is the case for using VIA in addition to Vial if sideloading is needed) Programming the Megalodon Macro Knob Pad The Macro Knob Pad, our example device for this article, falls into the last category described above—it is compatible with VIA, but does not exist in the repository to be automatically detected upon connection. We will need to sideload the VIA .json file into Vial in order to remap the keys and knob. Sideload the JSON File The .json file used for the Macro Knob Pad can be found at keebmonkey’s wiki site, direct link here. After sideloading the .json file for the macro pad, we see the layout below. Vial always defaults to displaying the “Layer 0” mapping, which is the default layer. For most keyboards it will be fairly obvious which positions in Vial correspond to which physical keys, but some of the odd layout boards or small macro pads can be a little less clear (all four keys and the knob are shown in a row here, despite the knob actually being in the “second row” of the pad). Default Mapping Layer 0 default mapping for the Macro Knob Pad is shown below:
Side Note—Programming the Megalodon Triple Knob Macro Pad I won’t be going into detail on this here, but wanted to share an update from Keebmonkey regarding the Megalodon Triple Knob Macro Pad. Keebmonkey posted this guide with instructions to flash an updated firmware to the triple knob macro pad as well as a guide by Keebmonkey Discord member epid#8098 bringing native Vial support (no sideloading necessary) to the macro pad. Both resources are worth looking into if you have the triple knob macro pad and want to enjoy the latest and greatest firmware options available. Other Uses The sky is really the limit with macros and complicated keymapping functionality. You could program a macro pad as an editing interface, using knobs to scroll a timeline and keys to cut footage with the blade tool, etc. What configurations do you use with your macro pads, knobs, or other keys? Is there anything missing from this guide that could use some more attention? Let us know in the comments!