跳转到主要内容

这是本节的多页打印视图。 .

返回本页常规视图.

文档

安装 Capslock、学习默认布局、按需定制,以及排查问题。

Capslock 把 Caps Lock 变成 macOS 上的第二键盘层。理解下面三点,就能理解其余的一切:

  • **轻按与按住。**轻按 Caps Lock 发送 Escape;按住它,手下的按键就变成动作:⇪ H J K L 移动光标,⇪ N 删除一个词,⇪ E 打开 Safari。
  • **平面。**与 Caps Lock 一起按住的修饰键决定十六个平面中的哪一个。⇪ H 左移,⇪ ⌘ H 向左选择,⇪ ⌥ H 把鼠标左移。
  • **映射。**每个平面上的每个键映射到一个动作,还可以为特定应用指定不同的动作。Capslock 内置完整的 Capslock Classic 布局,其中任何一处都可以修改。

第一次使用?从安装与首次运行开始,学习期间把默认布局 放在手边。

1 - 快速开始

安装 Capslock,授予它唯一需要的权限,然后学习布局。

安装 Capslock,完成简短的引导,然后在应用自带的 Playground 里学习默认布局。如果你以前用过 Karabiner-Elements 配置,开始之前请先阅读 Karabiner 一页。

1.1 - 安装与首次运行

安装 Capslock,授予辅助功能权限,完成四步引导,并确认主页显示键盘状态正常。
发布状态目前还没有公开下载,见下载。本页描述的是正式签名版。

系统要求

  • macOS 14 Sonoma 或更高版本,Apple 芯片或 Intel 处理器均可。
  • 辅助功能权限。Capslock 从不申请输入监控权限。
  • Caps Lock 没有被其他工具改键。如果你在用 Karabiner-Elements,请先阅读与 Karabiner-Elements 共存。

安装

打开 Capslock.dmg,把 Capslock 拖进「应用程序」,然后从「应用程序」或聚焦搜索中打开。

Capslock 是一个普通应用:有窗口、Dock 图标和菜单栏图标。关闭窗口后,它会继续在菜单栏中运行。

首次引导

首次启动时,Capslock 不会接管任何按键。在你完成引导之前,键盘一切照旧。

  1. **欢迎使用 Capslock。**点击「继续」。
  2. **选择 Hyper 模式。**默认的「经典」模式在按住 Caps Lock 时同时按住 ⌃⌥⇧⌘, 因此 Alfred、Raycast 等应用里的 Hyper 快捷键照常可用;「原生」模式让 Caps Lock 组合键只在 Capslock 内部处理。之后可以随时更改,见 Hyper 模式。
  3. 开始之前。「键盘权限」卡片显示 Capslock 是否可以识别 Caps 组合键并发送按键。点击「打开系统设置」,macOS 会打开「隐私与安全性 › 辅助功能」;打开 Capslock 的开关并输入密码确认。回到 Capslock,点击「启动 Capslock」。下方的「冲突」卡片列出其他占用 Caps Lock 的工具。如果暂时不想启动,点击「暂不启用」完成引导。
  4. **探索你的键盘。**点击「打开键盘」。「键盘」页展示整套布局;即使 Capslock 已暂停, 你也可以浏览和编辑。

确认工作正常

主页显示「运行中」和「Caps Lock 已是你的 Hyper 键。」,状态卡片应为:

行正常值
键盘权限已授权
Hyper 键Caps Lock 已就绪
冲突无
恢复无需恢复

然后试试主页「入门」中的四个手势:

  • 轻按 Caps Lock:Escape。
  • 按住 Caps Lock,再按 H、J、K 或 L:光标向左、下、上、右移动,任何应用都适用。
  • 按住 Caps Lock,再按空格:切换输入法(前提是你有多个输入法,且 ⌃Space 快捷键已打开)。
  • 按住 Caps Lock 稍等:屏幕上显示当前平面的全部按键。

如果某一行不正常,点击它的链接打开诊断,每项检查都附有编号步骤和一键修复按钮。

日常操作

  • 主页、设置或菜单栏菜单中的「暂停」会把 Caps Lock 还给 macOS,直到你点击「继续」。
  • 「登录时打开」位于「设置 › 通用」,默认关闭。
  • 同一处的「隐藏 Dock 图标」会只保留菜单栏图标。
  • 退出 Capslock 时,它会先恢复 Caps Lock 再退出。

1.2 - 学习布局

Hold-to-Reveal、屏幕动作提示,以及 Playground 中的课程、安全练习和自由练习。

没人能一开始就记住 357 个绑定。Capslock 用三种方式教你这套布局:你停顿时显示当前平面, 动作执行时在屏幕上提示,以及 Playground 里跟随你自己映射的简短课程。

Hold-to-Reveal

按住 Caps Lock,不按其他键。稍等片刻,屏幕上会以整块键盘的形式显示当前平面,每个键上写着它的动作。显示期间按 ⌘、⌥、⌃ 或 ⇧ 可切换平面;松开 Caps Lock 即关闭。

此功能默认开启。在「设置 › Hyper 键」中可以关闭它、调整延迟(默认 550 毫秒,范围 250 到 1500 毫秒),并选择在执行动作时隐藏,还是只在松开 Caps Lock 时隐藏。

在屏幕上显示动作

「设置 › Hyper 键 › 在屏幕上显示动作」会在每次组合键执行时,在屏幕底部显示一个小提示: 你按下的键和它产生的动作。默认关闭;提示停留 1.35 秒,时长可调。

Playground

「练习」页在「课程」下分为三部分:

  • 入门:练习四个手势——轻按 Caps Lock 发送 Escape、按住显示平面、⇪ Esc 切换大写锁定、⇪ Space 切换输入法。
  • 导航:练习用 ⇪ H、⇪ J、⇪ K、⇪ L 移动光标。
  • 自由练习:显示你最近按下的键:所在平面、动作、前台应用,以及动作是已执行、仅预览、被拦截,还是按键被原样放行。

课程读取你当前的映射。如果课程用到的键被你改绑或停用,课程会直接说明,而不是让你去按一个已经不再做那件事的键。

真实执行与安全练习

「模式」开关在「真实执行」与「安全练习」之间切换。真实执行时组合键会真正运行;安全练习时, 有副作用的动作只做预览而不执行:打开应用、Shell 命令、睡眠、剪贴板槽位和切换大写锁定。按键与鼠标动作仍会执行,所以你能看到光标移动。

离开 Playground、隐藏窗口或切换到其他应用时,安全练习会自动关闭。

自由练习只保留最近一次按键,且仅在 Playground 位于前台时保留,离开即清除。你输入的内容不会被记录。

「键盘」页

「键盘」页画出你的键盘,并在每个键上标注它的动作。可以从菜单或用 ⌘ ⌥ ⌃ ⇧ 开关选择平面。按住 Caps Lock 时,画面会跟随你实际所在的平面,并显示「实时」标记。键帽文字跟随当前键盘布局,Dvorak 或 AZERTY 用户看到的是自己的字母。点按任意键即可查看或修改,见键盘编辑器。

1.3 - 与 Karabiner-Elements 共存

Capslock 如何检测 Karabiner-Elements 和其他改键工具、哪些情况算冲突,以及如何从 Karabiner 配置迁移过来。

Capslock 需要独占 Caps Lock 和 F18 键。它从不修改、停用或卸载 Karabiner-Elements 或其他任何工具。当别的工具已经在用这些键时,Capslock 会拒绝启动,并告诉你需要改什么。

哪些情况算冲突

  • **系统层面对 Caps Lock 的改键。**如果其他工具已经重映射了 Caps Lock,诊断页显示「Caps Lock 被其他工具占用」。
  • **F18 的其他用途。**如果有任何改键以 F18 为来源或目标,诊断页显示「F18 已被占用」。
  • Karabiner-Elements 规则。 Karabiner-Elements 运行时,Capslock 会读取当前选中的配置,查找从 Caps Lock 或 F18 出发、或输出 F18 的规则。它只报告找到的数量,从不读取规则名称或内容。

Karabiner-Elements 可以继续负责其他按键,只有作用于 Caps Lock 和 F18 的规则才会冲突。

解决 Karabiner 冲突

  1. 打开 Karabiner-Elements › Complex Modifications。
  2. 关闭从 Caps Lock 出发的规则(例如「CapsLock to Hyper」),或切换到不含该规则的配置。
  3. 回到 Capslock,在主页或诊断页点击「重新启用」。

诊断页提供「打开 Karabiner-Elements」按钮来完成第 1 步。每次你切回 Capslock,它都会重新检查;之后才出现的冲突会让 Capslock 停止并归还 Caps Lock,而不是让两个工具互相争抢。

从 Karabiner 配置迁移

原生应用内置同一套 Capslock Classic 布局,你不需要迁移任何东西就能保留熟悉的绑定。有几处行为不同:

  • 轻按 Caps Lock 发送 Escape;⇪ Space 发送 ⌃Space 用于切换输入法。
  • 你可以选择 Hyper 模式。默认的「经典」模式仍会为监听 Hyper 的应用按住右侧 ⌃⌥⇧⌘。
  • 剪贴板槽位加密保存在 Capslock 内部,Karabiner 方案留下的 ~/.clip6 等文件不会被读取。
  • 应用按 Bundle ID 打开,而不是在 Shell 里执行 open -a。
  • 你对自己的 Karabiner JSON 所做的修改不会被导入,请在键盘编辑器中重新设置。

准备好之后,按上文所述在 Karabiner-Elements 中关闭 Capslock 规则,然后启动 Capslock。如果想回到 Karabiner 方案,它的完整文档仍在 Karabiner 版中。

2 - 默认布局

应用内置的 Capslock Classic 布局,按控制平面逐一列出。

