浏览全部十六个平面,查看任意按键真实的 Karabiner 输出,修改黄色按键背后的应用名称,并导出一份可以直接导入的 JSON 文件。
这是本节的多页打印视图。 .
Karabiner 版
在成为原生应用之前,Capslock 是一份 Karabiner-Elements 配置,现在也依然是。Capslock Enhancement V3 是一组 Karabiner 规则:轻按 Caps Lock 是 Escape,按住是 Hyper 键,拥有与原生应用内置的 Capslock Classic 相同的十六个控制平面和同一套布局。它免费开源,采用 Apache 2.0 许可,源码位于github.com/Vonng/Capslock。
该用哪一个?
| Karabiner 版 | Capslock 应用 | |
|---|---|---|
| 需要安装 | Karabiner-Elements,再导入一个规则文件 | Capslock 应用 |
| 权限 | Karabiner 的驱动、后台服务、辅助功能与输入监控 | 只需辅助功能 |
| 修改按键 | 编辑 JSON,或使用配置器 | 在编辑器中点按该键 |
| 学习布局 | 本节文档与配置器 | Hold-to-Reveal 与 Playground |
| 价格与源码 | 免费,Apache 2.0,开源 | 商业软件,见下载 |
| 状态 | 持续维护 | 0.4.0 候选发布版 |
同一时间只让其中一个接管 Caps Lock。只要还有 Karabiner 规则在使用 Caps Lock,Capslock 应用就会拒绝启动;请先按与 Karabiner-Elements 共存中的说明,在 Karabiner-Elements 中关闭这些规则。
三步开始
- 安装 Karabiner-Elements,并授予它请求的权限。
- 用安装页上的按钮导入规则。
- 在 Karabiner-Elements › Complex Modifications 中启用全部 Capslock 规则。
轻按 Caps Lock:Escape。按住它再按 H J K L:光标随之移动。
版本
1 - 安装与 Hyper 基础
Capslock Enhancement V3 当前版本 面向 macOS 与 Karabiner-Elements。除此之外没有别的东西需要安装:这套配置就是一组由 Karabiner 解释执行的复杂修饰规则,不会新增常驻进程,也不需要在你的机器上编译任何东西。
本文在 2026 年 8 月使用 Karabiner-Elements 16.1.0 验证,该版本的支持范围覆盖 Intel 与 Apple 芯片上的 macOS 13 Ventura 至 macOS 27。当前版本请以官网为准。
安装
安装 Karabiner-Elements
从官方网站下载 DMG 并运行 Karabiner-Elements.pkg,或者直接使用 Homebrew:
打开 Karabiner-Elements Settings,按照系统设置提示,允许特权与非特权后台服务、辅助功能、输入监控与驱动扩展。在 Virtual Keyboard 中选择与物理键盘一致的布局。各项权限的作用见官方安装指南。
导入规则
打开下面这个导入链接,任意浏览器都会把它直接交给 Karabiner-Elements:
也可以自己粘贴这个 URL:
点击 Import,并允许浏览器打开 Karabiner-Elements。
启用规则并检查
在 Settings › Complex Modifications 中启用需要的规则。十条规则彼此独立,
用不到的类目可以不启用;第一条 CapsLock to Hyper 是其余所有规则的前提。
随后单击 ⇪,它应当发送 ⎋;按住它再依次按H J K L,光标随之移动。此时你已经在零号平面上了。
另有两条等价路径。Karabiner 陈列馆页面
本身就有 Import 按钮;完全离线安装则可以把 capslock.json
放进 ~/.config/karabiner/assets/complex_modifications/,再选择 Add predefined rule。如果哪个键行为不对,Karabiner-EventViewer 会显示它实际发出了什么。
十条规则


