VIA 设置攻略.

连接 · 改键 · 层 · 宏 · 灯光,一页讲透

准备工作

Before You Start

VIA 是客制化键盘最通用的改键工具:网页即开即用、改动实时写入键盘板载存储, 不驻留后台、不吃系统资源,换电脑设置也不会丢。改键、调层、录宏、调灯都在一个界面完成。

  • 确认键盘支持:键盘固件需为 QMK 且启用 VIA(客制化套件基本都支持;量产键盘请查看产品页是否标注 “VIA/QMK”)。
  • 使用 Chrome 或 Edge 浏览器:VIA 基于 WebHID,Safari / Firefox 无法连接。
  • 用数据线连接:大多数键盘蓝牙/2.4G 模式下无法被 VIA 识别,请切到有线模式。
  • 入口:浏览器打开 usevia.app,无需安装(也有桌面客户端,见 Navigation 的下载分类)。

基本设置 · 连接与改键

Basics
  1. 授权设备 — 打开 usevia.app 后点击 Authorize device +, 在弹窗中选中你的键盘,点「连接」。连接成功后界面会显示键盘的完整配列。
  2. 认识三个标签 — 顶部依次是Configure(改键主界面)、Key Tester(按键测试)、Settings(界面设置)。
  3. 改键 — 在 Configure 中:先在上方键盘图上点选要改的键, 再从下方键码表中点击新键值,即改即生效,无需保存按钮。
  4. 测试 — 切到 Key Tester,逐个敲击确认每个键都输出正确(也可用来排查断触)。
  5. 备份 / 恢复 — Configure 左下角的 Save + Load可把当前键位导出为 .json 备份,换机或重置后一键载回。

提示:如果键盘较新、VIA 未收录,可在 Settings 打开Show Design tab, 到 Design 页拖入厂商提供的 draft definition(JSON 定义文件)即可识别。

按键说明 · Keycodes

键码表词典

Configure 下方的键码分类,从左到右常用程度递减:

Basic
基础键:字母、数字、修饰键(Ctrl / Shift / Alt / GUI)、F 区与编辑键,日常改键 90% 在这里。
Media
多媒体键:音量、播放/暂停、上一首/下一首、亮度等系统控制。
Macro
宏触发键 M0–M15:先在 Macros 面板录好内容,再把对应 M 键放到键位上。
Layers
层切换键(详见下节):MO(x) 按住临时切层 · TG(x) 点按锁定切层 · TT(x) 双击锁定 · OSL(x) 单次切层 · TO(x) 直接跳转。
Special
特殊功能:GRAVE ESC(Esc/~ 共键)、Caps Word、NKRO 切换、RESET 进刷机模式等。
QMK Lite / Any
高级键码:Mod-Tap(按住是修饰键、点按是普通键,如 LCTL_T(KC_A))、组合修饰等;Any 键可手写任意 QMK 键码。

常用对照:KC_NO 禁用此键 ·▽ (KC_TRNS) 透传(沿用下层键值)·LGUI = Win / Cmd 键。

层键实战 · Layer Keycodes

场景 + 代码

Layers 分类里的键码决定了小配列键盘的上限。下面按「行为 → 实战场景」逐个过一遍; 标注 Any 的键码不在 Layers 分类里, 需要用 SPECIAL → Any 键手动输入代码设置。

MO(layer) — 按住临时切层

MO(1)

最常用的 Fn 键:按住切到第 1 层,松手回来。场景:60% 键盘把右下 Fn 设为 MO(1),1 层里数字排放 F1–F12、WASD 或 IJKL 放方向键。注意该键位在第 1 层要放 ▽(KC_TRNS)透传——放了别的键值也按不到,等于浪费。

TG(layer) — 点按开关层

TG(2)

点一下锁定第 2 层,再点一下解锁。场景:游戏层——第 2 层里把 LGUI 改成 KC_NO(禁 Win 键)、关掉 SpaceFn 等 tap-hold 键避免延迟,开黑前点一下 TG(2) 整块键盘进入游戏模式,打完再点恢复。切记在第 2 层的同一键位也放 TG(2) 或 ▽,否则会被锁在层里出不来。

TT(layer) — 按住临时 · 连按锁定

TT(1)

