跳转到主要内容

CapsLock 补完计划 · V3.1 · Karabiner-Elements

让 CapsLock 再次伟大

单击是 Escape,按住是 Hyper
一个被遗忘的按键,展开十六个键盘控制平面。

Apache-2.0 开源 · 不常驻额外后台进程 · 无需付费

已收录于 Karabiner-Elements 官方复杂修饰陈列馆

1只改一个键只有 Caps Lock 易主,其余按键照旧
16控制平面左侧四个修饰键像四个二进制位一样寻址
282按键映射当前 V3 规则集中的全部组合
13年持续维护2013 年的一段 AutoHotkey 脚本

为什么一个键就够了

那个几乎从不按下的键,可以承担一整套工作流

键盘上最顺手的那个键什么都不做。下面是它可以做的事。

01 / 核心思路

单击 Escape,按住 Hyper

◇ 一个键,两份互不冲突的职责

  • 轻点一下发送 Esc,让最高频的按键回到手指旁边
  • 按住则发送 ✱ Hyper右侧四个修饰键同时按下
  • Alfred、Moom 与 IDE 收到的都是普通组合键
  • ✱ Esc 仍可切换原始的大写锁定状态
  • ✱ Space 仍可切换输入法

什么都没有失去,一切都离手更近。

02 / 可寻址空间

十六个控制平面,而不是一层

◇ 四个修饰键,四个二进制位,十六个平面

  • 左侧 就是四个二进制开关
  • 零号平面承载日常高频操作
  • 九个平面已被使用,还有七个留给你
  • 你新增的平面与内置平面地位完全相同

键盘不再是一个平面,而是一段地址空间。

control-planes
# 平面 = 左侧 ⌘⌥⌃⇧ 的四位二进制组合
平面  0    89 个映射
✱⌘     平面  1    59 个映射
✱⌥     平面  2    38 个映射
✱⇧     平面  8    25 个映射
✱⌘⇧    平面  9    21 个映射
✱⌥⇧    平面 10    21 个映射
# 已用 9 个平面,还剩 7 个

03 / 配置即数据

先看清每一处映射,再动手修改

◇ 一个 JSON 文件,没有隐藏状态

  • 配置器读取的就是本项目发布的那份 JSON
  • 逐平面、逐按键展示真实的 Karabiner 输出
  • 改掉黄色按键背后的应用,再导出新配置
  • 还想更深:改 capslock.yml,跑一条 make

先看懂,再定制。

平面里装着什么

九类按键,一套心智模型

键盘按用途分区着色,一个键的邻居就告诉你它做什么。下面的数量是 V3.1 中各类目实际包含的映射数。

102 个映射

导航

HJKL 移动,UIOP 翻页。叠加修饰键即可选择文本,切换标签页、窗口、应用与桌面,或者驱动指针与滚轮。

查看映射

12 个映射

删除

N M , . 就在导航键正下方,向前向后按字符、单词或整行删除,手不必离开核心区。

查看映射

63 个映射

鼠标键

小键盘变成一只完整的鼠标:八个指针方向、四个滚轮方向、五个按键,并带有加速与减速变体。

查看映射

19 个映射

窗口管理

关闭标签页、窗口或应用;在应用、窗口、标签页与桌面之间切换;睡眠、锁屏与注销。窗口布局交给 Moom 或 Magnet。

查看映射

18 个映射

应用捷径

黄色按键用于启动或切换浏览器、终端、编辑器、IDE 与启动器。这些只是默认值,不是约束。

查看映射

10 个映射

终端与 IDE

⌃C ⌃D ⌃Z ⌃R 不再需要别扭的左手姿势,还有 Vim 与 Tmux 的前缀键,以及 Codex 和 Claude 各占一个键。

查看映射

10 个映射

剪贴板

数字键 60 变成五个互相独立的文本剪贴板。Hyper 加 复制到某一槽位,单独 Hyper 从中粘贴。

查看映射

16 个映射

字符变换

程序员整天都在敲的标点 —— 圆括号、花括号、尖括号、下划线、冒号与感叹号 —— 都只有一个组合键的距离。

查看映射

28 个映射

功能键

F1–F12 上的媒体、亮度、键盘背光与音量,反引号与 F13–F14 上的截图,以及导航键簇上的细粒度调节。

查看映射

安装

两步,大约五分钟

