All guides

QMK: remap with VIA

Remap live in the browser; changes are written to the keyboard instantly. Works for single and split keyboards.

Last updated 2026-10-15

VIA is the most common remapping tool for QMK keyboards. It's a web app, and every change is saved on the keyboard immediately — no flashing.

You'll need

  • ✅ Chrome or Edge (VIA uses WebHID; Safari and Firefox don't support it)
  • ✅ A data-capable USB cable
  • ✅ If your keyboard isn't built into VIA: its VIA definition file (.json) from the maker

Step 1: connect

  1. Plug in the keyboard.
  2. Open usevia.app.
  3. Click Authorize device +, pick your keyboard in the browser dialog and click Connect.
  4. When the layout appears, you're connected.

Keyboard not recognized?

VIA ships definitions for many keyboards. If yours isn't detected, load its definition manually:

  1. Open the Settings tab and turn on Show Design tab.
  2. In the Design tab, click Load Draft Definition and choose the .json file from the maker.
  3. Go back to Configure and connect again.

Step 2: change keys

  1. In Configure → Keymap, pick a layer with the numbers 0 1 2 3 above the layout.
  2. Click the position you want to change in the keyboard view; it highlights.
  3. Click the new key in the keycode panel below. It takes effect immediately.
  4. Open a text editor and test it.

Panel categories:

CategoryContains
BasicLetters, numbers, symbols, function keys
MediaVolume, playback, brightness
MacroMacros (edit them in Macros first)
LayersMO(1), TG(1), TO(1) and other layer keys
SpecialIncludes Any, for typing any QMK keycode

Step 3: back up and restore

  • Under Save + Load on the Configure page, click Save Current Layout to export a .json backup.
  • Use Load Saved Layout to restore it in one click.

Common problems

  • The device list is empty: try another cable; on Linux, add a udev rule for hidraw access.
  • Connected but the layout looks wrong: the definition doesn't match the firmware — ask the maker for the matching .json.
  • Changes do nothing: check you edited the right layer; look at layer 0 for the base keys.

More → Troubleshooting