December 23, 2022

A Detailed Overview of QMK, VIA, and Vial Visual Configurators for Mechanical Keyboards


An overview of the visual tools available for mapping key configurations on custom made mechanical keyboards.

QMK Configurator

QMK is one of the most common default firmware that come preinstalled with custom keyboards like the 40% ortholinear Planck.

The high-level workflow for updating the QMK firmware is:

  1. Modify your keymap code within a QMK build environment
  2. Generate the firmware in .hex/.bin file
  3. Flash/reflash the generated .hex/.bin file to the keyboard with the QMK Toolbox

Since setting up the QMK build environment is non-trivial, the QMK Configurator can make the process of generating the firmware easier.

The QMK Configurator doesn’t support all the QMK features (eg. Tap Dance). Per the documentatio: “Features that require adding functions to the keymap.c file, such as Tap Dance or Unicode, can not be compiled in Configurator at all.

QMK Setup Steps

  1. Go to
  2. Select your keyboard
    • In my case planck/rev6
  3. Select the physical layout of the keyboard
    • In my case the default LAYOUT_ortho_4x12
  4. Give the keymap a name
    • Eg. my_first_keymap
  5. Create the keymap
    • Click Load layout
    • or configure manually by drag-and-drop, clicking or tapping keys directly.
  6. Compile from within the configurator.
    • This takes some time (1-2 minutes), and for that reason, local compilation is preferred to speed things up when doing multiple tests.
  7. Download:
    • Generated firmware to flash the keyboard
    • Source code to do more edits on your local QMK environment
    • Keymap as a .json file so you can reimport it on the QMK configurator at a later time and do more edits. (This is not the file you flash on the keyboard)


The nice thing about VIA is that it doesn’t require to repeatedly flash your keyboard to update the layout. This means changing the keymap of the keyboard can be done without needing to reflash firmware.

And via comes with a nice VIA Configurator to visually program the keyboard and load the configuration on-the-fly.

VIA looks awesome but according to QMK’s collaborator Keebio, VIA comes with certain limitations: “Do note that not all features of QMK are supported by the VIA Configurator, so if you want to use more advanced features of QMK like Tap Dance, then you’ll need to set up a QMK build environment. By default on most VIA-supported keyboards, there is a limit of 4 layers. The ability to change rotary encoder keycodes is also not currently present in VIA.”

Another downside of VIA is that it is not opensource. For that last reason, some people look into other options (like Vial).

On the other hand, VIA has a keyboard testing tool with visual and sound indicators. Helps make sure your keyboard and all switches are working as expected.

Via Setup Steps

  1. Confirm your keyboard is in the supported list
  2. Download VIA firmware for your keyboard
  3. Reset and flash your keyboard (you only need to do this one time) (?using QMK Toolbox to flash it to the keyboard ?)
  4. Use the VIA desktop app to make changes to the keymap. Changes in the app instantly update the keyboard without the need for compiling or flashing.


Vial is another visual configurator that doesn’t require to flash the keyboard. It is open source, which is great, and allows the configuration to be stored in the keyboard without merging to the repo. Again this is great to speed things up, especially when (getting started with programmable keyboards and) testing new configurations.

Per Vial site “Vial is decentralized: with Vial you do not have to submit your keyboard as a pull-request to any third-party repositories before it can be used in the GUI; instead, the keymap JSON definition is stored within the keyboard firmware and is retrieved at runtime.”

According to their site “Vial is an open-source cross-platform […] GUI and a QMK fork for configuring your keyboard in real time.” Unlike VIA, Vial is open source.

Vial also seems to suffer from the same size limitation as VIA and limits the number of layers to 4 or less.

Vial (and VIA) seems like a good option for quickly testing layouts, but complex setups (eg. adding support for multiple alternative layouts like QWERTY+Dvorak+Coleman) might require going back to QMK directly.

Vial Setup Steps

  1. Get the firmware
  3. Use QMK Toolbox to flash it to the keyboard
  4. Vial application will auto-detect the board when it’s plugged in?

Comparison & Final thoughts

Open Source
Works without repeated flashing
Works without compilation
Speed slow fast fast
Supports advanced features (eg. Tap Dance)
Supports encoders
Layers 30+ ~4 ~4

I’d advice to use VIA and Vial whenever possible and only use QMC if you need more than 4 layers.

December 23, 2022


Discuss on Twitter ↗

Sign up for the mailing list

Previous:Order, Rules, and the Creative Life
Next:AI Skepticism: A Look at the Ethics and Future of AI Art