全新安装即带有完整的 Capslock Classic V3 布局:共 357 个绑定,其中 1 个用于轻按 Caps Lock,356 个用于按住 Caps Lock 再按另一个键。无需任何配置即可使用。这几页列出了全部绑定。在应用里,「键盘」页按平面逐一展示同一套布局,Hold-to-Reveal 则在你打字时随时显示它。

如何阅读这些表格

⇪ 表示「按住 Caps Lock」。⇪ H 即按住 Caps Lock 再按 H;⇪ ⌘ H 即按住 Caps Lock 和 Command 再按 H。修饰键符号按 macOS 顺序书写:⌃ Control、⌥ Option、⇧ Shift、⌘ Command。

在默认的经典 Hyper 模式下,只有左侧的 Command、Option、Control 和 Shift 用于选择平面;右侧那几个是 Capslock 自己替其他应用按住的。参见 Hyper 模式。

Caps Lock 键本身

操作效果
轻按 Caps LockEscape,在松开按键时发送
按住 Caps Lock进入 Hyper 层:下文各键执行其映射的动作
⇪ Esc打开或关闭真正的大写锁定
⇪ Space发送 ⌃Space,即 macOS 切换输入法的快捷键
⇪ ⌘ Space发送 ⌃⌘Space,打开「表情与符号」

只有在一秒内松开 Caps Lock,且期间没有按其他键、鼠标键或滚动滚轮,才算一次轻按。事先按住的修饰键会随 Escape 一起发送:按住 Shift 再轻按 Caps Lock,发送的是 ⇧Esc。

大写锁定开启时当真正的大写锁定处于开启状态,除 ⇪ Esc 外的所有组合键都会输出原来的按键。再按一次 ⇪ Esc 即可关闭大写锁定。

十六个平面

与 Caps Lock 一起按住的修饰键决定了十六个平面中的哪一个。每个修饰键是一位 (Command 1、Option 2、Control 4、Shift 8),平面编号就是它们的和。匹配是精确的: 多按了一个修饰键的组合,绝不会退回到修饰键更少的平面。

平面与 ⇪ 一起按住应用中的名称默认绑定数
P0无导航与常用动作 · 基础88
P1⌘选择与快捷动作 · Command64
P2⌥鼠标与 App · Option43
P3⌥⌘扩展选择 · Command + Option13
P4⌃窗口与空间 · Control17
P8⇧App 与滚动 · Shift30
P9⇧⌘快速滚动 · Command + Shift26
P10⌥⇧快速鼠标 · Option + Shift26
P12⌃⇧滚动 · Control + Shift14
P5、P6、P7、P11、P13、P14、P15其他组合自定义各 5 个(仅小键盘鼠标按键)

七个「自定义」平面留给你自己的绑定。这些平面上只绑定了小键盘的五个鼠标按键, 这样无论按住哪些修饰键,点击都照常可用。

布局会打开的应用

有 23 个绑定用于打开应用,包括 Safari、iTerm、Visual Studio Code、Alfred、Codex 和 Claude。如果应用没有安装,对应的键不做任何事。完整列表见窗口与应用。

布局中没有的内容

  • 没有 Shell 命令。打开应用、睡眠和剪贴板槽位都是内置动作,默认布局不会运行任何脚本。
  • 没有双击绑定,也没有按应用的规则;两者都可以用于你自己的映射。
  • 基础平面上 ⇪ A 和数字键 1 到 5 没有绑定。

2.1 - 导航与选择

用 H J K L U I O P 移动光标,配合 Command 选择文本,并切换标签页、应用、窗口和桌面空间。

右手下方的八个键 H J K L 与 U I O P 承担了布局的大部分工作。在基础平面上它们移动光标; 在其他平面上则变成选择、标签页与应用切换、桌面空间、鼠标和滚动。鼠标与滚动平面见鼠标与滚动。

移动与选择

键⇪ 移动⇪ ⌘ 选择⇪ ⌥ ⌘ 扩展选择
H←⇧←⌥⇧←,向左选择一个词
J↓⇧↓连按三次 ⇧↓
K↑⇧↑连按三次 ⇧↑
L→⇧→⌥⇧→,向右选择一个词
UPage Up⇧Page Up⇧Page Up
IHome⇧HomeEnd 后两次 ⇧Home:选到行首
OEnd⇧EndHome 后 ⇧End:选中整行
PPage Down⇧Page Down⇧Page Down

⇪ I 和 ⇪ O 发送的是 Home 与 End 键,而不是 ⌘← 与 ⌘→。有些 Mac 文本视图按 Home/End 会滚动页面而不是移动光标;如果你需要跳到行首或行尾,可以在编辑器 中改绑。

方向键本身照常工作。像 ← 这样的单个按键,在你按住组合键期间会自动重复,和真正的方向键一样。

标签页、应用、窗口与桌面空间

键⇪ ⇧⇪ ⌃
H上一个标签页(⌃⇧Tab)左侧桌面空间(⌃←)
J下一个应用(⌘Tab)当前应用的所有窗口(⌃↓)
K上一个应用(⇧⌘Tab)调度中心(⌃↑)
L下一个标签页(⌃Tab)右侧桌面空间(⌃→)
U缩小(⌥⌘−)全屏(⌃⌘F)
I该应用的上一个窗口(⇧⌘`)隐藏应用(⌘H)
O该应用的下一个窗口(⌘`)调度中心(⌃↑)
P放大(⌥⌘=)打开「应用程序」(启动台)

桌面空间、应用窗口和屏幕缩放遵循 macOS 系统设置中的快捷键。如果你修改或关闭了其中某个快捷键,组合键仍会发送同样的按键,但 macOS 不会响应。

更多切换键在左手区域,见窗口与应用。

2.2 - 鼠标与滚动

用键盘移动指针、点击、拖拽和滚动,有没有数字小键盘都可以。

Capslock 可以从三个位置控制指针:右手下方的字母键、方向键和数字小键盘。只要按住组合键, 移动和滚动就会持续平滑进行。鼠标按键在你按住组合键期间保持按下,因此按住点击组合键再移动就是拖拽。

字母键

键⇪ ⌥ 鼠标⇪ ⌥ ⇧ 快速鼠标⇪ ⌃ ⇧ 滚动⇪ ⇧ ⌘ 快速滚动
H左移快速左移向左滚动快速向左滚动
J下移快速下移向下滚动快速向下滚动
K上移快速上移向上滚动快速向上滚动
L右移快速右移向右滚动快速向右滚动
U左键左键向右滚动快速向右滚动
I右键右键向上滚动快速向上滚动
O后退键(4)后退键(4)向下滚动快速向下滚动
P前进键(5)前进键(5)向左滚动快速向左滚动

在两个滚动平面上,U I O P 的滚动方向与 H J K L 相反。快速移动是普通速度的两倍,快速滚动也是普通滚动的两倍。

方向键

与方向键一起按住效果
⇪移动指针
⇪ ⌘快速移动指针
⇪ ⌥慢速移动指针
⇪ ⇧朝方向键方向滚动
⇪ ⌥ ⇧慢速滚动
⇪ ⇧ ⌘快速滚动,方向相反

⇪ ⇧ ⌘ 上的反向滚动原样沿用自 Karabiner-Elements 布局。如果你希望方向一致,可以改绑这个平面上的四个方向键。

回车键点击

组合键点击
⇪ Return左键
⇪ ⌘ Return右键
⇪ ⌥ Return中键
⇪ ⇧ Return后退键(4)
⇪ ⌃ Return前进键(5)
⇪ ⌃ ⇧ Return左键

数字小键盘

有数字小键盘时,1 到 9 键按小键盘本身的排布朝八个方向移动:7 左上、8 上、9 右上、4 左、 6 右、1 左下、2 下、3 右下;5 不做任何事。

与小键盘 1–9 一起按住效果
⇪移动指针
⇪ ⌘快速移动
⇪ ⌥慢速移动
⇪ ⇧滚动
⇪ ⌥ ⇧慢速滚动
⇪ ⇧ ⌘快速滚动

小键盘上的鼠标按键在全部十六个平面上都可用,按住的修饰键会作用在点击上,因此在小键盘上按 ⇪ ⌘ 0 就是 ⌘ 点击。

小键盘按键鼠标按键
0左键
Enter右键
.中键
−后退键(4)
+前进键(5)

在基础平面上,其余小键盘按键用于慢速滚动:/ 与 = 纵向滚动,* 与 Clear 横向滚动。

2.3 - 编辑、符号与剪贴板

按字符、单词或整行删除,从主键区输入编程符号,并使用五个额外的剪贴板。

删除

N M , . 位于导航键下方,负责向前、向后删除。

键⇪⇪ ⌘⇪ ⌥
N删除前一个词(⌥⌫)删除到行首(⇧⌘← 后 ⌫)删除到行首(⌘⌫)
M删除前一个字符(⌫)删除前一个词(⌥⌫)将当前行下移(⌥⇧↓)
,删除后一个字符(⌦)删除后一个词(⌥⌦)将当前行上移(⌥⇧↑)
.删除后一个词(⌥⌦)删除到行尾(⇧⌘→ 后 ⌫)删除到行首(⌘⌫)

⌥⇧↑ 与 ⌥⇧↓ 在使用这组快捷键的编辑器(如 Visual Studio Code)中移动整行,在其他地方则扩展选区。

符号

需要按 Shift 才能输入的符号被移到了不带 Shift 的组合键上。这些绑定输入的是美式键盘布局下的字符。

键⇪⇪ ⌘⇪ ⌥
-_缩小(⌘−)
=+放大(⌘=)
[({<
])}>
;:!
'==
\切换注释(⌘/)
/切换注释(⌘/)

⇪ ; 再按 ⇪ ' 输入 :=;⇪ ⌘ ; 再按 ⇪ ' 输入 !=。