一组 Karabiner-Elements 规则,没有别的东西需要安装,也不新增后台进程。

  1. 安装 Karabiner-Elements

    官方网站下载,或者使用 Homebrew 安装。按 macOS 提示授予后台服务、辅助功能、输入监控与驱动扩展权限。

    brew install --cask karabiner-elements
  2. 导入规则

    在任意浏览器中打开下面这个 URL,它会把配置直接交给 Karabiner-Elements。点击 Import,再在 Complex Modifications 中启用需要的规则。

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

来自真实用户

一套让人专程写信道谢的键盘方案

这些不是市场文案,而是两封完整的用户来信 —— 来自把补完计划用进日常工作的人。

我只想向这位开发者朋友致以最诚挚的谢意,感谢您在 CapsLock Enhancement 中付出的辛苦努力!

先前我也用 Karabiner-Elements 改了个 Hyper/Escape 切换键,也像你一样配置了几个应用快捷方式。

但你简直把这个东西提升到了一个全新的境界,太不可思议了!我把你的键位参考图打印下来贴在了显示器上!

我正在慢慢微调,让它逐渐适配我自己的工作流。感谢你,向我展示了一种赋予键盘多个 Hyper 控制平面的可能性!

在这一切的背后,一定会有一个如此优雅而简单的解法:无论是花费十年、一百年还是一千年,当我们最终发现它时,都会面面相觑 —— 除了它,还能是什么呢? —— 约翰·阿奇博尔德·惠勒,《纽约科学院年鉴》,480(1986)

Matthew Kelly“MCGA is Amazing” · 2019 年 2 月 22 日 · 译自英文

作者您好,

我今天偶然发现了您的 git 库 github.com/Vonng/Capslock,下载试用了一下,真是佩服得五体投地。

这个 script 让我真正爱上了键盘。

刚好我用的也是 Filco 87 双模键盘,配合这个 script,真是感觉要飞起来了!

发邮件只是为了表达衷心的感谢,希望您以后还能继续维护下去。

再次衷心感谢!

张强“非常感谢您的改键大作” · 中文原文

一个想法,十三年

从一段 AutoHotkey 脚本到一套 Karabiner 规则

  1. Windows · AutoHotkey

    最初的补完计划在 Windows 上把这个键变成修饰键。现已归档,但仍保留在仓库中。

  2. macOS V1

    移植到初代 Karabiner 及其 XML 私有配置。

  3. macOS V2

    基于 Karabiner-Elements 的复杂修饰重写。十六个控制平面在此成形,项目也进入官方陈列馆。

  4. macOS V3

    配置改为可读的 YAML 源文件,再编译成 Karabiner JSON,映射从此可以当作数据来审阅。

  5. V3.1

    60 上的五个剪贴板,C 上的 Codex 与 Claude,F13 与 F14 上的截图,以及 Spotlight 与 Alfred 5 的新默认值。

安装之前

值得先问清楚的问题

会失去大写锁定功能吗?

不会。Hyper 加 就能切换原始的大写锁定状态,macOS 的指示灯照常工作。实际使用中,大写锁定一个月用不了几次,而 Escape 一分钟要用好几次 —— 这正是交换二者的理由。

其他快捷键工具还能正常工作吗?

可以。Hyper 不是私有信号,它就是键盘右侧 同时按下。Alfred、Moom、Magnet、Raycast 以及各类 IDE 收到的是一个完全普通的组合键,可以像绑定其他快捷键一样绑定它。

必须接受默认的应用快捷键吗?

不必。配置器可以在浏览器里改写黄色按键背后的应用,并导出新的 JSON 文件。需要更深的定制,就 fork 仓库、修改 mac_v3/capslock.yml,再重新生成 JSON。

需要特殊键盘吗?

不需要。布局以 ANSI 键盘为蓝本,内置键盘与外接键盘同样适用。小键盘鼠标层需要一块数字小键盘,其余功能都不需要。

Windows 与 Linux 呢?

Windows 上的 AutoHotkey 版本已归档,不再维护。Linux 暂不支持:各桌面环境差异太大,一份配置难以覆盖。欢迎用 xmodmap 之类工具移植。

收费吗?会收集什么数据?

不收费,也不收集任何数据。这套规则是以 Apache-2.0 授权的数据,由 Karabiner-Elements 解释执行;没有账号,没有遥测,也没有独立的后台进程。

让 Caps Lock 再次伟大。安装 Karabiner,导入一个 JSON 文件,双手从此不必离开核心区。