键位图按用途着色,因此一个键的邻居就大致告诉你它做什么。整份配置由十条 Karabiner 规则组成,一类一条,可以逐条启用。
| 类目 | 颜色 | 作用 | 映射数 |
|---|---|---|---|
| 基础功能 | 蓝色 | 单击 ⇪ 发送 ⎋,按住则是 ✱ Hyper,另含输入法切换 | 4 |
| 导航 | 粉色 | Vim 式移动、选择、标签页与窗口切换、指针与滚轮 | 102 |
| 删除 | 棕色 | NM,. 按字符、词、行删除,手不必离开核心区 | 12 |
| 鼠标键 | 小键盘 | 把数字小键盘变成一只完整的鼠标 | 63 |
| 窗口管理 | 淡蓝 | 关闭与轮换标签页、窗口、应用与桌面;睡眠、锁屏、注销 | 19 |
| 应用捷径 | 黄色 | 在三个平面上启动或切换六个应用 | 18 |
| 终端控制 | 绿色 | 终端信号、IDE 运行控制、Vim 与 Tmux 前缀、Codex 与 Claude | 10 |
| 剪贴板 | 紫色 | 6–0 上的五个额外文本剪贴板 | 10 |
| 字符变换 | 橙色 | 把括号与代码标点挪到核心区附近 | 16 |
| 功能键 | 青色 | 截图、媒体、亮度、键盘背光与音量 | 28 |
单击、按住与 Hyper
Caps Lock 现在有两种永不冲突的行为,因为一种在松开时判定,另一种在按住期间生效。
| 操作 | 输出 | 用途 |
|---|---|---|
| 单击 ⇪ | ⎋ Escape | 双手不离开核心区即可发送 Escape |
| 按住 ⇪ | ✱ Hyper | 进入零号控制平面 |
| ✱ 加 ⎋ | ⇪ Caps Lock | 切换原始大写锁定状态 |
| ✱ 加 ␣ | ⌃ 加 ␣ | 切换输入法 |
| ✱ 加 ⌘ 加 ␣ | ⌃ 加 ⌘ 加 ␣ | 打开表情与符号面板 |
✱ 并不是某种私有信号。Karabiner 把按住的 Caps Lock 改写成同时按下右侧全部四个修饰键 ⌘ 加 ⌥ 加 ⌃ 加 ⇧。这带来两个值得理解的结果:
- 其他软件收到的仍然是普通组合键。 Alfred、Moom、Magnet、Raycast 以及各类 IDE 收到的是 ⌃ 加 ⌥ 加 ⇧ 加 ⌘ 加一个字母,可以像绑定其他快捷键一样绑定它。
- 规则没有占用的键会原样透传。 ✱ 加 A 之所以没有自己的规则,正是为了把它让给窗口管理器。任何你想交给其他应用的键都可以照此办理。
十六个控制平面
Hyper 保持按下时,四个左侧修饰键充当四个二进制开关。把它们当成四个比特位读,就得到 0–15 号平面:
⌘ = 1 · ⌥ = 2 · ⌃ = 4 · ⇧ = 8。
| 平面 | 左侧修饰键 | 映射数 | 承载内容 |
|---|---|---|---|
| 0 | ✱ | 89 | 日常层:移动、删除、应用、终端、符号 |
| 1 | ✱ 加 ⌘ | 59 | 选择、次选应用、剪贴板复制 |
| 2 | ✱ 加 ⌥ | 38 | 指针移动与第三组应用 |
| 3 | ✱ 加 ⌘ 加 ⌥ | 8 | 按词、按段选择 |
| 4 | ✱ 加 ⌃ | 12 | 桌面与窗口管理 |
| 5 | ✱ 加 ⌘ 加 ⌃ | — | 空闲 |
| 6 | ✱ 加 ⌥ 加 ⌃ | — | 空闲 |
| 7 | ✱ 加 ⌘ 加 ⌥ 加 ⌃ | — | 空闲 |
| 8 | ✱ 加 ⇧ | 25 | 应用、窗口与标签页切换 |
| 9 | ✱ 加 ⌘ 加 ⇧ | 21 | 加速滚轮 |
| 10 | ✱ 加 ⌥ 加 ⇧ | 21 | 加速指针 |
| 11 | ✱ 加 ⌘ 加 ⌥ 加 ⇧ | — | 空闲 |
| 12 | ✱ 加 ⌃ 加 ⇧ | 9 | 滚轮 |
| 13 | ✱ 加 ⌘ 加 ⌃ 加 ⇧ | — | 空闲 |
| 14 | ✱ 加 ⌥ 加 ⌃ 加 ⇧ | — | 空闲 |
| 15 | ✱ 加 ⌘ 加 ⌥ 加 ⌃ 加 ⇧ | — | 空闲 |
九个平面已被使用,另外七个是留给你自己规则的空间。打开配置器可以交互式浏览同样的十六行,并查看所选平面上每个键的实际行为。
平面的划分并不随意。在整份配置里,同一个修饰键始终保持同一种含义,这也是这套布局可以「学一次」而不是「逐键背诵」的原因:
| 修饰键 | 一以贯之的含义 |
|---|---|
| ⌘ | 加强当前动作:从移动变成选择,从粘贴变成复制,切到第二个应用 |
| ⌥ | 离开文本世界:指针、滚轮、第三个应用 |
| ⌃ | 与窗口服务器对话:桌面、调度中心、屏幕状态 |
| ⇧ | 切换容器:应用、窗口、标签页;或者给指针动作加速 |
兼容性
- 这套布局以 ANSI 键盘为蓝本,内置键盘与外接键盘表现一致。ISO 布局同样可用, 只是物理位置不同的那两个键可能落在意料之外的地方。
- 鼠标键需要一块数字小键盘,其余功能在 87 键键盘上都能用。
- 更旧的 macOS 需要归档版本的 Karabiner-Elements,不在本指南覆盖范围内。
macOS 自己也保留了少量全局组合键,最常见的冲突是 ⌘ 加 ⌥ 加 ⌃ 加 ⇧ 加 .,它可能唤起系统诊断对话框,参见 Issue #30。如果与你使用的平面冲突,请重新映射该系统快捷键。
下一步
继续阅读导航、删除与鼠标控制。
2 - 导航、删除与鼠标
键盘核心区的粉色与棕色区域承载这套布局最高频的操作。导航与删除两个类目合计占据 V3.1 中 282 条映射里的 114 条,这也是整套布局里最值得先学的部分。
若无特别说明,本页所有组合都假定 ✱ Hyper 已经按下。表中的「+ ⌘」即表示 ✱ 加 ⌘ 再加上对应按键。
导航键组
H J K L 分别向左、下、上、右移动,与 Vim 完全一致;正上方的 U I O P 把同样的思路扩展到整页与整行:Page Up、Home、End、Page Down。
这八个键是全键盘上唯一在九个平面上都有映射的按键。下面每一组平面负责一件事, 合起来占据 V3.1 中 282 条映射里的 72 条。
移动与选择文本
文本层的规律只有一条:按住 ⌘,移动就变成选择,因为规则发出的是同一个方向键再加上 ⇧。再叠加 ⌥,选择单位随之扩大:一个字符变成一个词,一行变成三行,半行变成整行。
| 按键 | Hyper | + ⌘ | + ⌘ 加 ⌥ |
|---|---|---|---|
| H | 左移 | 向左选择 | 向左选词 |
| J | 下移 | 向下选行 | 向下选择三行 |
| K | 上移 | 向上选行 | 向上选择三行 |
| L | 右移 | 向右选择 | 向右选词 |
| U | 上一页 | 选择上一页 | 选择上一页 |
| I | 行首 | 选择至行首 | 从行尾选至行首 |
| O | 行尾 | 选择至行尾 | 从行首选至行尾 |
| P | 下一页 | 选择下一页 | 选择下一页 |
这也是 ✱ 加 ⌘ 加 ⌥ 加 I 先跳到行尾、再反向选回行首的原因:不碰鼠标就精确选中一整行,这是最快的做法。
切换应用、窗口、标签页与桌面
⇧ 在容器之间移动,也就是你正在看的那个东西,而不是里面的文字;⌃ 则是在和窗口服务器对话。
| 组合 | 实际发出 | 效果 |
|---|---|---|
| ✱ 加 ⇧ 加 J / ✱ 加 ⇧ 加 K | ⌘ 加 ⇥ / ⌘ 加 ⇧ 加 ⇥ | 下一个 / 上一个应用 |
| ✱ 加 ⇧ 加 H / ✱ 加 ⇧ 加 L | ⌃ 加 ⇧ 加 ⇥ / ⌃ 加 ⇥ | 上一个 / 下一个标签页 |
| ✱ 加 ⇧ 加 I / ✱ 加 ⇧ 加 O | ⌘ 加 ⇧ 加 ` / ⌘ 加 ` | 同一应用的上一个 / 下一个窗口 |
| ✱ 加 ⇧ 加 U / ✱ 加 ⇧ 加 P | ⌘ 加 ⌥ 加 - / ⌘ 加 ⌥ 加 = | 缩小 / 放大 |
| ✱ 加 ⌃ 加 H / ✱ 加 ⌃ 加 L | ⌃ 加 ← / ⌃ 加 → | 上一个 / 下一个桌面 |
| ✱ 加 ⌃ 加 K / ✱ 加 ⌃ 加 O | ⌃ 加 ↑ | 调度中心 |
| ✱ 加 ⌃ 加 J | ⌃ 加 ↓ | 当前应用的全部窗口 |
| ✱ 加 ⌃ 加 I | ⌘ 加 H | 隐藏当前应用 |
| ✱ 加 ⌃ 加 U | ⌃ 加 ⌘ 加 F | 切换全屏 |
| ✱ 加 ⌃ 加 P | ⌘ 加 ␣ | Spotlight |
标签页切换依赖 ⌃ 加 ⇥,绝大多数浏览器和编辑器支持它,少数应用不支持。窗口轮换用的是 macOS 自带的 ⌘ 加 `「将焦点移到下一个窗口」,请先在系统设置 › 键盘 › 键盘快捷键中确认它已启用。
从核心区控制指针与滚轮
另外四个平面把同样这八个键变成鼠标,双手完全不必移动。两种模式下, ⇧ 都是那个「油门」。
| 按键 | + ⌥ 指针 | + ⌥ 加 ⇧ 指针加速 | + ⌃ 加 ⇧ 滚轮 | + ⌘ 加 ⇧ 滚轮加速 |
|---|---|---|---|---|
| H | 指针左移 | 指针左移 | 滚轮左 | 滚轮左 |
| J | 指针下移 | 指针下移 | 滚轮下 | 滚轮下 |
| K | 指针上移 | 指针上移 | 滚轮上 | 滚轮上 |
| L | 指针右移 | 指针右移 | 滚轮右 | 滚轮右 |
| U | 左键 | 左键 | 滚轮右 | 滚轮右 |
| I | 右键 | 右键 | 滚轮上 | 滚轮上 |
| O | 后退键 | 后退键 | 滚轮下 | 滚轮下 |
| P | 前进键 | 前进键 | 滚轮左 | 滚轮左 |
| 平面 | 指针速度 | 滚轮速度 |
|---|---|---|
| ⌥ / ⌃ 加 ⇧ | 1600 | 64 |
| ⌥ 加 ⇧ / ⌘ 加 ⇧ | 3200 | 128 |
只有鼠标中键是例外:它不在导航键上,而在 ✱ 加 ⌥ 加 ↩。
方向键鼠标控制
物理方向键同样可以驱动指针,很多时候比切到核心区更顺手。这里 ⌥ 减速、⌘ 加速,指针与滚轮两种模式都适用。
| 组合 | 结果 | 速度 |
|---|---|---|
| ✱ + 方向键 | 移动指针 | 1600 |
| ✱ 加 ⌥ + 方向键 | 缓慢移动 | 800 |
| ✱ 加 ⌘ + 方向键 | 快速移动 | 4200 |
| ✱ 加 ⇧ + 方向键 | 滚动滚轮 | 64 |
| ✱ 加 ⇧ 加 ⌥ + 方向键 | 缓慢滚动 | 32 |
| ✱ 加 ⇧ 加 ⌘ + 方向键 | 快速滚动 | 256 |
V3.1 中快速滚轮的纵向方向是反的:✱ 加 ⇧ 加 ⌘ 加 ↑ 与 ✱ 加 ⇧ 加 ↓ 滚动方向相同,✱ 加 ⇧ 加 ⌘ 加 ↓ 与 ✱ 加 ⇧ 加 ↑ 相同。左右方向键不受影响。
五个鼠标按键全都落在 ↩ 上:
| 组合 | 按键 |
|---|---|
| ✱ 加 ↩ | 左键单击 |
| ✱ 加 ⌘ 加 ↩ | 右键单击 |
| ✱ 加 ⌥ 加 ↩ | 中键单击 |
| ✱ 加 ⇧ 加 ↩ | 后退 |
| ✱ 加 ⌃ 加 ↩ | 前进 |
语义删除
N M , . 位于导航键正下方。左边一对删除光标之前的内容,右边一对删除光标之后的内容,叠加修饰键则放大删除单位。
| 按键 | Hyper | + ⌘ | + ⌥ |
|---|---|---|---|
| N | 删除前一个词 | 删除至行首 | 删除至行首 |
| M | 删除前一个字符 | 删除前一个词 | 下移当前行 |
| , | 删除后一个字符 | 删除后一个词 | 上移当前行 |
| . | 删除后一个词 | 删除至行尾 | 删除至行首 |
有两处刻意打破了规律。✱ 加 ⌥ 加 N 与 ✱ 加 ⌥ 加 . 都发送 ⌘ 加 ⌫,把光标到行首的内容一次清空,所以这一组的两个外侧键就是「这行不要了」。而 ✱ 加 ⌥ 加 M 与 ✱ 加 ⌥ 加 , 根本不删除:它们发出的是 ⌥ 加 ⇧ 加 ↓ 与 ⌥ 加 ⇧ 加 ↑, 也就是 IntelliJ、VS Code 等编辑器通用的上下移动整行。
数字键盘鼠标
如果键盘带小键盘,Hyper 会把整块小键盘变成一只鼠标:数字键给出以 5 为中心的八个方向,顶行滚动,底边与右侧是五个按键。
| 小键盘按键 | 映射 |
|---|---|
| 7 8 9 4 6 1 2 3 | 八个指针方向,含四个斜向 |
| 5 | 停止:发送速度为零的指针事件 |
| / = | 滚轮上 / 下 |
| Num Lock * | 滚轮横向滚动 |
| 0 | 左键单击 |
| . | 中键单击 |
| ⌤ | 右键单击 |
| + / - | 前进 / 后退 |
速度修饰键与别处一致:⌥ 把指针降到一半,⌘ 提升一倍,再加 ⇧ 则把指针移动换成同档速度的滚轮移动。
下一步
继续阅读窗口、应用、终端、剪贴板与字符输入。
3 - 窗口与开发者工作流
这套布局为最容易打断开发者心流的操作安排了多个颜色区域:切换窗口、启动工具、发送终端信号、临时存放文本,以及输入标点符号。
本页所有组合都假定 ✱ Hyper 已经按下。
窗口管理
⇥ Q W A S 构成键盘左侧的淡蓝色区块,负责关闭与轮换:小到一个标签页, 大到整个登录会话。
| 按键 | Hyper | + ⌘ | + ⌥ | + ⌃ | + ⇧ |
|---|---|---|---|---|---|
| ⇥ | 下个应用 | 上个应用 | 下个桌面 | — | 下个标签页 |
| Q | 退出应用 | 退出应用 | — | 锁屏 | 注销 |
| W | 关闭窗口 | 关闭窗口 | 熄屏 | — | 睡眠 |
| A | 窗口管理器 | 调度中心 | 显示桌面 | Spotlight | — |
| S | 下个标签页 | 上个标签页 | 下个窗口 | 上个窗口 | — |
其中两行值得单独说明。
✱ 加 A 是故意不映射的。因为 Hyper 就是右侧的 ⌃ 加 ⌥ 加 ⇧ 加 ⌘,没有被占用的键会原样透传给正在监听的应用。在 Moom、Magnet 或任何窗口管理器里绑定 ⌃ 加 ⌥ 加 ⇧ 加 ⌘ 加 A,它就成了你的布局键。Slate 仅作为历史示例保留。
睡眠并不是按键,而是 Shell 命令:✱ 加 ⇧ 加 W 执行 pmset sleepnow,✱ 加 ⌥ 加 W 执行 pmset displaysleepnow。
Karabiner 不需要额外权限,但如果有模态对话框正在阻塞输入,它们不会触发。
应用捷径
黄色按键在三个平面上启动或切换六个应用。每条规则都是一句普通的 open -a
Shell 命令,也就是说目标是按应用名称匹配的,这正是它们可以安全改写的原因。
| 按键 | Hyper | + ⌘ | + ⌥ |
|---|---|---|---|
| E | Safari | Finder | |
| R | iTerm2 | Preview | Terminal |
| T | Visual Studio Code | Typora | Notes |
| Y | Siri | Karabiner-Elements | Amphetamine |
| F | Alfred 5 | Dash | Dictionary |
| G | IntelliJ IDEA | Google Chrome | Calendar |
并导出一份可以直接导入的 JSON,既不用克隆仓库,也不用安装任何工具。
由于 open -a 既能启动也能切换,一个键就顶掉了点 Dock 图标和在
⌘ 加 ⇥ 里翻找。如果应用已经在最前,再按一次不会有任何反应:
它不是开关。
终端与 IDE 控制
绿色按键把 Shell 高频使用的控制组合挪到右手,左手不必再在打字中途扭成 ⌃ 加字母的姿势。
| 按键 | Hyper | + ⌘ |
|---|---|---|
| D | ⌃ 加 D · 发送 EOF | ⌃ 加 ⌘ 加 D · 查询指针下的词 |
| Z | ⌃ 加 Z · SIGTSTP,挂起任务 | F5 · 开始调试 |
| X | ⌃ 加 R · 在 IDE 中运行 | ⌃ 加 F5 · 不调试直接运行 |
| C | 启动 Codex | 启动 Claude |
| V | ⌃ 加 V · Vim 块选择 / 字面量前缀 | — |
| B | ⌃ 加 B · Tmux 前缀 | — |
✱ 加 C 与 ✱ 加 ⌘ 加 C 和黄色按键一样是 open -a
命令,可以改指向你自己在用的助手。
✱ 加 Z 与 ✱ 加 X 刻意没有遮蔽 ⌘ 加 Z 撤销和 ⌘ 加 X 剪切:后者不需要 Hyper, 两种写法在同一个物理键上共存。
五个文本剪贴板
数字键 6–0 变成五个互相独立的文本剪贴板。 ✱ 加 ⌘ 加数字把当前选中内容复制进该槽位,✱ 加数字再把它粘贴回来。
| 组合 | 实际发生的事 |
|---|---|
| ✱ 加 ⌘ 加 6 … ✱ 加 ⌘ 加 0 | 先复制选区,再 pbpaste > ~/.clip6 … ~/.clip0 |
| ✱ 加 6 … ✱ 加 0 | cat ~/.clip6 | pbcopy,然后粘贴 |
这种实现方式带来两个结果,而且都很有用:
- **槽位能挺过注销、重启,也不受系统剪贴板影响。**它们就是普通文件,
cat ~/.clip7就能在终端里读出来,任何编辑器都可以往里写,完全不必碰键盘。 - **它们只保存纯文本。**复制图片或文件进槽位,存下来的是
pbpaste渲染出的文本,而不是原始对象。
V3.1 有意只在 6–0 上保留五个槽位。旧配置还使用 1–5,升级前请确认自己的使用习惯。
面向代码的上档变换
橙色按键把程序员整天都在敲的标点挪到核心区附近,输入括号不必再做 ⇧ 体操。
| 按键 | Hyper | + ⌘ | + ⌥ |
|---|---|---|---|
| - | _ | 页面缩小 | — |
| = | + | 页面放大 | — |
| [ | ( | { | < |
| ] | ) | } | > |
| ; | : | ! | — |
| ' | = | = | — |
| / | 切换注释 | — | — |
| \ | 切换注释 | — | — |
括号键是最大的收益:[ 与 ] 在同样的两个位置上给出圆括号、花括号、尖括号三对。又因为 ; 与 ' 紧挨着,: = 和 ! = 都是相邻连击,这就是 Go 和 Rust 里的赋值与比较反而比在原生键盘上更快的原因。
✱ 加 / 与 ✱ 加 \ 都发送 ⌘ 加 /,也就是几乎所有编辑器与 IDE 通用的注释快捷键。
下一步
在系统功能与参考中查阅功能键、截图、符号、定制与问题排查。
4 - 系统功能与参考
本页集中收录更适合查阅、而不是顺序学习的映射与项目资料。
功能键与系统控制
F1–F12 默认作为标准功能键;按住 Hyper 时发送对应的媒体或系统功能。青色区块覆盖整个顶行以及截图键。
| 按键 | Hyper 动作 | + ⌘ |
|---|---|---|
| ` | 区域截图到剪贴板 | 区域截图到文件 |
| F1 / F2 | 亮度降低 / 提高 | 桌面 1 / 2 |
| F3 | 调度中心 | 桌面 3 |
| F4 | Spotlight | — |
| F5 / F6 | 键盘灯降低 / 提高 | — |
| F7 / F8 / F9 | 上一首 / 播放暂停 / 下一首 | — |
| F10 / F11 / F12 | 静音 / 音量降低 / 提高 | — |
| F13 | 全屏截图到剪贴板 | 全屏截图到文件 |
| F14 | 截图菜单 | 旧款 Touch Bar 截图 |
| F15 | 播放 / 暂停 | — |
截图键遵循同一条约定:单独的 Hyper 组合把截图放进剪贴板,再加 ⌘ 则写成桌面上的文件。
| 组合 | 实际发出 | 结果 |
|---|---|---|
| ✱ 加 ` | ⌃ 加 ⇧ 加 ⌘ 加 4 | 框选区域 → 剪贴板 |
| ✱ 加 ⌘ 加 ` | ⇧ 加 ⌘ 加 4 | 框选区域 → 文件 |
| ✱ 加 F13 | ⌃ 加 ⇧ 加 ⌘ 加 3 | 整屏 → 剪贴板 |
| ✱ 加 ⌘ 加 F13 | ⇧ 加 ⌘ 加 3 | 整屏 → 文件 |
| ✱ 加 F14 | ⇧ 加 ⌘ 加 5 | 截图与录屏菜单 |
使用 ⌘ 加 F1–⌘ 加 F3 前,请先在系统设置 › 键盘 › 键盘快捷键… › 调度中心中启用桌面 1/2/3 快捷键,macOS 默认是关闭的。 Touch Bar 行为只适用于旧款 Touch Bar Mac,参见官方故障排除说明。
全尺寸键盘上的六键导航区提供同样三项系统控制的细粒度版本:它发出的是 ⇧ 加 ⌥ 加媒体键,也就是 macOS 自带的四分之一步长修饰键。
| 导航区按键 | 动作 |
|---|---|
| Insert / ⌦ | 平滑提高 / 降低屏幕亮度 |
| ↖ / ↘ | 平滑提高 / 降低键盘灯亮度 |
| Page Up / Page Down | 平滑提高 / 降低音量 |
符号
| 符号 | 名称 | 符号 | 名称 |
|---|---|---|---|
| ⇪ | Caps Lock | ✱ | Hyper |
| ⎋ | Escape | ␣ | 空格 |
| ⌘ | Command | ⌥ | Option |
| ⌃ | Control | ⇧ | Shift |
| ↩ | Return | ⌤ | 数字键盘 Enter |
| ⇥ ⇤ | Tab / 反向 Tab | ⇭ | Num Lock |
| ← ↓ ↑ → | 方向键 | ↖ ↘ | Home / End |
| ⇞ ⇟ | Page Up / Page Down | ⌫ ⌦ | 删除 / 向前删除 |
| ⏫ ⏬ | 加速 / 减速 | 🖲️ | 鼠标滚轮 |
| 🖱️L / 🖱️R / 🖱️M | 鼠标键 1 / 2 / 3 | 🖱️B / 🖱️F | 鼠标键 4 / 5,后退与前进 |
✱ 是 Heavy Asterisk。普通星号的 ASCII 码正好是 42,也就是生命、宇宙以及任何事情的终极答案。
一条规则长什么样
配置里的每一条映射都是同一个形状。读懂一条,整个文件就都可读了,下面的定制一节也就不再吓人:
mandatory 里那四个 right_* 修饰键就是 Hyper 本身,由 Hyper 驱动的每一条规则里都有它们。旁边还有什么(这里是 left_control)就决定了控制平面。to
则是应用最终收到的东西。
V3.1 的变化
V2 只用到了少数几个平面。V3 引入四位二进制的平面模型,布局才得以扩展到 282 条映射而不至于变得随意。更早的配置列在版本中。
随后 V3.1 有意调整了一些老用户会察觉的默认值:
- 剪贴板移到 6–0,1–5 不再是槽位;
- C 与 ⌘ 加 C 启动 Codex 和 Claude;
- Spotlight 与 Alfred 5 取代 Launchpad 和 Alfred 4;
- F13 与 F14 改为截图,不再是上一首 / 下一首;
- ⌘ 加 D 执行的是定义,而不是打开词典。
定制配置
Fork 仓库,编辑可读性更好的 mac_v3/capslock.yml,然后重新生成 JSON。
Karabiner 规则模式支持的任何写法在这里都可以使用。
YAML 是唯一的事实来源,JSON 由它生成。重新生成只需要一条命令,以及 yq v4:
一个不错的入门定制是占用七个空闲平面之一:复制任意一条规则,改掉 mandatory
里的左侧修饰键,你就拥有了一整个键盘、且不与任何现有映射冲突的空间:
5 号平面(✱ 加 ⌘ 加 ⌃)与 7 号平面(✱ 加 ⌘ 加 ⌥ 加 ⌃)
都是完全空的。
请始终保持 YAML 与生成的 JSON 同步:导入链接与 Karabiner 陈列馆发布的都是那份 JSON。
常见问题与排查
某个组合完全没反应。
先检查 Settings › Complex Modifications:十条规则是分别启用的,刚导入时一条都没开。如果规则已启用,就打开 Karabiner-EventViewer 再按一次,它会显示真正到达系统的按键,从而区分「规则没生效」和「应用吞掉了这个快捷键」。
Caps Lock 能发 Escape,但别的都不管用。
这是只启用了第一条规则的典型症状。CapsLock to Hyper 只提供单击 Escape 与按住 Hyper,Hyper 之后能做什么,靠的是另外九条规则。
为什么某些组合会触发 macOS 系统诊断?
Issue #30 记录了 ⌘ 加 ⌥ 加 ⌃ 加 ⇧ 加 . 可能触发 macOS 系统诊断。若与自定义平面冲突, 请重新映射该系统快捷键。
为什么没有 Linux 支持?
Linux 桌面环境差异较大,作者本人主要通过 macOS 终端使用 Linux。原生支持可以使用 xmodmap 等工具实现,欢迎贡献。
仓库中为什么保留旧 macOS 版本?
旧版 Karabiner 使用 XML;macOS Sierra 以后由 Karabiner-Elements 接替,因此旧配置继续保留给历史系统。它们列在版本中。
这套设计是原创的吗?
最早的 AutoHotkey 版本可追溯到 2013 年,第一个 Mac 版本发布于 2015 年。当前配置长期收录于 Karabiner-Elements 复杂规则陈列馆。
项目
Capslock Enhancement 由 Vonng 维护,采用 Apache License 2.0。源码、版本与问题跟踪位于 GitHub。
5 - 配置器
从表格中选择控制平面,或直接点击键盘上的左侧修饰键,再点击任意按键查看它背后的 Karabiner 规则。启动应用的按键可以改名。所有修改只保存在当前页面,直到你复制或下载 JSON;不会发送到任何地方。
交互式配置器只在网页上运行:它展示全部十六个控制平面,可以改写应用捷径,并导出可导入 Karabiner-Elements 的 JSON。当前配置(3.1.0): capslock.json
导入你的版本
- 点击下载配置,得到的文件名为
capslock-3.1.0-custom.json。 - 把它放进
~/.config/karabiner/assets/complex_modifications/。 - 在 Karabiner-Elements › Settings › Complex Modifications 中移除原有的 Capslock 规则,选择 Add predefined rule,再启用你这份文件中的规则。
安装页上的导入链接始终获取未经修改的配置,想恢复默认值时用它即可。
6 - 早期版本
在 V3 之前,Capslock 布局先后有过三个版本:一份 Windows 上的 AutoHotkey 脚本、一份为 OS X 上的旧版 Karabiner 编写的 XML 配置,以及第一套 Karabiner-Elements 规则。它们的文件仍保存在 GitHub 仓库中。这几页记录了每个版本的功能和当年的安装方法。
上验证过。如果现在想用这套布局,请安装 Mac V3。
| 版本 | 年份 | 运行环境 | 配置形式 |
|---|---|---|---|
| Mac V2 | 2017 – 2021 | macOS 10.11 – 10.13 上的 Karabiner-Elements | JSON 格式的复杂修改规则 |
| Mac V1 | 2015 – 2017 | OS X 10.10 – 10.11 上的 Karabiner 与 Seil | Karabiner 的 private.xml |
| Windows | 2013 – 2015 | Windows XP – 10 上的 AutoHotkey | AutoHotkey 脚本与预编译的 .exe |
两个 Mac 版本都用 ✱ 表示 Hyper,这几页沿用这一写法:✱ H 即按住 Caps Lock 再按 H。
6.1 - Mac V2
Mac V2 面向 Karabiner-Elements,其 README 列出的系统是 macOS 10.11 El Capitan、 10.12 Sierra 和 10.13 High Sierra。它在 2021 年被 Mac V3 取代,之后没有在当前的 macOS 或 Karabiner-Elements 上验证过。
Mac V2 是 Capslock 的第一个 Karabiner-Elements 版本。Karabiner-Elements 是为适配 macOS
Sierra 而重写的新版 Karabiner。V2 由十条复杂修改(Complex Modifications)规则组成:轻按
Caps Lock 发送 Escape;按住则变成 Hyper(✱),由 Karabiner-Elements 同时按住右侧的
⌃ ⌥ ⇧ ⌘ 四个修饰键。因此 Hyper 仍可与左侧修饰键组合,大多数应用也能正常识别。