另外五个剪贴板

数字行上的 6 到 0 是五个剪贴板槽位。

组合键效果
⇪ ⌘ 6 … ⇪ ⌘ 0复制当前选择(⌘C)并存入 6 … 0 号槽位
⇪ 6 … ⇪ 0把 6 … 0 号槽位放回剪贴板并粘贴(⌘V)

槽位保存复制下来的全部内容,而不只是文本,图片和富文本也能保留。从槽位粘贴会替换系统剪贴板中原有的内容。槽位在磁盘上加密保存,密钥存放在你的钥匙串中,其内容从不写入日志。

终端与编辑器按键

键⇪⇪ ⌘
D⌃D,结束输入查询所选单词(⌃⌘D)
Z⌃Z,挂起F5
X⌃R,搜索命令历史⌃F5
V⌃V
B⌃B
C打开 Codex打开 Claude

⇪ X 发送的是 ⌃R 而不是 ⌃X;⇪ C 打开应用,而不是发送 ⌃C。F5 与 ⌃F5 在 Visual Studio Code 中分别是「开始调试」和「以非调试方式运行」。

2.4 - 窗口与应用

用左手切换和关闭应用、窗口、标签页与桌面空间,一个组合键打开常用应用。

窗口控制

Tab、Q、W、A、S 位于左手下方,右手留在鼠标或导航键上也能切换和关闭窗口。

键⇪⇪ ⌘⇪ ⌥⇪ ⌃⇪ ⇧
Tab下一个应用(⌘Tab)上一个应用(⇧⌘Tab)右侧桌面空间(⌃→)下一个标签页(⌃Tab)
Q退出应用(⌘Q)退出应用(⌘Q)锁定屏幕(⌃⌘Q)注销(⇧⌘Q)
W关闭窗口或标签页(⌘W)关闭(⌘W)关闭显示器让 Mac 睡眠
A调度中心(⌃↑)显示桌面(F11)打开「应用程序」(启动台)
S下一个标签页(⌃Tab)上一个标签页(⌃⇧Tab)该应用的下一个窗口(⌘`)该应用的上一个窗口(⇧⌘`)

单独的 ⇪ A 没有绑定。「关闭显示器」和「让 Mac 睡眠」是立即执行的内置动作;在 Playground 的安全练习模式下只做预览。

打开应用

E、R、T、Y、F、G 用来打开应用,每个键三个。没有安装的应用会被跳过:安装之前,对应的键不做任何事。

键⇪⇪ ⌘⇪ ⌥
ESafari访达邮件
RiTerm预览终端
TVisual Studio CodeTypora备忘录
YSiriKarabiner-ElementsAmphetamine
FAlfredDash词典
GIntelliJ IDEAGoogle Chrome日历
CCodexClaude

⇪ ⌃ P、⇪ ⌃ A 和 ⇪ F4 打开「应用程序」(旧版 macOS 上为启动台)。

应用按 Bundle ID 匹配,而不是按名称或路径,所以无论装在哪里都能打开。要改成别的应用, 在键盘编辑器中选中该键,选择「打开 App」。

2.5 - 功能键与媒体键

在功能键行上调节亮度、键盘背光、媒体、音量和截屏,并在编辑键区做细调。

功能键行