MO 和 TG 的二合一:按住时同 MO(1),快速连按(QMK 默认 5 次,固件可用#define TAPPING_TOGGLE 2 改成 2 次)则像 TG(1) 锁定。场景:偶尔查看 F 区按住即可,要连续输入一串 F 键时连按锁住慢慢按。

OSL(layer) — 单发层(One-Shot)

OSL(1)

点一下后只对下一个键生效,按完自动退层,不用按住。场景:符号层 ——1 层放满 ()[]=> 等编程符号,写代码时「点 OSL(1) → 点 J」两个单击就输出一个符号, 小指不用一直压着 Fn;也适合放「截图 / 锁屏 / 媒体」这类低频快捷键面板。

TO(layer) — 直达某层

TO(3) · TO(0)

打开指定层并关闭其他层(默认层除外),是「跳转」而不是「叠加」。场景: 多套工作模式互切——0 打字 / 2 游戏 / 3 剪辑面板,每层固定一颗 TO(x) 互相跳转; 强烈建议每个高层都留一颗 TO(0) 逃生键,乱了随时一键回家。

Fn1(Fn3) / Fn2(Fn3) — 双 Fn 组合出第三层

FN1(FN3) + FN2(FN3)

VIA 预设的经典三层方案(HHKB 血统):按住 Fn1 是 1 层、按住 Fn2 是 2 层,两颗一起按住进第 3 层。场景:1 层日常功能、2 层媒体灯光、3 层放 RESET / EEPROM 清除这类「危险键」,双键组合天然防误触。

Space Fn1/2/3 — 空格变层键

SPC_FN1(等价 LT(1, KC_SPC))

点按是空格,按住切层——键圈公认性价比最高的改造(SpaceFN 概念):拇指本来就常驻空格, 切层零成本。场景:按住空格 + IJKL = 方向键、+ H/N = Home/End、+ 数字排 = F 区, 双手完全不离主键区。缺点是快速打字偶尔误触发,游戏层里记得换回普通 KC_SPC。

DF(layer) — 更换默认层 Any

DF(1)

把「地基」换成指定层,其他层照常叠加。场景:0 层 QWERTY、1 层 Colemak/Dvorak, 用 DF(0) / DF(1) 两颗键随时换排布;或给合租的 Mac/Win 双系统各做一套基础层。 注意 DF 是临时的,键盘断电重插会回到出厂默认层。

LM(layer, mod) — 切层同时压住修饰键 Any

LM(1, MOD_LALT) · LM(2, MOD_LCTL | MOD_LALT)

像 MO 一样按住切层,但系统同时收到 Alt / Ctrl 等修饰键(注意前缀是MOD_ 不是 KC_,可用 | 组合)。场景: 窗口管理层——LM(1, MOD_LALT) 后 1 层里放 Tab / 方向键,按住一颗键就是 Alt+Tab 切窗口、Alt+方向 分屏,不用手指叠罗汉。

LT(layer, kc) — 点按出键 · 按住切层 Any

LT(1, KC_CAPS) · LT(2, KC_ESC) · LT(1, KC_SPC)

一颗键两种人格:点按输出 kc,按住进入 layer。场景: LT(1, KC_CAPS)——Caps 位点按还是大写锁定,按住变编辑层(hjkl 方向); LT(2, KC_ESC)——60% 神设置,点按 Esc、按住出 ~ 和 F 区所在层; LT(1, KC_SPC) 就是上面 Space Fn 的手写等价形式。

60% 三层参考方案:0 层右下 Fn = MO(1) 功能层(F 区 + 方向)· 空格 = Space Fn2 编辑层(hjkl / Home / End)· 某颗键 = TG(3) 游戏层(禁 Win、纯净键位),每个高层放 TO(0) 逃生。层与层之间不用的键位一律放 ▽ 透传,改动即写入板载,拔线也不丢。

常用设置

层 · 宏 · 灯光

层(Layers)

小配列键盘的核心玩法。Configure 左上角 0/1/2/3 就是四个层:0 层是默认层, 60% 键盘通常把 F 区、方向键放在 1 层。推荐做法:在 0 层放一颗MO(1)(常放在 Fn 位),按住它时整块键盘切到 1 层; 1 层里再把 WASD 改成方向键、数字排改成 F1–F12。不用的位置放 ▽ 透传即可。

宏(Macros)

  1. Configure 左侧切到 MACROS 面板,选择 M0–M15 中的一个槽位。
  2. 点击录制按钮直接录入按键序列,或手写脚本,如 {KC_LCTL,KC_C}(Ctrl+C)、也可直接输入一段文本让它整段输出。
  3. 保存后回到 KEYMAP,把键码表 Macro 分类里的 M0 放到任意键位上。

灯光(Lighting)

支持灯效的键盘会在左侧出现 LIGHTING 面板: 可调灯效模式、亮度、速度与颜色;改动同样写入板载存储,拔线重插依旧生效。

其他常用

  • 交换 Win/Mac 修饰键:把 LGUI 与 LALT 对调,或用键盘自带的系统切换开关。
  • 禁用 Win 键(游戏防误触):把 LGUI 改为 KC_NO,或单独做一个游戏层。
  • 恢复出厂键位:多数键盘长按 Esc 插线(Bootmagic)或用 Save + Load 载入官方 .json。

常见问题

FAQ
如何给 60% 键盘设置方向键?
常规做法:在 Caps Lock 键位上用 SPECIAL → Any 设置LT(1, KC_CAPS)——按住 Caps 进入第 1 层,在 1 层的 WASD(或 IJKL)上放上/下/左/右即可「按住 Caps + WASD」当方向键; 点按 Caps 依然是大写锁定,两不耽误。不想动 Caps 的话,用右下 Fn 位放 MO(1) 效果相同。
如何一键输入开机密码?
挑一个不常用的键位(或高层键位)绑定宏:在 MACROS 面板的 M0 里输入你的密码{KC_ENT}(密码原文 + 回车),再把 M0 放到目标键位上,开机一键登录。 注意:密码以明文存在键盘板载存储里,任何人拿到这块键盘都能按出来,共用/外带场景慎用。
如何设置一键锁屏?
同样用宏:macOS 设{KC_LCTL,KC_LGUI,KC_Q}(Ctrl + Cmd + Q),Windows 设{KC_LGUI,KC_L}(Win + L)。放在高层或角落键位,离开工位顺手一按。
如何用键盘触发鼠标左右键?
方法一 · 真鼠标点击:在 MOUSE 分类(部分固件在 MEDIA 里)找MS_BTN1 左键 ·MS_BTN2 右键 ·MS_BTN3 中键,指哪点哪; 高级玩法可用 Any 键设 LT(1, KC_MS_BTN2)(短按鼠标右键、长按切 1 层)。部分精简固件默认关闭 Mouse Keys,设了没反应就换方法二。
方法二 · 上下文菜单键:BASIC 分类里的Menu / KC_APP键——在光标或选中文件处直接弹出右键菜单,办公写码双手不离键盘; 高级玩法 RSFT_T(KC_APP)让右 Shift 短按弹菜单、长按仍是 Shift。
Authorize 弹窗里找不到键盘?
确认用 Chrome/Edge、数据线直连(不要接拓展坞)、键盘处于有线模式;部分键盘需要 Fn 组合键切到有线。仍不行则检查固件是否启用 VIA,或到 Design 页载入 draft definition。
连接上了但配列显示不对?
键盘定义版本不匹配:更新浏览器缓存(强制刷新),或向厂商索取对应固件版本的 JSON 定义文件后从 Design 页载入。
蓝牙 / 2.4G 模式能改键吗?
绝大多数不能,VIA 需要 USB HID 通道。请插线改好后再切无线,键位保存在键盘里,无线模式下照常生效。
改坏了想重来?
每个键盘出厂键位都可以用 Load 载入官方 JSON 恢复;QMK 键盘也可以重刷固件回到默认 keymap。
VIA 和 Vial 有什么区别?
Vial 是 VIA 的开源分支,免 JSON 定义即可识别(固件需为 Vial 版),功能更多但兼容面窄。键盘支持哪个就用哪个,使用逻辑几乎一致。

参考:Keychron / Akko / RK / keeb.io / MonsGeek 官方 VIA 教程、QMK 官方文档(Layers / Keycodes)、kbd.news SpaceFN 专文与 Thomas Baart 的 Tap-Hold 指南,结合 Moaclab 实操整理。