Caps Lock 键
| 按键 | 效果 |
|---|---|
| 轻按 Caps Lock | Escape |
| 按住 Caps Lock | Hyper(✱),即同时按住右侧的 ⌃ ⌥ ⇧ ⌘ |
✱ Escape | Caps Lock。README 注明了一个缺陷:打开后很难再关掉 |
导航
单按 Hyper 时移动光标;再加一个左侧修饰键,则分别用于选择文本、移动指针、切换标签页与应用,或操作桌面空间。
| 键 | ✱ 移动 | ✱ ⌘ 选择 | ✱ ⌥ 指针 | ✱ ⇧ 切换 | ✱ ⌃ 桌面空间 |
|---|---|---|---|---|---|
| H | ← | ⇧← | 指针左移 | 上一个标签页(⌃⇧Tab) | 左侧桌面空间(⌃←) |
| J | ↓ | ⇧↓ | 指针下移 | 下一个应用(⌘Tab) | 当前应用的所有窗口(⌃↓) |
| K | ↑ | ⇧↑ | 指针上移 | 上一个应用(⇧⌘Tab) | 调度中心(⌃↑) |
| L | → | ⇧→ | 指针右移 | 下一个标签页(⌃Tab) | 右侧桌面空间(⌃→) |
| U | Page Up | ⇧Page Up | — | — | — |
| I | Home | ⇧Home | — | — | — |
| O | End | ⇧End | — | — | — |
| P | Page Down | ⇧Page Down | — | — | — |
鼠标
| 按键 | 效果 |
|---|---|
✱ ← ↓ ↑ → | 移动指针,与 ✱ ⌥ H J K L 相同 |
✱ Return | 左键单击 |
✱ ⌘ Return | 右键单击 |
删除
| 按键 | 发送 | 删除内容 |
|---|---|---|
✱ N | ⌥⌫ | 光标前的一个词 |
✱ M | ⌫ | 光标前的一个字符 |
✱ , | ⌦ | 光标后的一个字符 |
✱ . | ⌥⌦ | 光标后的一个词 |
✱ ⌘ N、✱ ⌘ M | ⌘⌫ | 从光标处删到行首 |
窗口与标签页
| 按键 | 发送 | 效果 |
|---|---|---|
✱ Tab | ⌘Tab | 下一个应用 |
✱ ⌘ Tab | ⇧⌘Tab | 上一个应用 |
✱ Q | ⌘Q | 退出应用 |
✱ W | ⌘W | 关闭标签页 |
✱ S | ⌃Tab | 下一个标签页 |
✱ ⌘ S | ⌃⇧Tab | 上一个标签页 |
✱ A | ⌃⌥⇧⌘A | 留给窗口管理工具 Moom |
✱ ⌘ A | ⌃↑ | 调度中心 |
终端按键
| 按键 | 发送 | 用途 |
|---|---|---|
✱ Z | ⌃Z | 挂起任务(SIGTSTP) |
✱ X | ⌃R | 在 IDE 中运行 |
✱ C | ⌃C | 中断(SIGINT) |
✱ V | ⌃V | Vim 前缀 |
✱ B | ⌃B | tmux 的默认前缀 |
✱ D | ⌃D | 输入结束(EOF) |
应用
README 建议把这些换成你自己常用的应用。
| 键 | ✱ | ✱ ⌘ |
|---|---|---|
| E | Safari | 访达 |
| R | iTerm2 | 预览 |
| T | Visual Studio Code | Typora |
| D | ⌃D(见上文) | 词典 |
| F | ⌃⌥⇧⌘F,留给 Alfred | Dash |
| G | IntelliJ IDEA | Google Chrome |
功能键
V2 假定 F1 到 F12 作为标准功能键使用,按住 Hyper 时再恢复键帽上印的功能。对于带 Touch Bar 的 MacBook Pro,README 建议在 Karabiner-Elements › Function Keys 中打开「Use all F1, F2, etc. keys as standard function keys」。
| 键 | ✱ | 键 | ✱ |
|---|---|---|---|
| F1 | 降低屏幕亮度 | F7 | 上一首 |
| F2 | 提高屏幕亮度 | F8 | 播放或暂停 |
| F3 | 调度中心 | F9 | 下一首 |
| F4 | 启动台 | F10 | 静音 |
| F5 | 降低键盘背光 | F11 | 降低音量 |
| F6 | 提高键盘背光 | F12 | 提高音量 |
全尺寸键盘上才有的键:
| 键 | ✱ |
|---|---|
| F13(Print Screen) | 上一首 |
| F14(Scroll Lock) | 下一首 |
| F15(Pause) | 静音 |
| Insert、Delete | 小幅提高、降低屏幕亮度 |
| Home、End | 小幅提高、降低键盘背光 |
| Page Up、Page Down | 小幅提高、降低音量 |
上档符号
| 键 | ✱ 输入 |
|---|---|
| 1 2 3 4 5 6 7 8 9 0 | ! @ # $ % ^ & * ( ) |
| - = | _ + |
| [ ] | ( ) |
| ; | ! |
| ' | = |
✱ ⌘ ; | : |
✱ ⌘ ' | = |
最后四行让 != 和 := 输入起来更顺手。
其他按键
| 按键 | 发送 | 效果 |
|---|---|---|
✱ ` | ⌃⇧⌘4 | 截取选定区域,存入剪贴板 |
✱ ⌘ ` | ⇧⌘4 | 截取选定区域,存为文件 |
✱ Delete | ⌘⌫ | 在访达中移到废纸篓 |
✱ / 与 ✱ \ | ⌘/ | 在许多编辑器中注释或取消注释 |
✱ Space | ⌃Space | 切换输入法 |
当年的安装方法
以下步骤来自 V2 的 README,仅作记录。
- 下载并安装 Karabiner-Elements。
- 在 Safari 中打开下面的地址导入规则:也可以把
capslock.json复制到~/.config/karabiner/assets/complex_modifications/,mac_v2目录下的make install做的就是这件事。 - 在 Karabiner-Elements 中打开 Complex Modifications 标签页,点按 Add Item,再启用你需要的规则。
- 如需更换应用或修改其他按键,编辑
~/.config/karabiner/assets/complex_modifications/中导入的那份文件。
README 原本的导入链接指向仓库的 mac/ 目录,如今那里存放的是 V3;它的第二个链接指向
Karabiner-Elements 规则库,那里现在收录的也是 V3。上面的地址指向的是 V2 的文件。
文件
V2 的全部文件都在仓库的 mac_v2/
目录中。
| 文件 | 说明 |
|---|---|
capslock.json | V2 的十条规则,可直接导入 |
karabiner.json | 包含同一组规则的完整 Karabiner-Elements 配置。make all 会用它覆盖 ~/.config/karabiner/karabiner.json,替换你现有的全部设置 |
makefile | 上文提到的 install 与 all 两个目标 |
README.md | V2 的原始文档 |
与 V3 的区别
- 平面。 V2 每次只让 Hyper 与一个左侧修饰键组合,因此只有少数几个平面。V3 允许 Hyper 与四个左侧修饰键任意组合,最多可得 16 个平面。
- **改动的按键。**在 V3.1 中,F13 和 F14 改为截屏控制,不再是上一首和下一首;
✱ ⌘D 改为执行「查询」(Define),不再打开词典;聚焦搜索(Spotlight)取代了启动台。
6.2 - Mac V1
Mac V1 是 Capslock 在 Mac 上的第一个版本,需要两个工具配合:先用 Seil 把 Caps Lock 发出的键码改为 80,也就是 F19 的键码;再由 Karabiner 读取 V1 的 private.xml,在按住这个键时把它变成 Hyper(✱)。每组快捷键都是一个独立条目,可以在 Karabiner 的偏好设置中分别开启。