键⇪⇪ ⌘
F1降低亮度⌃1,切换到桌面 1
F2提高亮度⌃2,切换到桌面 2
F3调度中心(⌃↑)⌃3,切换到桌面 3
F4打开「应用程序」(启动台)
F5降低键盘背光
F6提高键盘背光
F7上一首
F8播放或暂停
F9下一首
F10静音
F11降低音量
F12提高音量
F13截取整个屏幕到剪贴板(⌃⇧⌘3)截取整个屏幕到文件(⇧⌘3)
F14截屏与录屏工具栏(⇧⌘5)⇧⌘6
F15播放或暂停
`截取所选区域到剪贴板(⌃⇧⌘4)截取所选区域到文件(⇧⌘4)

这些组合键要求按键以真正的 F 键到达。如果你的键盘顶排默认用于调节亮度和音量,请同时按住 fn,或在系统设置中打开「将 F1、F2 等键用作标准功能键」。只有在系统设置中启用了相应快捷键时,⌃1 到 ⌃3 才会切换桌面。

细调

方向键上方的编辑键区发送 ⇧⌥ 加媒体键,macOS 会把它当作四分之一档调节。

键⇪
Insert(Help)提高亮度,四分之一档
⌦ 向前删除降低亮度,四分之一档
Home提高键盘背光,四分之一档
End降低键盘背光,四分之一档
Page Up提高音量,四分之一档
Page Down降低音量,四分之一档

3 - 自定义

修改按键、添加自己的动作、为单个应用设置按键,以及选择 Hyper 的行为。

这些页面上的操作都在应用内完成,不需要手工编辑文件;当然,如果你愿意,配置文件也只是普通的 YAML。

3.1 - 键盘编辑器

查看、改绑、停用或恢复任意按键,新建映射,重新安装 Classic 布局;每次修改都作为一个事务整体生效。

「键盘」页就是编辑器。它按所选平面画出你的键盘,并在每个已映射的键上标注动作。你的键盘上没有的键(例如 F16,或笔记本上的数字小键盘)列在「不在此键盘上的键」中;轻按和双击类映射列在「其他触发方式」中。在工具栏切换到「列表」,可以看到按触发方式分组的列表。

修改一个键

点按一个键,弹出框显示它的组合键、所在平面和当前「动作」:

  • 「更改」:改选另一个内置动作或你的自定义动作。
  • 「编辑…」:打开完整的映射编辑器,见下文。
  • 「显示 YAML」:显示这条映射在文件中的原样内容。
  • 「恢复 Classic 默认」:恢复 Capslock Classic 中的动作;只有当该键与 Classic 布局不同时才出现。

有三个按钮可以让一个键不再执行映射的动作,区别在于之后这个键做什么:

按钮之后这个组合键…
「停用」什么也不做,按键被吞掉。
「保持原键」总是输出按键本身,就像没有按住 Caps Lock 一样。
「移除映射」按方案中未映射组合键的规则处理:可能输出原键、忽略,或发送 Hyper。

没有映射的键会显示「此平面上未映射。」、它当前的行为,以及「指定动作」按钮。

新建映射

点击工具栏中的「+」,或在某个键上点「编辑…」,即可打开映射编辑器。

触发方式,可选:

  • 「Caps + 按键」:按下要捕获的键,再用 ⌘ ⌥ ⌃ ⇧ 开关选择平面。
  • 「轻按 Caps」:轻按 Caps Lock 时执行的动作(默认是 Escape)。
  • 「双击 Caps」:在双击间隔内连按两次。设置后,单击会等过这个间隔再执行。
  • 「双击修饰键」:连按两次左侧或右侧的 ⌘、⌃、⌥、⇧ 或 fn(fn 为实验性)。

「更改触发方式」可以把已有映射移到另一个键、平面或触发方式上,动作和 App 规则随之移动。

默认动作:在所有 App 中生效,除非下方有 App 规则匹配。可以选择内置动作、你的自定义动作、「新建动作…」,或直接在此定义。

App 规则:可选。每条规则指定一个或多个 App,以及在这些 App 中执行的动作。见App 规则。

每个键在每个平面上只能有一条映射,编辑器会拒绝重复。

修改如何生效

每次保存都会先校验,然后把整份配置一次性写入磁盘,最后才切换正在运行的键盘。一处修改要么完整生效,要么完全不生效。

工具栏中的「撤销」「重做」,或 ⌘Z 与 ⇧⌘Z,可以撤回或重做最近一次映射修改。只保留一步, Capslock 重新启动后历史清空。

如果你在其他应用中编辑了配置文件,下次切回 Capslock 时它会重新加载。会覆盖这类外部修改的保存会被拒绝,你可以在新内容之上重新修改。

导入、导出与 Classic 布局

工具栏的「更多」菜单中有三条命令:

  • 「导出」:把整份配置(包括自定义动作和方案行为)写入一个 YAML 文件,默认名为capslock-config.yml。
  • 「导入」:读取这样的文件,替换你当前的全部映射;自定义动作会合并。当前文件会先备份。导入文件中的 Shell 命令和睡眠动作会被停用,直到你重新复核并信任。
  • 「安装 Capslock Classic V3」:重新安装内置布局。它会先展示经过校验的预览(包括它要打开的哪些 App 尚未安装),然后在替换映射之前请你确认。你的自定义动作、App 设置和 Hyper 模式保持不变,并且会先保存备份。

3.2 - App 规则

让某个键在特定 App 中执行不同的动作,按前台 App 的精确 Bundle ID 匹配。

App 规则让一个键在特定 App 位于前台时执行不同的动作,而不影响它在其他地方的行为。

规则如何匹配

每条映射都有一个「默认动作」,并可以带一组「App 规则」。按下组合键时,Capslock 用前台 App 自上而下地检查这些规则,第一条包含该 App 的规则生效;如果都不匹配,就执行默认动作。

App 以精确的 Bundle ID 识别,例如 com.apple.Safari。即使 App 被移动或改名,规则依然有效,也绝不会误匹配名称相近的其他 App。

添加规则

从某个键开始:

  1. 在「键盘」页点按该键,再点「编辑…」。
  2. 在「App 规则」下点击「添加 App 规则」。
  3. 在「适用于」下点击「添加 App」,选择一个或多个 App。
  4. 选择在这些 App 中执行的动作,然后保存。

也可以在「App 规则」页点击「添加规则…」,选好 App 后,映射编辑器会自动填入该 App。如果 App 尚未安装,可以直接输入它的 Bundle ID,而不用浏览选择。

用规则旁的箭头调整顺序。每条规则至少要包含一个 App。

「App 规则」页

「App 规则」页列出所有设置了规则的 App,标出其中未安装的,并显示每条规则。在某个 App 的菜单中,可以为它再添加规则,或「移除全部规则」。移除某个 App 的全部规则是一次修改:会先备份,并且可以撤销。

在配置文件中

规则是映射上的一条 bindings。下面这条让 ⇪ N 在其他地方照旧用 ⌥⌫ 删除前一个词, 但在终端和 iTerm 中改为发送 Shell 习惯的 ⌃W:

- trigger:
    kind: hyper_plus_key
    key: 78            # N
    plane: 0           # Base
  action:
    kind: key_combo
    target_key: 8      # Backspace
    with_alt: true
  bindings:
  - when:
    - type: frontmost_app
      include:
      - com.apple.Terminal
      - com.googlecode.iterm2
    action:
      kind: key_combo
      target_key: 87   # W
      with_ctrl: true

编辑器无法显示的规则会标为「高级规则(在 YAML 中编辑)」,并原样保留。见配置文件。

3.3 - 动作

内置动作、可以创建的自定义动作类型、Shell 命令如何获得信任,以及输入法切换。

映射执行的是动作。动作分为内置动作和你自己的动作,「动作」页同时列出两者;内置动作不能修改,但都可以被映射。

内置动作

动作ID
左移、右移、上移、下移builtin.move_left、builtin.move_right、builtin.move_up、builtin.move_down
下一个词、上一个词builtin.word_forward、builtin.word_back
行首、行尾builtin.line_start、builtin.line_end
上移 10 行、下移 10 行builtin.jump_up_10、builtin.jump_down_10
退格builtin.backspace
下一行builtin.new_line
插入引号builtin.insert_quotes
Escapebuiltin.escape
切换大写builtin.toggle_caps_lock
无操作builtin.noop
保持原键builtin.passthrough

这些 ID 是永久的:引用它们的映射在各个版本中都能继续使用。

自定义动作

在「动作」页点击「新建动作…」,或在映射编辑器中直接定义。可用的类型有:

类型作用
「组合键」发送一个按键,可附带 ⌃ ⌥ ⇧ ⌘。
「跳转」朝一个方向一次移动若干行。
「打开 App」打开或前置一个从「应用程序」中选择的 App。
「Shell 命令」用 /bin/sh 运行一条命令,需要你的确认,见下文。
「按住修饰键」按住触发键期间保持某个修饰键按下,类似「按住说话」。配合 Caps + 按键使用。
「切换输入法」切换到某个已安装的指定输入法,在映射编辑器中可用。

Classic 布局使用的鼠标、滚动、睡眠、剪贴板槽位和媒体动作列在「鼠标与系统」下。你可以把它们映射到其他键,但不能新建这类动作。

正在被映射使用的动作不能删除;「动作」页会列出需要先移除的映射。

Shell 命令与信任

保存 Shell 命令时会询问「信任此动作?」:受信任的动作以你的用户权限运行,可以修改文件、访问网络,暂停和撤销都无法挽回它已做的事。点击「信任并保存」保留它。「Mac 睡眠」和「显示器睡眠」动作也会出现同样的询问。

命令不会在无意中获得信任:

  • 修改命令文本会撤销信任,直到你再次确认。
  • 导入的配置中的所有命令和睡眠动作都处于停用状态,显示为「已停用 · 待审阅」;在编辑器中打开并保存即可确认。
  • 未受信任的命令不会运行,无论配置文件里写了什么。

命令在后台运行,输出被丢弃;Capslock 不会记录它们打印的内容。

切换输入法

默认布局中的 ⇪ Space 发送 ⌃Space,因此 macOS 会使用你为「选择上一个输入法」设置的快捷键。如果想直接切换到某个输入法,把一个键映射到「切换输入法」并选中它。

部分中文、日文和韩文输入法在被直接切换时不能可靠生效。「设置 › 输入法」为切换输入法的 Caps + 按键映射提供两种修正方式:

  • 「模拟快捷键」:按下「选择上一个输入法」快捷键。在 macOS 26 之前更可靠,需要在系统设置中打开该快捷键。
  • 「切换焦点」:短暂移动焦点,让新的输入法生效。在 macOS 26 上效果更好,但在浮动窗口中无效。

3.4 - Hyper 模式与方案行为

选择其他应用是否能看到 Hyper、由哪一侧的修饰键选择平面,以及未映射的组合键做什么。

Hyper 模式

「设置 › Hyper 键 › Hyper 模式」有两个选项,首次引导时也会让你选择。

经典(默认)原生
按住 Caps Lock 时其他应用看到的按住了右侧 ⌘、⌥、⌃、⇧什么也没有
Alfred、Raycast、Moom 等应用的 Hyper 快捷键可用看不到 Hyper
用于选择平面的修饰键仅左侧左右皆可,除非你设为仅左侧
已映射组合键的输出干净:⇪ H 只发送 ←干净

如果你在其他应用中有依赖 Hyper(⌃⌥⇧⌘)的快捷键,或是从 Karabiner-Elements 配置迁移过来,选「经典」。如果没有别的应用监听 Hyper,并且希望左右两侧的修饰键都能选择平面,选「原生」。

在经典模式下,右侧修饰键由 Capslock 自己按住,所以只有左侧能用来选择平面。

未映射的组合键

「设置 › 方案行为 › 未映射的 Caps 组合键」决定没有映射的组合键(例如基础平面上的 ⇪ A) 做什么:

选项这个组合键…
「保持原键」(默认)输出按键本身,就像没有按住 Caps Lock。经典模式下其他应用还能看到被按住的 Hyper 修饰键,因此它们的 Hyper 快捷键可用。
「忽略」什么也不做。
「发送 ⌘⌥⌃⇧ + 按键」带着四个修饰键发送该键,供其他应用作为 Hyper 快捷键使用。

映射为「保持原键」的键,无论这里怎么设置,都总是输出自己;被「移除映射」的键则遵循这里的设置。见修改一个键。

修饰键左右

「设置 › 方案行为 › 修饰键左右」决定哪些 ⌘ ⌥ ⌃ ⇧ 用于选择平面:

  • 「自动」(默认):经典模式下仅左侧,原生模式下左右皆可。
  • 「仅左侧」。
  • 「左右皆可(原生)」:仅在原生模式下可用。

这两项方案设置保存在你的配置中,会随导出、导入、备份和撤销一起生效。

双击间隔

「设置 › Hyper 键 › 双击间隔」是两次轻按之间仍算作双击的最长间隔:默认 200 毫秒,范围 100 到 500 毫秒。它作用于「双击 Caps」和「双击修饰键」类映射。

把右侧修饰键变成额外按键

「设置 › 高级 › 改键」可以把闲置的右侧 ⌘、⌥、⌃ 或 ⇧ 变成 F13、F14、F15、F16、F17 或 F19,用作任意应用中的快捷键。被改键的修饰键不再作为修饰键使用,左侧的同名键不受影响。 F18 保留给 Caps Lock。

3.5 - 设置、菜单栏与统计

每一项设置及其默认值、菜单栏菜单,以及「统计」页统计的内容。

设置

设置保存在 app_config.yml 中,见配置文件。

分组设置项默认值
通用登录时打开关
启动时显示窗口开;关闭后 Capslock 在菜单栏中静默启动
隐藏 Dock 图标关
语言跟随系统(英文或简体中文)
外观跟随系统、浅色或深色
Hyper 键Hyper 模式经典
双击间隔200 毫秒
长按提示开,延迟 550 毫秒,执行动作时隐藏
在屏幕上显示动作关,1.35 秒
方案行为未映射的 Caps 组合键保持原键
修饰键左右自动
输入法中日韩输入法修正不修正
高级改键无
在映射上显示次数开

「状态」「权限」「恢复」三个分组重复了主页和诊断页上的控制项:暂停与继续、权限状态、全部松开、恢复 Caps Lock,以及显示配置文件夹。

底部的「重置设置…」会把所有设置恢复为默认值,你的映射、动作和 App 规则保持不变。

菜单栏

菜单栏图标始终存在:运行时是实心的 ⇪,暂停时是空心的,需要处理问题时显示警告三角。菜单包含:

  • 当前状态;
  • 「暂停」或「继续」;
  • 「检查更新」(正式版提供);
  • 「Capslock 网站」;
  • 「打开 Capslock」;
  • 「退出 Capslock」(⌘Q)。

关闭主窗口或按 ⌘W 只会隐藏窗口,Capslock 继续运行。

统计

「统计」页显示每个触发方式的使用频率,可选今天、近 7 天、近 30 天或全部,并列出「最常用」排行。

  • 每次物理按下计一次;按住不放导致的重复也只计一次。
  • 次数归属于触发方式,因此改绑一个键不会丢失它的历史。
  • 按天的计数保留 30 天,更早的部分并入全部累计。
  • 只在本机保存次数,从不记录你输入的内容。

「重置统计」会清除所有计数,且无法撤销。「设置 › 高级 › 在映射上显示次数」控制是否在映射旁显示次数。

4 - 参考

配置文件、诊断与恢复、隐私、卸载与常见问题。

4.1 - 配置文件

Capslock 的文件存放位置、映射与设置的 YAML 格式、备份,以及未知字段如何被保留。

你不必手工编辑这些文件,这里的一切都可以在应用中修改。它们是普通的 YAML,方便你阅读、纳入版本管理,或通过「导出」和「导入」迁移到另一台 Mac。

文件位置

~/Library/Application Support/com.vonng.capslock/

  • action_mappings.yml映射、动作与方案
  • app_config.yml设置
  • backups/自动快照
  • Logs/
    • Capslock.log诊断日志
  • ClipboardSlots/加密的剪贴板槽位
  • usage_stats.json统计计数
  • hidutil-transaction.json恢复记录

「设置 › 恢复 › 显示配置文件夹」会在访达中打开它。语言选择保存在应用的偏好设置中,剪贴板密钥保存在你的钥匙串中。

action_mappings.yml

文件由三部分组成:由 Capslock 维护的 capslock_profile 块、你的自定义 actions,以及mappings。内置动作从不写入文件。

capslock_profile:
  id: classic-v3
  version: 3.1.0
  runtime_policy:            # 仅在你修改方案行为后写入
    unmapped_keys: passthrough
    modifier_sides: left
actions:
- id: 4C1F0A52-6E2B-4D0B-9C1E-2B7D3F8E9A10
  name: Open Calculator
  action:
    kind: open_app
    bundle_id: com.apple.calculator
    app_name: Calculator
mappings:
- trigger:
    kind: single_tap_hyper
  action_id: builtin.escape
- trigger:
    kind: hyper_plus_key
    key: 72                  # H
    plane: 0
  action_id: builtin.move_left
- trigger:
    kind: hyper_plus_key
    key: 67                  # C
    plane: 8                 # Shift
  action_id: 4C1F0A52-6E2B-4D0B-9C1E-2B7D3F8E9A10

映射

trigger.kind
hyper_plus_key、single_tap_hyper、double_tap_hyper 或 double_tap_modifier
trigger.key
用于 hyper_plus_key:按键的 JavaScript 键码(72 是 H)
trigger.plane
用于 hyper_plus_key:0 到 15,即 Command 1、Option 2、Control 4、Shift 8 之和
trigger.modifier
用于 double_tap_modifier:哪个修饰键
action_id
内置 ID(如 builtin.move_left),或自定义动作的 id
action
内联动作,代替 action_id 使用
bindings
可选的 App 规则

动作

key_combo
target_key,以及 with_ctrl、with_alt、with_cmd、with_target_shift
jump
direction、count
open_app
bundle_id、app_name
command
command、trusted
input_source
input_source_id
hold_modifier
modifier
directional、independent
action(内置动作使用)
native
native_action(Classic 布局中的鼠标、滚动、媒体、剪贴板与睡眠动作)

从你编辑过或导入的文件中读取的 command 动作,即使文件中写着 trusted: true,也要在应用中确认后才会被信任。

app_config.yml

schema_version: 1
hyper_output_mode: classic_compatibility   # 或 native_clean
hold_to_reveal_enabled: true
hold_to_reveal_threshold_ms: 550
hold_reveal_dismiss_mode: action_start     # 或 caps_release
double_tap_window_ms: 200
show_hud: false
hud_duration_ms: 1350
theme_mode: system                         # light、dark
cjkv_fix_strategy: none                    # shortcut_simulation、switching_focus
show_window_on_launch: true
hide_dock_icon: false
stats_show_inline: true
key_remaps: []                             # 例如 {source: right_option, destination: f19}

备份

在一次性替换大量内容的修改之前——例如导入、重新安装 Classic 布局、移除某个 App 的全部规则、修改方案行为——Capslock 会把 action_mappings.yml 复制一份到 backups/,保留最新的 20 份。

文件的安全规则

  • **未知字段会被保留。**当前版本不认识的键、字段乃至整条记录都会原样写回,因此新版本的配置被旧版本打开后依然完整。
  • **损坏的文件绝不会被覆盖。**如果 action_mappings.yml 无法读取,Capslock 会先备份它,把配置显示为只读,并在你修复或导入正确的文件之前不会启动。诊断页会报告「配置需要修复」。
  • **外部修改会被检测到。**在其他编辑器中所做的修改,会在你切回 Capslock 时重新加载,保存时也绝不会覆盖它们。
  • **旧格式可以读取。**早期版本的纯映射列表会被当作带内联动作的映射读取;编辑某条映射时会将其转换为当前格式。

4.2 - 诊断与恢复

诊断页上的每项检查及其修复方法、Capslock 如何归还 Caps Lock,以及如何在终端中恢复。

「诊断」页运行一组检查,并为每一项失败的检查给出编号的修复步骤,大多数修复就是同一行上的一个按钮。「刷新」会重新运行所有检查。

检查项

检查正常失败时
Caps Lock 映射Caps Lock 已就绪未设置、被其他工具占用或无法读取。点「重新启用」或「恢复 Caps Lock」。
F18F18 空闲其他工具在使用 F18。移除那条改键后点「重新启用」。
Karabiner-Elements未检测到,或无冲突有规则使用 Caps Lock 或 F18,见 Karabiner。
崩溃恢复无需恢复上次没有正常退出,已在启动时清理;或另一个 Capslock 正在运行。
辅助功能已授权点「打开辅助功能设置」「重新检查」或「重置并重新请求」。
发送按键已允许随辅助功能权限一并授予。点「请求权限」「重新检查」或「重置并重新请求」。
读取键盘正在读取键盘macOS 停止了事件钩子。点「重新启用」或「全部松开」。
安全输入关闭密码输入框或终端的「安全键盘输入」会对所有应用隐藏按键。Capslock 从不关闭它;请关闭该输入框或选项。
Caps Lock 按键已收到按一次 Caps Lock,然后点「刷新」。
配置有效文件无法读取。点「显示配置文件夹」,修复或替换它。
签名有效开发版本。
更新已启用此版本不会自动更新,请从官网下载新版本。

「重置并重新请求」会清除 Capslock 的辅助功能和发送按键授权记录并重新请求。当系统设置显示 Capslock 已获授权、检查却仍然失败时使用它;用不同的构建替换应用后可能出现这种情况。

拿回 Caps Lock

操作作用
「暂停」松开 Capslock 按住的一切,把 Caps Lock 还给 macOS,并在核对系统映射后显示「已暂停,Caps Lock 一切如常。」
「全部松开」松开 Capslock 正在按住的所有按键、修饰键和鼠标按键,但不暂停。按键像是卡住时使用。
「恢复 Caps Lock」暂停,并恢复 Capslock 启动之前的按键映射,然后报告是否核验成功。
「退出 Capslock」在退出之前做与「暂停」相同的事。

Capslock 只移除它自己添加的内容,其他工具的改键保持不变。

Capslock 意外停止时

当 Capslock 接管 Caps Lock 时,应用内的一个小助手会盯着它。如果 Capslock 崩溃或被强制退出,助手会松开它按住的按键,并把按键映射恢复原状。下次启动时,Capslock 会先再检查一遍, 诊断页也会注明上次没有正常退出。

在必要时,Capslock 也会主动让出:当 macOS 不再允许它读取键盘、其他应用修改了系统按键映射, 或出现了 Karabiner 规则时,它会停止并归还 Caps Lock,而不是去争抢这个键。睡眠唤醒后,它会重试几次再报告错误。新接入的键盘也会获得映射。

在终端中恢复

如果 Caps Lock 仍然表现异常,先退出 Capslock,再运行:

/Applications/Capslock.app/Contents/MacOS/Capslock --restore-original-caps-lock

它会恢复上一次会话之前的映射,不做任何无法核验的改动;Capslock 仍在运行时它会拒绝执行。诊断页会按你的实际安装路径显示同一条命令,并附带「拷贝」按钮。

不要手动清空映射hidutil property --set '{"UserKeyMapping":[]}' 会删除所有工具的改键,而不只是 Capslock 的。

导出诊断报告

「导出…」会保存 Capslock-Diagnostics.zip,其中包含检查结果和近期日志的脱敏副本。它从不包含你输入的内容、剪贴板、Shell 命令及其输出,也不包含你的配置。报告问题时请附上它。

4.3 - 卸载

移除 Capslock、它的数据与权限记录,并确认 Caps Lock 恢复正常。

Capslock 没有安装程序,除了辅助功能授权记录外,不会在你的用户目录之外留下任何东西。

  1. 从菜单栏图标或用 ⌘Q 退出 Capslock,让它归还 Caps Lock。如果它曾被强制退出、Caps Lock 仍不正常,请在删除应用之前运行恢复命令。
  2. 如果你打开过「登录时打开」,在「设置 › 通用」中关闭它。
  3. 把 /Applications/Capslock.app 移到废纸篓。
  4. 如果还要删除数据,删除以下内容:
    • ~/Library/Application Support/com.vonng.capslock
    • ~/Library/Preferences/com.vonng.capslock.plist
    • ~/Library/Caches/com.vonng.capslock
  5. 在「系统设置 › 隐私与安全性 › 辅助功能」中选中 Capslock,点击「−」。
  6. 如果用过剪贴板槽位,在「钥匙串访问」中删除名为 com.vonng.capslock.clipboard-slots 的项目。

重启 Mac 也会清除 Caps Lock 映射,macOS 不会在重启后保留它。

4.4 - 隐私

Capslock 在你的 Mac 上存储什么、从不记录什么,以及仅有的几种联网情形。

Capslock 在本机处理键盘与指针事件,以执行你选择的映射。它不包含任何行为分析或广告 SDK,不发送任何映射、按键、剪贴板、Shell、应用历史或使用数据。

本地存储的内容

Capslock 保存的所有内容都在你的用户目录~/Library/Application Support/com.vonng.capslock/ 下:

  • 你的配置;
  • 剪贴板槽位,使用随机密钥加密,密钥保存在你的钥匙串中;
  • 私有诊断日志,仅你的用户可读;
  • 恢复记录,用于在崩溃后归还 Caps Lock 映射;
  • 按天统计的动作计数,供「统计」页使用。

诊断导出不包含产生的文本、剪贴板内容、Shell 命令及输出、密钥、原始按键历史和完整的应用历史。

Playground

自由练习只保留最近一次物理按键的观察结果,并且仅在 Playground 可见且位于前台时保留。离开该页面或窗口失去焦点时即被清除,从不上传。

网络访问

除非你自己打开某个链接,或正式版通过 HTTPS 更新源检查新版本,Capslock 不发起任何网络请求。开发版本没有更新源,从不检查更新。

你明确信任的 Shell 命令以你的用户权限运行,可以自行读写文件或访问网络,Capslock 不会为它们设置沙箱。暂停、释放全部输入和撤销配置都不会终止已经启动的进程,也不会回退它的效果。导入的配置中的命令,必须重新复核并信任后才能运行。

权限

Capslock 申请 macOS 辅助功能权限,这是它的主动键盘事件钩子所必需的;它不需要输入监控权限。登录时启动是可选项,使用苹果的 SMAppService。

删除你的数据

删除应用即停止运行。你还可以删除 ~/Library/Application Support/com.vonng.capslock、相关的偏好设置与缓存,并在系统设置的辅助功能列表中移除 Capslock。参见卸载。

联系方式

隐私相关问题:[email protected]

4.5 - 常见问题

关于 Karabiner-Elements、权限、隐私、键盘布局,以及 Capslock 不做什么的简短回答。

需要 Karabiner-Elements 吗?

不需要。Capslock 是独立应用,整套布局都已内置。如果你还用 Karabiner-Elements 管理其他按键, 只要没有 Karabiner 规则作用于 Caps Lock 或 F18 就没问题。见与 Karabiner-Elements 共存。

为什么需要辅助功能权限?

要修改按键事件而不只是旁观,macOS 要求使用主动事件钩子,而这需要辅助功能权限。Capslock 不申请输入监控权限,不安装内核扩展或驱动,也不运行任何特权 Helper。

Capslock 会记录我输入的内容吗?

不会。按键只在内存中处理,从不存储或发送到任何地方。日志不记录输入的文字、剪贴板内容和 Shell 输出,「统计」页只保存次数。见隐私。

打字时 Capslock 崩溃了怎么办?

应用内的助手会归还 Caps Lock 并松开所有按住的键。你也可以退出 Capslock 后运行恢复命令。重启同样会清除映射。

还能用 Caps Lock 输入大写字母吗?

可以。⇪ Esc 打开或关闭真正的大写锁定。大写锁定开启期间,Capslock 组合键输出原来的按键, 直到你再按一次 ⇪ Esc。

我的键盘没有数字小键盘。

小键盘鼠标键不是必需的。⇪ 加方向键、⇪ ⌥ 加 H J K L,以及 ⇪ Return 都可以移动指针和点击。见鼠标与滚动。

支持 Dvorak、AZERTY 等布局吗?

组合键按物理按键匹配,「键盘」页按你当前的布局显示键帽文字。符号类绑定(例如用 ⇪ [ 输入 ()输入的是美式布局下的字符。

为什么笔记本上的 F1 到 F12 组合键没反应?

如果键盘顶排默认用于调节亮度和音量,按键就不会以 F 键到达。请同时按住 fn,或在「系统设置 › 键盘」中打开标准功能键。

密码框打开时什么都不起作用。

安全输入开启时(例如在密码框中,或打开了终端的「安全键盘输入」),macOS 会对所有应用隐藏按键。Capslock 从不关闭它,诊断页会显示它是否开启。

Capslock 支持 Windows 或 Linux 吗?

不支持,Capslock 是 macOS 应用。这套布局最早是 Windows 上的 AutoHotkey 脚本,它和更早的 Karabiner 版本一起保存在归档中。

5 - Karabiner 版

免费开源的 Capslock 布局,作为 Karabiner-Elements 配置发布:一键安装、逐键学习、按需定制, 以及它的早期版本。

在成为原生应用之前,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 中关闭这些规则。

三步开始

  1. 安装 Karabiner-Elements,并授予它请求的权限。
  2. 用安装页上的按钮导入规则。
  3. 在 Karabiner-Elements › Complex Modifications 中启用全部 Capslock 规则。

轻按 Caps Lock:Escape。按住它再按 H J K L:光标随之移动。

版本

版本年份运行于状态
Mac V32021 – 至今Karabiner-Elements持续维护
Mac V22017 – 2021Karabiner-Elements已归档
Mac V12015 – 2017Karabiner 与 Seil已归档
Windows2013 – 2015AutoHotkey已归档

5.1 - 安装与 Hyper 基础

安装 Karabiner-Elements,一键导入 Capslock 规则并确认生效,再理解单击、按住、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:

brew install --cask karabiner-elements

打开 Karabiner-Elements Settings,按照系统设置提示,允许特权与非特权后台服务、辅助功能、输入监控与驱动扩展。在 Virtual Keyboard 中选择与物理键盘一致的布局。各项权限的作用见官方安装指南。

导入规则

打开下面这个导入链接,任意浏览器都会把它直接交给 Karabiner-Elements:

导入 Capslock Enhancement V3.1

也可以自己粘贴这个 URL:

karabiner://karabiner/assets/complex_modifications/import?url=https://raw.githubusercontent.com/Vonng/Capslock/main/mac_v3/capslock.json

点击 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 会显示它实际发出了什么。

十条规则

Capslock 零号控制平面
零号控制平面:单独按住 ⇪ 时的布局。它背后还有十五个由左侧修饰键选择的平面。
Capslock 零号控制平面
零号控制平面:单独按住 ⇪ 时的布局。它背后还有十五个由左侧修饰键选择的平面。

键位图按用途着色,因此一个键的邻居就大致告诉你它做什么。整份配置由十条 Karabiner 规则组成,一类一条,可以逐条启用。

capslock.json 中的十条规则,以及各自承载的映射数量
类目颜色作用映射数
基础功能蓝色单击 ⇪ 发送 ⎋,按住则是 ✱ Hyper,另含输入法切换4
导航粉色Vim 式移动、选择、标签页与窗口切换、指针与滚轮102
删除棕色NM,. 按字符、词、行删除,手不必离开核心区12
鼠标键小键盘把数字小键盘变成一只完整的鼠标63
窗口管理淡蓝关闭与轮换标签页、窗口、应用与桌面;睡眠、锁屏、注销19
应用捷径黄色在三个平面上启动或切换六个应用18
终端控制绿色终端信号、IDE 运行控制、Vim 与 Tmux 前缀、Codex 与 Claude10
剪贴板紫色6–0 上的五个额外文本剪贴板10
字符变换橙色把括号与代码标点挪到核心区附近16
功能键青色截图、媒体、亮度、键盘背光与音量28
配置器读取的是同一份 V3 JSON,是检查任意控制平面按键、定制应用启动快捷键最快的方式,并且可以导出一份可直接导入的配置。

单击、按住与 Hyper

Caps Lock 现在有两种永不冲突的行为,因为一种在松开时判定,另一种在按住期间生效。

大写锁定原本的能力,全都还在一个组合键之内
操作输出用途
单击 ⇪⎋ Escape双手不离开核心区即可发送 Escape
按住 ⇪✱ Hyper进入零号控制平面
✱ 加 ⎋⇪ Caps Lock切换原始大写锁定状态
✱ 加 ␣⌃ 加 ␣切换输入法
✱ 加 ⌘ 加 ␣⌃ 加 ⌘ 加 ␣打开表情与符号面板

✱ 并不是某种私有信号。Karabiner 把按住的 Caps Lock 改写成同时按下右侧全部四个修饰键 ⌘ 加 ⌥ 加 ⌃ 加 ⇧。这带来两个值得理解的结果:

  • 其他软件收到的仍然是普通组合键。 Alfred、Moom、Magnet、Raycast 以及各类 IDE 收到的是 ⌃ 加 ⌥ 加 ⇧ 加 ⌘ 加一个字母,可以像绑定其他快捷键一样绑定它。
  • 规则没有占用的键会原样透传。 ✱ 加 A 之所以没有自己的规则,正是为了把它让给窗口管理器。任何你想交给其他应用的键都可以照此办理。

十六个控制平面

Hyper 保持按下时,四个左侧修饰键充当四个二进制开关。把它们当成四个比特位读,就得到 0–15 号平面:

⌘ = 1 · ⌥ = 2 · ⌃ = 4 · ⇧ = 8。

V3.1 的全部十六个平面、各自的映射数量,以及它遵循的主题
平面左侧修饰键映射数承载内容
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。如果与你使用的平面冲突,请重新映射该系统快捷键。

下一步

继续阅读导航、删除与鼠标控制。

5.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 条。

移动与选择文本

文本层的规律只有一条:按住 ⌘,移动就变成选择,因为规则发出的是同一个方向键再加上 ⇧。再叠加 ⌥,选择单位随之扩大:一个字符变成一个词,一行变成三行,半行变成整行。

0、1、3 号平面:移动、选择、扩大选择
按键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 自带的 ⌘ 加 `「将焦点移到下一个窗口」,请先在系统设置 › 键盘 › 键盘快捷键中确认它已启用。

