We earn a commission if you buy through links on this page, at no extra cost to you.

QMK and VIA Explained — the Sleeper Feature That Outlasts RGB

QMK is open-source firmware that runs on the keyboard itself — it can remap any key, build layers, record macros, and create tap-hold dual-function keys (tap Caps Lock for Esc, hold it for Ctrl). VIA (and its cousin Vial) is the graphical app that makes all of that point-and-click, with every change stored on the keyboard's own memory. That storage location is the whole story: your keymap travels with the board to any Mac, Windows, or Linux machine, with no driver and no resident software — unlike vendor apps such as Logitech Options+ or Razer Synapse, which must run on each computer. The catch to check before buying: "QMK-compatible" is not the same as "VIA-enabled out of the box."

The one thing to know: many boards advertise "programmable," but usually that means brand-specific, per-machine (often Windows-only) software. QMK/VIA is different in kind, not degree — the remapping lives in the keyboard's firmware, so it works everywhere, forever, with nothing installed. And you don't need to code: a VIA-enabled board gives you about 90% of the value with zero firmware flashing.

What is QMK, exactly?

Every keyboard has a small microcontroller running firmware — the program that turns a physical keypress into "send the letter A." On most keyboards that firmware is fixed at the factory. QMK (Quantum Mechanical Keyboard) is an open-source replacement for that firmware, and because it controls the board at the firmware level, it can redefine what any key does:

Because all of this happens inside the keyboard, the operating system just sees ordinary keystrokes. The same board behaves identically on Mac, Windows, and Linux — no driver, no background app, no per-OS reconfiguration.

What is VIA (and Vial), and why does on-board storage matter?

Historically, changing a QMK keymap meant editing source code and compiling firmware. VIA removed that barrier: it's a graphical app (desktop or web-based) that shows your keyboard's layout, lets you click a key and assign it a new function, and applies the change instantly — no compile, no reflash. Vial is an open-source alternative in the same spirit, with its own firmware fork and some extra GUI-exposed features (notably easy tap-hold configuration).

The crucial detail is where the configuration lives: on the keyboard. VIA writes your keymap into the board's onboard memory and then gets out of the way. Close the app, uninstall it, plug the board into a different computer — every remap, layer, and macro still works, because the keyboard itself is doing the remapping. This is the difference between configuring a keyboard and configuring a computer, and it's why we call it the sleeper feature: it's the one spec that follows you between machines.

How is that different from Logitech Options+ or Razer Synapse?

Honestly stated: vendor software is capable, and for many owners it's fine. Logitech Options+ and Razer Synapse can remap keys, build macros, and sync settings to a cloud account. The difference is architectural — the remapping happens in software on the computer, not in the keyboard's firmware. That's a tradeoff, not a scandal, but it has real consequences:

TraitQMK/VIA (on-board firmware)Vendor apps (Options+, Synapse, etc.)
Where remaps liveIn the keyboard's own memoryIn an app on each computer (sometimes cloud-synced)
Software running while you typeNone — configure once, close the appResident background app required for custom behavior
New / locked-down computerEverything works instantly, nothing to installInstall the app, sign in, re-sync — often impossible on corporate machines
Operating systemsIdentical on Mac, Windows, LinuxMac/Windows apps; Linux typically unsupported
Layers & tap-hold dual-function keysCore featuresLimited or absent; mostly single-key remaps and macros
Telemetry / accountNone required; open-sourceApp accounts and telemetry-adjacent data collection are common
Honest upsidePortable, permanent, privatePolished UI, device-ecosystem features (e.g. Logitech Flow), zero learning curve

If you use one keyboard on one personal Windows PC and never remap beyond media keys, vendor software costs you little. The gap opens for anyone who works across multiple machines or platforms, uses a corporate laptop where installing software is restricted, or wants remapping deeper than "swap two keys."

Layers, explained with the key you already use

You already use a layer: the Fn key on a laptop. Hold Fn, and the same physical keys do different things — F5 becomes brightness, arrows become media controls. QMK generalizes exactly that idea: a layer is a complete second (or third, or fourth) keymap for the whole board, activated by holding or toggling a key of your choice.

This is what makes small keyboards practical. A 60% or 65% board has no function row and few or no arrow keys — but with a layer, holding (say) Caps Lock can turn IJKL or WASD into a full arrow cluster right under your fingers, with Home/End/PgUp/PgDn beside them. Your hands never leave the home row, which is precisely the argument for compact boards in the first place — if the firmware lets you build the layer. This is why QMK/VIA matters most on the compact layouts covered in our layout size guide.

Why developers and power users care most

This site's core reader is a desk worker or developer, and QMK/VIA is disproportionately valuable to exactly that person:

The compatibility gotcha: "QMK-compatible" ≠ "VIA-enabled"

Spec sheets blur three different things, and the difference decides how much work you're in for:

And an honest complexity note in the other direction: flashing QMK from source is a hobbyist path. It unlocks exotic features (home-row mods, combos, rotary-encoder tricks), but it involves a firmware toolchain, documentation reading, and some risk of user error. A VIA-enabled board delivers roughly 90% of the practical value with zero code — most people should stop there, happily.

Which of our picks support QMK/VIA?

Full spec comparison on the best mechanical keyboards page.

Frequently Asked Questions

QMK (Quantum Mechanical Keyboard) is open-source firmware that runs on the keyboard's own microcontroller. It decides what every physical key sends, so you can remap any key, define multiple layers, record macros, and create dual-function tap-hold keys (tap for one action, hold for another). Because it's the firmware itself — not an app on your computer — the behavior is identical on Mac, Windows, and Linux with no driver or resident software.

VIA is the graphical configurator that sits on top of QMK-family firmware. Instead of editing keymap source code and compiling firmware, you open VIA, click a key, pick its new function, and the change applies instantly — stored in the keyboard's own memory. QMK is the engine; VIA is the point-and-click dashboard. Vial is a similar open-source alternative with its own firmware fork and extra features like on-GUI tap-hold configuration.

On the keyboard. That's the defining difference from vendor software like Logitech Options+ or Razer Synapse, which apply remaps from an app running on each computer. A VIA-configured board carries its keymap in onboard memory: plug it into a work laptop, a friend's PC, or a locked-down machine where you can't install anything, and every layer, macro, and remap works immediately.

No — this is the compatibility gotcha. A board can run QMK firmware but ship without VIA support enabled, meaning you'd need to flash VIA-enabled firmware (and have a VIA definition JSON for the board) before the GUI works. If you want zero-code remapping, look specifically for 'VIA support out of the box' or the board listed in VIA's official definitions — not just the phrase 'QMK-compatible.'

Not for VIA. Compiling and flashing QMK from source is the hobbyist path — worthwhile if you want exotic features, but it involves a firmware toolchain and a real learning curve. A VIA-enabled board gives you roughly 90% of the practical value (remaps, layers, macros, tap-hold on Vial) through a GUI with zero code. Most buyers should simply buy VIA-enabled and never touch a compiler.

From our picks: the Keychron V-series and K8 Pro support QMK/VIA (more limited on the wireless K-Pro line). The RK Royal Kludge RK84 and EPOMAKER TH80 Pro use their own proprietary Windows software; the Logitech MX Mechanical uses Options+ and the Razer Huntsman uses Synapse — capable apps, but per-machine, resident software, not on-board firmware remapping. NuPhy varies by SKU. 'Programmable' on a spec sheet does not automatically mean QMK/VIA.