QMK/VIA - The Soul of Mechanical Keyboards
Mechanical keyboards are loved for their tactile feedback, satisfying “tok” sound, and endless customization options. However, for me, the true magic lies not just in the hardware but in the software, particularly when it comes to smaller keyboards.
Why Opt for a Small Keyboard?
At first glance, compact keyboards like 60% or 65% layouts may seem restrictive. You might ask yourself:
- Where are the function keys?
- Where is the Escape key?
- What about Page Up, Page Down, or the arrow keys?
These are valid concerns, but the answer lies in the power of QMK and VIA. These tools revolutionize keyboard functionality by introducing layers, custom keymaps, and even dual-function keys.
In the following, I’ll walk you through how I customize my keyboard using QMK/VIA.
How Do I Customize My Keyboard with QMK/VIA?
Over the years, I’ve used various keyboards, and I’ve finally settled on the Keychron Q8 Max (Alice Layout) QMK/VIA Wireless Custom Mechanical Keyboard.

This keyboard supports QMK/VIA right out of the box. You can assign any keystroke to any physical key on the keyboard. To assign keys, you can use https://usevia.app/. For more advanced key functions, you can create keymaps using the open-source qmk_firmware repository on GitHub.
Here’s the first layer of my keymaps:

Caps Lockis assigned toMT(MOD_LGUI,KC_ESC), meaning it acts as the Escape key when tapped, and asCommand(akaGUI) when held. This allows one physical key to serve two functions.- The
Enterkey is assigned toMT(MOD_LGUI | MOD_RGUI,KC_ENT), so holding it triggersCommand, while tapping it inputsEnter. - The
fn2key is assigned to a custom key, Super Cmd↯TAB, programmed using QMK firmware. The source code can be found here. This key simplifies app switching—tapping it once activates app switch mode, and tapping it again behaves like theTabkey. It’s become an essential key for me. - I assigned
Mission Controlto theCommandkey on the left of the right space bar. - Both space bars are assigned to
LT(2,KC_SPC), meaning a tap inputsspace, and a hold switches to Layer 2. - The
Esckey is programmed toC(S(G(KC_4))), which is a shortcut for capturing a portion of the screen in macOS (Control + Shift + Cmd + 4). - The four arrow keys are mapped to
LCA(KC_ENT)(Ctrl+Option+Enter),LCA(KC_LEFT),LCAG(KC_LEFT), andLCA(KC_RGHT), which are shortcuts for Rectangle software. - The key under the
Esckey is a transparent keycap with blue light. I use this key to toggle to Layer 4. It’s transparent because I program it to change colors across layers, so I always know which layer I’m on. - The
vkey is assigned toMT(MOD_LCTL,KC_V)and thenkey toMT(MOD_LCTL,KC_N), allowing me to use them asControlwhen held, andvornwhen tapped. This saves me two dedicatedControlkeys in a more comfortable position.
Here’s the keymap for the third layout:

As a VIM user, I prefer using h, j, k, l as arrow keys. To use them, I simply hold the space key, which allows me to navigate as if I were using VIM across all applications. I also assign Page Down, Page Up, Home, End, Backspace, and Del keys on this layer, making them easily accessible near the space bar—this saves me a lot of finger movement.
Additionally, VIA supports macros. I created a macro that performs Command + A + Command + Backspace to clear a text box. I’ve assigned this macro to the y key on this layer.
What I am showing is just a tip of the power of QMK/VIA; the possibilities are limitless for you.