从核心区控制指针与滚轮

另外四个平面把同样这八个键变成鼠标,双手完全不必移动。两种模式下, ⇧ 都是那个「油门」。

2、10、12、9 号平面:两个加速平面的速度正好是旁边平面的两倍
按键+ ⌥
指针
+ ⌥ 加 ⇧
指针加速
+ ⌃ 加 ⇧
滚轮
+ ⌘ 加 ⇧
滚轮加速
H指针左移指针左移滚轮左滚轮左
J指针下移指针下移滚轮下滚轮下
K指针上移指针上移滚轮上滚轮上
L指针右移指针右移滚轮右滚轮右
U左键左键滚轮右滚轮右
I右键右键滚轮上滚轮上
O后退键后退键滚轮下滚轮下
P前进键前进键滚轮左滚轮左
速度是 Karabiner 的 mouse_key 单位,不是像素
平面指针速度滚轮速度
⌥ / ⌃ 加 ⇧160064
⌥ 加 ⇧ / ⌘ 加 ⇧3200128

只有鼠标中键是例外:它不在导航键上,而在 ✱ 加 ⌥ 加 ↩。

方向键鼠标控制

物理方向键同样可以驱动指针,很多时候比切到核心区更顺手。这里 ⌥ 减速、⌘ 加速,指针与滚轮两种模式都适用。

