How to Set Up QMK and VIA Firmware for Your Custom Keyboard

Meta: QMK and VIA firmware give you complete control over your custom mechanical keyboard. This guide covers installation, key remapping, layers, and advanced configuration.

How to Set Up QMK and VIA Firmware for Your Custom Keyboard

Introduction

A custom mechanical keyboard isn’t truly custom until you’ve configured its firmware. QMK (Quantum Mechanical Keyboard) is the open-source firmware that powers most custom mechanical keyboards. VIA is the graphical interface that lets you configure QMK without compiling code. Together, QMK and VIA firmware give you complete control over every key, every layer, every LED, and every macro on your custom mechanical keyboard. You can remap any key to any function. Create layers that transform your keyboard into a completely different layout. Program macros that type your email, run a script, or trigger complex shortcuts. FADLIVE’s custom mechanical keyboards ship with QMK-compatible PCBs and support VIA configuration out of the box, making firmware customization accessible to everyone.

What QMK and VIA Do

QMK: The Firmware

QMK is C-based firmware that runs on the microcontroller inside your keyboard’s PCB. It reads keypresses, processes them through your configured layers and macros, and sends the correct HID report to your computer.

What QMK handles:

  • Keymap processing (which key does what on each layer)
  • Layer switching (momentary, toggle, or tap-hold)
  • Macros (sequences of keystrokes triggered by one key)
  • RGB lighting control (color, pattern, brightness)
  • Encoder support (AI control knobs, volume wheels)
  • Mouse keys (control cursor from keyboard)
  • Tap-dance (multiple actions from one key based on tap count)
  • Combo keys (multiple keys pressed together)

The “why” of QMK superiority: Most pre-built keyboards use proprietary firmware that’s locked to a specific configuration app. QMK is open-source. The community has contributed thousands of features and fixes. If there’s a keyboard function you can imagine, QMK likely supports it.

VIA: The Visual Interface

VIA is a web-based or desktop app that communicates with your QMK keyboard via USB. It reads your keyboard’s keymap and displays it as a visual layout. You can drag-and-drop key functions onto keys, configure layers, and save changes in real time.

Why VIA matters: Before VIA, configuring QMK required setting up a development environment, compiling firmware from source, and flashing the resulting .hex or .bin file. VIA eliminates all of that. Changes apply instantly — no compilation, no flashing, no rebooting.

Setting Up VIA

Step 1: Check Compatibility

Not every QMK keyboard supports VIA. VIA requires specific firmware support and a “VIA-compatible” keymap defined in the firmware. FADLIVE’s keyboards ship with VIA-compatible firmware pre-installed.

How to check: Visit usevia.app in your browser. If your keyboard appears in the VIA device list, it’s supported. FADLIVE keyboards are registered in the VIA repository and appear automatically.

Step 2: Connect Your Keyboard

Plug your FADLIVE custom mechanical keyboard into your computer via USB. Open usevia.app. Click “Authorize” when the browser asks for USB device permission. Your keyboard should appear in VIA within 2-3 seconds.

Troubleshooting: If VIA doesn’t detect your keyboard, try a different USB cable (some cables are power-only). Close and reopen the VIA web app. If using Chrome, ensure “WebUSB” is enabled in chrome://flags.

Step 3: Configure Your Keymap

VIA shows a visual representation of your keyboard layout. Each key displays its current function. Click any key to open the function picker and assign a new function.

Common customizations for FADLIVE keyboards:

  • Caps Lock → Fn: The most common change. Caps Lock occupies prime thumb real estate. Most users never use it. Converting it to a Fn key gives you one-thumb access to all secondary functions.
  • Right Alt → Layer 2 toggle: Right Alt is rarely used. Map it to a persistent layer toggle for a second keyboard layer.
  • Spacebar double-tap → Enter: Using QMK’s tap-dance feature, you can make tapping space twice send Enter.
  • AI control knob → Scrolling: If your FADLIVE keyboard has a rotary encoder, VIA shows it as a configurable element in the layout.

Step 4: Test Your Configuration

