Moving from VIA to Raw QMK Firmware: When to Switch

· by Noah Fischer · 4 min read

Moving from VIA to Raw QMK Firmware: When to Switch

What’s the Real Difference Between VIA and Raw QMK?

VIA sits on top of QMK like a dashboard sits on top of an engine. It lets you remap keys, build layers, and tweak lighting through a clean GUI, no compiling, no terminal, nothing scary. Raw QMK strips that away. You write your keymap by hand in keymap.c and build the firmware yourself with QMK’s CLI or QMK MSYS.

Here’s a simple way to picture it: VIA is the automatic transmission. Raw QMK is the manual. The automatic gets you there faster on a normal Tuesday, but the manual gives you access to every gear the engine actually has, including the ones you didn’t know existed.

Signs You’re Ready to Switch

You don’t need to jump to raw QMK just because you feel “advanced” now. Switch because VIA is genuinely blocking something you want to build. Here’s what that usually looks like in practice:

If none of this applies to you yet, stay on VIA. It’s not a training-wheels tool you’re supposed to graduate from. For a lot of setups, it’s genuinely the right tool, full stop.

What You Gain by Switching

What You Lose (Trade-offs)

How to Migrate Safely

  1. Back up your current VIA keymap first. Export the JSON from VIA before you touch anything else. This is your safety net.
  2. Clone the QMK firmware repo and find your keyboard’s folder under keyboards/.
  3. Make a new keymap folder, something like keymaps/yourname, instead of overwriting the default one. This keeps your work separate and safe from future QMK updates.
  4. Rebuild your layers in keymap.c, using your VIA export as the cheat sheet for keycodes and layer order.
  5. Add advanced features one at a time. Write one macro or one combo, compile it, test it on the actual board, then move to the next. Don’t try to port everything in one go, you’ll spend hours hunting a single typo.
  6. Use the QMK CLI (qmk compile, qmk flash) so your workflow is repeatable and scriptable instead of a pile of manual steps.
  7. Keep a VIA keymap folder around as a fallback. If your new raw keymap breaks mid-week, you can flash the old VIA build back in seconds instead of debugging under pressure.

A Middle Ground: VIA + Custom Keycodes

This isn’t actually all-or-nothing. Plenty of experienced users keep VIA running for day-to-day remapping, then quietly build custom keycodes and macros into a VIA-compatible keymap.c with VIA_ENABLE = yes sitting alongside their hand-written code. You still get live remapping for the small stuff, a key swap here, a layer tweak there, while the heavier logic runs underneath, untouched by the GUI.

Conclusion

Make the move when you hit an actual wall: a macro VIA can’t build, a combo it can’t express, hardware tuning it can’t reach. That’s the real signal, not a vague sense that you’ve “outgrown” the GUI. Yes, you trade convenience for control, but if you’ve backed up your keymap and kept your changes in their own folder, the whole migration is low-risk and fully reversible. Most people don’t need to abandon VIA completely. They just need to know the exact moment raw QMK’s extra effort starts paying for itself.

#QMK#VIA#keyboard firmware#mechanical keyboards#advanced customization