方向键簇上的三档指针速度与三档滚轮速度
组合结果速度
✱ + 方向键移动指针1600
✱ 加 ⌥ + 方向键缓慢移动800
✱ 加 ⌘ + 方向键快速移动4200
✱ 加 ⇧ + 方向键滚动滚轮64
✱ 加 ⇧ 加 ⌥ + 方向键缓慢滚动32
✱ 加 ⇧ 加 ⌘ + 方向键快速滚动256
说明

V3.1 中快速滚轮的纵向方向是反的:✱ 加 ⇧ 加 ⌘ 加 ↑ 与 ✱ 加 ⇧ 加 ↓ 滚动方向相同,✱ 加 ⇧ 加 ⌘ 加 ↓ 与 ✱ 加 ⇧ 加 ↑ 相同。左右方向键不受影响。

五个鼠标按键全都落在 ↩ 上:

组合按键
✱ 加 ↩左键单击
✱ 加 ⌘ 加 ↩右键单击
✱ 加 ⌥ 加 ↩中键单击
✱ 加 ⇧ 加 ↩后退
✱ 加 ⌃ 加 ↩前进

语义删除

N M , . 位于导航键正下方。左边一对删除光标之前的内容,右边一对删除光标之后的内容,叠加修饰键则放大删除单位。