After changing any key, press it to verify the new function. VIA applies changes instantly — what you see is what you get. If a function doesn’t work, check that it’s supported by your keyboard’s firmware version.

Working with Layers

Layers are the most powerful feature of QMK and VIA firmware. Each layer is a complete keymap that activates under specific conditions.

Layer Types

  • Layer 0 (Default): Your standard layout, always active
  • Layer 1 (Momentary): Active only while you hold the layer key (like Shift)
  • Layer 2 (Toggle): Stays active until you press the toggle key again (like Caps Lock)
  • Layer 3 (One-shot): Active for one keypress only (like a dead key)

Practical Layer Setup for Coders

Layer Purpose Example Keys
L0 (Default) Standard typing Letters, numbers, modifiers
L1 (Fn layer) Navigation and media Arrows, Home/End, volume, brightness
L2 (Numpad layer) Number entry Number pad over right-hand keys
L3 (Function layer) F-keys and shortcuts F1-F12, debugger, build commands

Real example: A FADLIVE keyboard user configured their Fn layer to place arrow keys on WASD (a common Vim-inspired layout). Space+F opens the VS Code file finder. Space+B triggers the build command. Space+D starts debugging. The standard keys remain unchanged on Layer 0.

Creating a Layer in VIA

  1. Select the layer tab (Layer 1, 2, or 3)
  2. Click keys to assign functions
  3. Map a key on Layer 0 to “MO(1)” (momentary layer 1) or “TG(2)” (toggle layer 2)
  4. Test by pressing the layer key and then the newly mapped keys

Advanced QMK Features

Macros

Macros are sequences of keystrokes triggered by a single keypress. In VIA, you can record macros directly.

Useful macros for FADLIVE users:

  • Email insertion: Type your email address with one keypress
  • Signature block: Insert your full email signature
  • Code snippets: Type common code patterns (console.log, print(), TODO comments)
  • Build commands: Trigger build sequences (save all, compile, deploy)

Tap-Dance

Tap-dance lets a single key perform different actions based on how many times you tap it.

Example configuration:

  • Single tap → Shift (standard)
  • Double tap → Caps Lock toggle
  • Triple tap → Emoji picker

Combo Keys

Press two or more keys simultaneously to trigger a different action. Combos don’t consume keys — they add functionality on top of your existing layout.

Useful combos:

  • Pressing G + H simultaneously could send Backspace
  • Pressing J + K simultaneously could send Escape

Comparison: VIA vs Raw QMK

Feature VIA (GUI) Raw QMK (Code)
Setup time 2 minutes 30-60 minutes
Config changes Instant (drag and drop) Compile + flash (5 minutes)
Skills required None (browser app) C programming, git
Feature access Common features only All QMK features
Custom keycodes Limited to VIA’s list Any QMK function
Encoder support ✅ (if defined)
RGB control ✅ Basic ✅ Full control
Dynamic layers ✅ 4 layers Unlimited

FAQ

Do I need to re-flash firmware after VIA changes?

No. VIA changes are stored in the microcontroller’s EEPROM (persistent memory). They survive power cycles and cable disconnections. You only need to flash firmware to add new features (like custom RGB patterns or advanced QMK functions).

Can I use VIA with any QMK keyboard?

Only if the keyboard’s firmware explicitly supports VIA. Check the VIA keyboard repository. FADLIVE keyboards register their VIA definition during manufacturing, so VIA support works automatically.

Is VIA safe to use?

Yes. VIA runs entirely in your browser (or as a standalone app). It doesn’t send data to any server. All keyboard configuration is local. The VIA web app is open-source and auditable.

Can I have different configurations for different apps?

Not directly in VIA. For application-specific keymaps, you’d need QMK’s “Dynamic Keymap” feature combined with host-side software that switches layers based on the active window. This is an advanced setup.

Tags and Keywords

QMK firmware, VIA keyboard, custom keyboard firmware, key remapping, keyboard layers, keyboard macros, FADLIVE QMK, mechanical keyboard configuration, QMK setup guide, VIA app, keyboard programming, keyboard customization, firmware flashing, open source keyboard, QMK tutorial