Caps Lock 键
| 按键 | 效果 |
|---|---|
| 按住 Caps Lock | Hyper(✱) |
| 轻按 Caps Lock | Escape,或用 ⌃Space 切换输入法。这是两个互相冲突的独立条目,只能开启其中一个 |
✱ Escape | Caps Lock |
✱ Space | Escape |
导航
按住 Hyper 移动光标;再加上左侧 ⌘,就会边移动边选择。
| 键 | ✱ 移动 | ✱ ⌘ 选择 |
|---|---|---|
| H | ← | ⇧← |
| J | ↓ | ⇧↓ |
| K | ↑ | ⇧↑ |
| L | → | ⇧→ |
| U | Page Up | ⇧Page Up |
| I | Home | ⇧Home |
| O | End | ⇧End |
| P | Page Down | ⇧Page Down |
删除
| 按键 | 发送 | 删除内容 |
|---|---|---|
✱ N | ⌥⌫ | 光标前的一个词 |
✱ M | ⌫ | 光标前的一个字符 |
✱ , | ⌦ | 光标后的一个字符 |
✱ . | ⌥⌦ | 光标后的一个词 |
窗口与标签页
| 按键 | 发送 | 效果 |
|---|---|---|
✱ A | ⌃⌥⇧⌘A | 留给窗口管理工具 Moom |
✱ ⌘ A | F11 | 显示桌面 |
✱ Q | ⌘Q | 退出应用 |
✱ Tab | ⌘Tab | 下一个应用 |
✱ ⌘ Tab | ⇧⌘Tab | 上一个应用 |
✱ S | ⌃Tab | 下一个标签页 |
✱ ⌘ S | ⌃⇧Tab | 上一个标签页 |
✱ W | ⌘W | 关闭标签页 |
终端按键
| 按键 | 发送 | 用途 |
|---|---|---|
✱ Z | ⌃Z | 挂起任务(SIGTSTP) |
✱ X | ⌃B | tmux 的默认前缀 |
✱ C | ⌃C | 中断(SIGINT) |
✱ D | ⌃D | 输入结束(EOF) |
应用
README 建议把这些换成你自己常用的应用。
| 键 | ✱ | ✱ ⌘ |
|---|---|---|
| E | Google Chrome,也可通过另一个条目改为 Safari | 访达 |
| R | iTerm | ⌃R,在 IDE 中运行 |
| T | Typora | MWeb |
| F | Dash | 词典 |
| G | IntelliJ IDEA | — |
| V | Visual Studio Code | — |
功能键
| 键 | ✱ | 键 | ✱ |
|---|---|---|---|
| F1 | 降低屏幕亮度 | F7 | 上一首 |
| F2 | 提高屏幕亮度 | F8 | 播放或暂停 |
| F3 | 调度中心 | F9 | 下一首 |
| F4 | 启动台 | F10 | 静音 |
| F5 | 降低键盘背光 | F11 | 降低音量 |
| F6 | 提高键盘背光 | F12 | 提高音量 |
全尺寸键盘上才有的键:
| 键 | ✱ |
|---|---|
| Insert、Delete | 小幅提高、降低屏幕亮度 |
| Home、End | 小幅调节键盘背光 |
| Page Up、Page Down | 小幅提高、降低音量 |
| Scroll Lock | 静音 |
| Pause | 播放 |
上档符号
| 键 | ✱ 输入 |
|---|---|
| 1 2 3 4 5 6 7 8 9 0 | ! @ # $ % ^ & * ( ) |
| - = | _ + |
| [ ] | ( ) |
| ; | _ |
| ' | = |
鼠标
| 按键 | 效果 |
|---|---|
✱ ← ↓ ↑ → | 移动指针 |
✱ Return | 左键单击 |
✱ \ | 右键单击 |
其他按键
| 按键 | 发送 | 效果 |
|---|---|---|
✱ / | ⌘/ | 在许多编辑器中注释或取消注释 |
✱ ` | ⌃⇧⌘4 | 截取选定区域,存入剪贴板 |
✱ ⌘ ` | ⇧⌘4 | 截取选定区域,存为文件 |
当年的安装方法
以下步骤来自 V1 的 README,仅作记录。
- 下载并安装 Seil。
- 下载并安装 Karabiner。
- 在 Seil 中勾选 Change the caps lock key,并把键码设为
80。 - 在 Karabiner 中打开 Misc & Uninstall 标签页,点按 Open private.xml,用 V1 的
private.xml替换这个文件。mac_v1目录下的setup脚本可以代劳,它会把文件复制到~/Library/Application Support/Karabiner/private.xml。 - 回到 Change Key 标签页,点按 Reload XML,再启用你需要的条目。