N 与 M 删除光标之前的内容,逗号与句点删除光标之后的内容
按键Hyper+ ⌘+ ⌥
N删除前一个词删除至行首删除至行首
M删除前一个字符删除前一个词下移当前行
,删除后一个字符删除后一个词上移当前行
.删除后一个词删除至行尾删除至行首

有两处刻意打破了规律。✱ 加 ⌥ 加 N 与 ✱ 加 ⌥ 加 . 都发送 ⌘ 加 ⌫,把光标到行首的内容一次清空,所以这一组的两个外侧键就是「这行不要了」。而 ✱ 加 ⌥ 加 M 与 ✱ 加 ⌥ 加 , 根本不删除:它们发出的是 ⌥ 加 ⇧ 加 ↓ 与 ⌥ 加 ⇧ 加 ↑, 也就是 IntelliJ、VS Code 等编辑器通用的上下移动整行。

数字键盘鼠标

如果键盘带小键盘,Hyper 会把整块小键盘变成一只鼠标:数字键给出以 5 为中心的八个方向,顶行滚动,底边与右侧是五个按键。

Hyper 加小键盘:指针、滚轮与全部五个鼠标按键
小键盘按键映射
7 8 9 4 6 1 2 3八个指针方向,含四个斜向
5停止:发送速度为零的指针事件
/ =滚轮上 / 下
Num Lock *滚轮横向滚动
0左键单击
.中键单击
⌤右键单击
+ / -前进 / 后退

速度修饰键与别处一致:⌥ 把指针降到一半,⌘ 提升一倍,再加 ⇧ 则把指针移动换成同档速度的滚轮移动。

下一步

继续阅读窗口、应用、终端、剪贴板与字符输入。

5.3 - 窗口与开发者工作流

关闭与轮换窗口、启动应用、发送终端与 IDE 组合键、使用五个额外剪贴板,并在核心区直接输入代码标点。

这套布局为最容易打断开发者心流的操作安排了多个颜色区域:切换窗口、启动工具、发送终端信号、临时存放文本,以及输入标点符号。

重要

本页所有组合都假定 ✱ 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+ ⌘+ ⌥
ESafariFinderMail
RiTerm2PreviewTerminal
TVisual Studio CodeTyporaNotes
YSiriKarabiner-ElementsAmphetamine
FAlfred 5DashDictionary
GIntelliJ IDEAGoogle ChromeCalendar
配置器可以在浏览器里改写其中任何一个名字,

并导出一份可以直接导入的 JSON,既不用克隆仓库,也不用安装任何工具。

由于 open -a 既能启动也能切换,一个键就顶掉了点 Dock 图标和在 ⌘ 加 ⇥ 里翻找。如果应用已经在最前,再按一次不会有任何反应: 它不是开关。

终端与 IDE 控制

绿色按键把 Shell 高频使用的控制组合挪到右手,左手不必再在打字中途扭成 ⌃ 加字母的姿势。

终端信号、IDE 运行控制,以及两个前缀键
按键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 … ✱ 加 0cat ~/.clip6 | pbcopy,然后粘贴

这种实现方式带来两个结果,而且都很有用:

  • **槽位能挺过注销、重启,也不受系统剪贴板影响。**它们就是普通文件,cat ~/.clip7 就能在终端里读出来,任何编辑器都可以往里写,完全不必碰键盘。
  • **它们只保存纯文本。**复制图片或文件进槽位,存下来的是 pbpaste 渲染出的文本,而不是原始对象。
说明

V3.1 有意只在 6–0 上保留五个槽位。旧配置还使用 1–5,升级前请确认自己的使用习惯。

面向代码的上档变换

橙色按键把程序员整天都在敲的标点挪到核心区附近,输入括号不必再做 ⇧ 体操。

两个键上摆下三对括号,:= 与 != 也落在同一只手里
按键Hyper+ ⌘+ ⌥
-_页面缩小—
=+页面放大—
[({<
])}>
;:!—
'==—
/切换注释——
\切换注释——

括号键是最大的收益:[ 与 ] 在同样的两个位置上给出圆括号、花括号、尖括号三对。又因为 ; 与 ' 紧挨着,: = 和 ! = 都是相邻连击,这就是 Go 和 Rust 里的赋值与比较反而比在原生键盘上更快的原因。

✱ 加 / 与 ✱ 加 \ 都发送 ⌘ 加 /,也就是几乎所有编辑器与 IDE 通用的注释快捷键。

下一步

在系统功能与参考中查阅功能键、截图、符号、定制与问题排查。

5.4 - 系统功能与参考

功能键、截图、本手册使用的符号、规则的写法、V3.1 的变化、定制方法与问题排查。

本页集中收录更适合查阅、而不是顺序学习的映射与项目资料。

功能键与系统控制

F1–F12 默认作为标准功能键;按住 Hyper 时发送对应的媒体或系统功能。青色区块覆盖整个顶行以及截图键。

Karabiner-Elements 15.1 及以上版本遵循 系统设置 › 键盘 › 键盘快捷键… › 功能键 的设置
按键Hyper 动作+ ⌘
`区域截图到剪贴板区域截图到文件
F1 / F2亮度降低 / 提高桌面 1 / 2
F3调度中心桌面 3
F4Spotlight—
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 自带的四分之一步长修饰键。

步进为 F1–F12 上整档调节的四分之一
导航区按键动作
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,也就是生命、宇宙以及任何事情的终极答案。

一条规则长什么样

配置里的每一条映射都是同一个形状。读懂一条,整个文件就都可读了,下面的定制一节也就不再吓人:

- description: 'control + h = ctrl + left (prev desktop)'
  type: basic
  from:
    key_code: h
    modifiers:
      mandatory: [left_control, right_command, right_control, right_shift, right_option]
  to:
    - key_code: left_arrow
      modifiers: [left_control]

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 执行的是定义,而不是打开词典。

定制配置

配置器无需工具

浏览全部十六个平面,查看任意按键真实的 Karabiner 输出,修改黄色按键背后的应用名称,并导出一份可以直接导入的 JSON 文件。

Fork 仓库,编辑可读性更好的 mac_v3/capslock.yml,然后重新生成 JSON。 Karabiner 规则模式支持的任何写法在这里都可以使用。

YAML 是唯一的事实来源,JSON 由它生成。重新生成只需要一条命令,以及 yq v4:

make -C mac_v3 compile

一个不错的入门定制是占用七个空闲平面之一:复制任意一条规则,改掉 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.5 - 配置器

浏览 Karabiner 规则的全部十六个控制平面,查看任意按键,改写应用捷径,并导出可导入的 JSON 文件。

从表格中选择控制平面,或直接点击键盘上的左侧修饰键,再点击任意按键查看它背后的 Karabiner 规则。启动应用的按键可以改名。所有修改只保存在当前页面,直到你复制或下载 JSON;不会发送到任何地方。

交互式配置器只在网页上运行:它展示全部十六个控制平面,可以改写应用捷径,并导出可导入 Karabiner-Elements 的 JSON。当前配置(3.1.0): capslock.json

导入你的版本

  1. 点击下载配置,得到的文件名为 capslock-3.1.0-custom.json。
  2. 把它放进 ~/.config/karabiner/assets/complex_modifications/。
  3. 在 Karabiner-Elements › Settings › Complex Modifications 中移除原有的 Capslock 规则,选择 Add predefined rule,再启用你这份文件中的规则。

安装页上的导入链接始终获取未经修改的配置,想恢复默认值时用它即可。

5.6 - 早期版本

Capslock 布局的 Mac V2、Mac V1 与 Windows 版,留作历史记录,已不再维护。

在 V3 之前,Capslock 布局先后有过三个版本:一份 Windows 上的 AutoHotkey 脚本、一份为 OS X 上的旧版 Karabiner 编写的 XML 配置,以及第一套 Karabiner-Elements 规则。它们的文件仍保存在 GitHub 仓库中。这几页记录了每个版本的功能和当年的安装方法。

仅作历史留存这些版本已不再维护。它们面向的是多年前的操作系统,也没有人在当前的 macOS 或 Windows

上验证过。如果现在想用这套布局,请安装 Mac V3。

版本年份运行环境配置形式
Mac V22017 – 2021macOS 10.11 – 10.13 上的 Karabiner-ElementsJSON 格式的复杂修改规则
Mac V12015 – 2017OS X 10.10 – 10.11 上的 Karabiner 与 SeilKarabiner 的 private.xml
Windows2013 – 2015Windows XP – 10 上的 AutoHotkeyAutoHotkey 脚本与预编译的 .exe

两个 Mac 版本都用 ✱ 表示 Hyper,这几页沿用这一写法:✱ H 即按住 Caps Lock 再按 H。

5.6.1 - Mac V2

Capslock Enhancement Mac V2:2017–2021 年的 Karabiner-Elements 规则,轻按 Caps Lock 为 Escape,按住为 Hyper。
已归档,不再维护

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 仍可与左侧修饰键组合,大多数应用也能正常识别。

Mac V2 布局图:完整键盘上标出每个键在 Hyper 下的功能,图中文字为英文
V2 README 中的布局图(英文)。图中少数应用键与本页表格不一致,表格以规则文件为准。

Caps Lock 键

按键效果
轻按 Caps LockEscape
按住 Caps LockHyper(✱),即同时按住右侧的 ⌃ ⌥ ⇧ ⌘
✱ EscapeCaps Lock。README 注明了一个缺陷:打开后很难再关掉

导航

单按 Hyper 时移动光标;再加一个左侧修饰键,则分别用于选择文本、移动指针、切换标签页与应用,或操作桌面空间。

键✱ 移动✱ ⌘ 选择✱ ⌥ 指针✱ ⇧ 切换✱ ⌃ 桌面空间
H←⇧←指针左移上一个标签页(⌃⇧Tab)左侧桌面空间(⌃←)
J↓⇧↓指针下移下一个应用(⌘Tab)当前应用的所有窗口(⌃↓)
K↑⇧↑指针上移上一个应用(⇧⌘Tab)调度中心(⌃↑)
L→⇧→指针右移下一个标签页(⌃Tab)右侧桌面空间(⌃→)
UPage Up⇧Page Up———
IHome⇧Home———
OEnd⇧End———
PPage 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⌃VVim 前缀
✱ B⌃Btmux 的默认前缀
✱ D⌃D输入结束(EOF)

应用

README 建议把这些换成你自己常用的应用。

键✱✱ ⌘
ESafari访达
RiTerm2预览
TVisual Studio CodeTypora
D⌃D(见上文)词典
F⌃⌥⇧⌘F,留给 AlfredDash
GIntelliJ IDEAGoogle 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,仅作记录。

  1. 下载并安装 Karabiner-Elements。
  2. 在 Safari 中打开下面的地址导入规则:
    karabiner://karabiner/assets/complex_modifications/import?url=https://raw.githubusercontent.com/Vonng/Capslock/main/mac_v2/capslock.json
    也可以把 capslock.json 复制到 ~/.config/karabiner/assets/complex_modifications/,mac_v2 目录下的 make install 做的就是这件事。
  3. 在 Karabiner-Elements 中打开 Complex Modifications 标签页,点按 Add Item,再启用你需要的规则。
  4. 如需更换应用或修改其他按键,编辑 ~/.config/karabiner/assets/complex_modifications/ 中导入的那份文件。
说明

README 原本的导入链接指向仓库的 mac/ 目录,如今那里存放的是 V3;它的第二个链接指向 Karabiner-Elements 规则库,那里现在收录的也是 V3。上面的地址指向的是 V2 的文件。

文件

V2 的全部文件都在仓库的 mac_v2/ 目录中。

文件说明
capslock.jsonV2 的十条规则,可直接导入
karabiner.json包含同一组规则的完整 Karabiner-Elements 配置。make all 会用它覆盖 ~/.config/karabiner/karabiner.json,替换你现有的全部设置
makefile上文提到的 install 与 all 两个目标
README.mdV2 的原始文档

与 V3 的区别

  • 平面。 V2 每次只让 Hyper 与一个左侧修饰键组合,因此只有少数几个平面。V3 允许 Hyper 与四个左侧修饰键任意组合,最多可得 16 个平面。
  • **改动的按键。**在 V3.1 中,F13 和 F14 改为截屏控制,不再是上一首和下一首;✱ ⌘ D 改为执行「查询」(Define),不再打开词典;聚焦搜索(Spotlight)取代了启动台。

5.6.2 - Mac V1

Capslock Mac V1:2015–2017 年的 private.xml,借助 Seil 和旧版 Karabiner 在 OS X 10.10 与 10.11 上把 Caps Lock 变成 Hyper。
已归档,不再维护

Mac V1 运行在旧版 Karabiner 与 Seil 之上,适用于 OS X 10.10 Yosemite 和 10.11 El Capitan。旧版 Karabiner 无法在 macOS 10.12 Sierra 及更高版本上运行,所以 V1 在如今的 Mac 上都用不了。它先被 Mac V2 取代,目前持续维护的是Mac V3。

Mac V1 是 Capslock 在 Mac 上的第一个版本,需要两个工具配合:先用 Seil 把 Caps Lock 发出的键码改为 80,也就是 F19 的键码;再由 Karabiner 读取 V1 的 private.xml,在按住这个键时把它变成 Hyper(✱)。每组快捷键都是一个独立条目,可以在 Karabiner 的偏好设置中分别开启。

Mac V1 布局图:完整键盘上标出各键功能,键位标注为英文,颜色图例为中文
V1 README 中的布局图。键位标注为英文,颜色图例为中文;图中部分应用键与本页列表不一致。

Caps Lock 键

按键效果
按住 Caps LockHyper(✱)
轻按 Caps LockEscape,或用 ⌃Space 切换输入法。这是两个互相冲突的独立条目,只能开启其中一个
✱ EscapeCaps Lock
✱ SpaceEscape

导航

按住 Hyper 移动光标;再加上左侧 ⌘,就会边移动边选择。

键✱ 移动✱ ⌘ 选择
H←⇧←
J↓⇧↓
K↑⇧↑
L→⇧→
UPage Up⇧Page Up
IHome⇧Home
OEnd⇧End
PPage Down⇧Page Down

删除

按键发送删除内容
✱ N⌥⌫光标前的一个词
✱ M⌫光标前的一个字符
✱ ,⌦光标后的一个字符
✱ .⌥⌦光标后的一个词

窗口与标签页

按键发送效果
✱ A⌃⌥⇧⌘A留给窗口管理工具 Moom
✱ ⌘ AF11显示桌面
✱ Q⌘Q退出应用
✱ Tab⌘Tab下一个应用
✱ ⌘ Tab⇧⌘Tab上一个应用
✱ S⌃Tab下一个标签页
✱ ⌘ S⌃⇧Tab上一个标签页
✱ W⌘W关闭标签页

终端按键

按键发送用途
✱ Z⌃Z挂起任务(SIGTSTP)
✱ X⌃Btmux 的默认前缀
✱ C⌃C中断(SIGINT)
✱ D⌃D输入结束(EOF)

应用

README 建议把这些换成你自己常用的应用。

键✱✱ ⌘
EGoogle Chrome,也可通过另一个条目改为 Safari访达
RiTerm⌃R,在 IDE 中运行
TTyporaMWeb
FDash词典
GIntelliJ IDEA—
VVisual 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,仅作记录。

  1. 下载并安装 Seil。
  2. 下载并安装 Karabiner。
  3. 在 Seil 中勾选 Change the caps lock key,并把键码设为 80。
  4. 在 Karabiner 中打开 Misc & Uninstall 标签页,点按 Open private.xml,用 V1 的private.xml 替换这个文件。mac_v1 目录下的 setup 脚本可以代劳,它会把文件复制到~/Library/Application Support/Karabiner/private.xml。
  5. 回到 Change Key 标签页,点按 Reload XML,再启用你需要的条目。
Seil 的 Setting 标签页:已勾选 Change the caps lock key 并填入键码 80,界面为英文
第 3 步:在 Seil 中把 Caps Lock 设为键码 80(英文界面)。
Karabiner 的 Misc & Uninstall 标签页,箭头指向 Open private.xml 按钮,右侧访达窗口中显示该文件,界面为英文
第 4 步:在 Karabiner 中点按 Open private.xml,找到要替换的文件(英文界面)。

文件

V1 的全部文件都在仓库的 mac_v1/ 目录中。

文件说明
private.xml供旧版 Karabiner 使用的 V1 配置
setup把 private.xml 复制到 Karabiner 目录的 shell 脚本
README.mdV1 的原始文档

与 V3 的区别

  • 工具。 V1 需要 Seil 和旧版 Karabiner,配置文件是 XML。从 macOS Sierra 起, Karabiner-Elements 取代了旧版 Karabiner;V2 和 V3 都是它的 JSON 规则,也不再需要 Seil。
  • 轻按 Caps Lock。 V1 可以在 Escape 和切换输入法之间二选一;V3 轻按时发送 Escape。

5.6.3 - Windows

Capslock 的起点:2013–2015 年的 AutoHotkey 脚本,连同源码和一个旧的预编译可执行文件一并保留。
已归档,不再维护

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 LockEscape,Vim 用户尤其顺手
Caps Lock + `打开或关闭大小写锁定
Caps Lock + H J K LVim 风格的方向键
Caps Lock + W B向右、向左移动一个词
Caps Lock + U I O PPage Up、Home、End、Page Down
Caps Lock + N M , .删除:Ctrl+Backspace、Backspace、Delete、Ctrl+Delete
Caps Lock + Z X C V A YCtrl+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 – 5Visual 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.ahkAutoHotkey 源码
CapsLock.exe预编译的可执行文件,207,868 字节
README.md原始的功能概括

仓库中 CapsLock.exe 的 SHA-256 为e0d6a4d2de155860aed164281ed16f5871aaca95cccc6fe1d46db2b16004cb80。