文件
V1 的全部文件都在仓库的 mac_v1/
目录中。
| 文件 | 说明 |
|---|---|
private.xml | 供旧版 Karabiner 使用的 V1 配置 |
setup | 把 private.xml 复制到 Karabiner 目录的 shell 脚本 |
README.md | V1 的原始文档 |
与 V3 的区别
- 工具。 V1 需要 Seil 和旧版 Karabiner,配置文件是 XML。从 macOS Sierra 起, Karabiner-Elements 取代了旧版 Karabiner;V2 和 V3 都是它的 JSON 规则,也不再需要 Seil。
- 轻按 Caps Lock。 V1 可以在 Escape 和切换输入法之间二选一;V3 轻按时发送 Escape。
6.3 - Windows
Windows 版是一份 2013–2015 年的 AutoHotkey 脚本。Mac V2 的 README 列出的适用系统是 Windows XP、Vista、7、8 和 10。无论脚本还是预编译的可执行文件,都没有在当前的 Windows 上测试过。
Capslock 始于 2013 年的 Windows,比第一个 Mac 版本早两年。这份脚本把被视为「无用键」的 Caps Lock 变成像 Ctrl、Alt 一样的功能键,与键盘上几乎所有其他键组合使用。Caps Lock 原本的大小写锁定始终保持关闭,这项功能改由 Caps Lock + ` 承担。
它的部分按键绑定与 Mac 版不同。Mac V2 的 README 提到了这一点,并说明 Windows 版已不再维护。
功能一览
README 用一张表概括了这份脚本。下表沿用这份概括,并依据脚本本身补充了细节。
| 按键 | 功能 |
|---|---|
| Caps Lock | Escape,Vim 用户尤其顺手 |
| Caps Lock + ` | 打开或关闭大小写锁定 |
| Caps Lock + H J K L | Vim 风格的方向键 |
| Caps Lock + W B | 向右、向左移动一个词 |
| Caps Lock + U I O P | Page Up、Home、End、Page Down |
| Caps Lock + N M , . | 删除:Ctrl+Backspace、Backspace、Delete、Ctrl+Delete |
| Caps Lock + Z X C V A Y | Ctrl+Z、X、C、V、A、Y,即 Windows 常用的编辑快捷键 |
| Caps Lock + 方向键 | 移动鼠标指针 |
| Caps Lock + Enter | 鼠标单击 |
| Caps Lock + F1 – F6 | 静音、降低音量、提高音量、播放或暂停、下一首、停止 |
| Caps Lock + Q S | 窗口与标签页控制 |
| Caps Lock + ; ' [ ] | 便捷映射 |
| Caps Lock + D F E R T | 常用程序,由用户自行设定 |
| Caps Lock + 1 – 5 | Visual Studio 快捷键,由用户自行设定 |
| Caps Lock + 6 7 8 9 0 - = | 上档符号,相当于按住 Shift |
运行方式
README 没有给出安装步骤。仓库中保存了这份脚本的两种形式:
- 源码
CapsLock.ahk:用 AutoHotkey 运行,采用 AutoHotkey v1 语法。 - 预编译的可执行文件
CapsLock.exe:无需安装 AutoHotkey 即可运行。
CapsLock.exe 是一个旧的、未签名的 32 位预编译文件,没有在当前的 Windows 上测试过。如果想试用这套布局,请改为阅读源码,并用 AutoHotkey v1 运行。文件
Windows 版的全部文件都在仓库的 win/
目录中。
| 文件 | 说明 |
|---|---|
CapsLock.ahk | AutoHotkey 源码 |
CapsLock.exe | 预编译的可执行文件,207,868 字节 |
README.md | 原始的功能概括 |
仓库中 CapsLock.exe 的 SHA-256 为e0d6a4d2de155860aed164281ed16f5871aaca95cccc6fe1d46db2b16004cb80。