HHKB (Happy Hacking Keyboard) 是一款 60% 布局的静电容键盘。
按键
设计逻辑,Karabiner 和 HHKB 按键功能尽量设计成可替代的方式,以保持体验一致性。
修饰键
可以在 YDKB 中把修饰键的单按改成 F13、F14、F15、F16,然后在应用中修改对应快捷键(当前未配置)。
| 按键 | 单按 (YDKB) | 连按 (KE) | 按住 (默认) |
|---|---|---|---|
| Shift | 切换输入法 | Shift | |
| Control | 无 | Raycast | Control |
| Option | 无 | Ghostty | Option |
| Command | 无 | Command |
Karabiner-Elements 实现:
- Shift:单按 -> 切换输入法
- Control:连按 -> Raycast (control + option + command + Spacebar)
- Option: 连按 -> Ghostty (option + command + `)
普通按键
| 按键 | 单按 (默认) | 连按 (KE) | 按住 (YDKB) |
|---|---|---|---|
| Tab | Tab | 跳到 层1 | |
| Fn | Fn | ||
| ESC | ESC | 切换英文 | 层1 -> ~ 键 |
| Spacebar | Spacebar | Hyper Key | |
| i | i | 切换英文 |
Karabiner-Elements 实现:
- ESC:连按 -> 切换输入法
- Tab: 按住 -> Vi Mode
- Spacebar: 按住 -> Hyper
- i: 连按 -> 切换输入法
- Caps-Lock:-> Control
当前布局
Layer 0:

Layer 1:

YDKB
自带命令
| 功能 | 默认按键 | 自定义 |
|---|---|---|
| 打开蓝牙 | LShift + RShift + W | |
| 关闭蓝牙 | Lshift + Rshift + LCtrl + W | |
| 清除配对 | Lshift + RShift + LCtrl + R | |
| 节能模式 | Lshift + RShift + P | |
| 输出电量 | LShift + RShift + | |
| 重启键盘 | LShift + RShift + B | |
| 显示状态 | LShift + RShift + S | |
| 蓝牙可发现 | LShift + RShift + I | |
| 蓝牙不可发现 | LShift + RShift + O | |
| 蓝牙 / USB 模式切换 | RShift + RShift + U | Tab + |
蓝牙配对
在 [[macOS]] 中按 LShift + RShift + LControl + R 指示灯亮起,此时可在蓝牙中看到设备。(这个方式可以解决出现无法搜索到设备的情况)
自定义布局
在 YD Keymap Builder 配置完成后下载 HHKB_BLE.BIN 文件到本地:
先拔掉键盘线,然后按住 ESC 键把线插回去,然后通过 [[diskutil]] 命令卸载磁盘
diskutil umount /Volumes/HHKB_BLE卸载后返回返回 Volume HHKB_BLE on disk4 unmounted,其中的 disk4 后面条命令需要用到:
sudo dd if=~/Downloads/HHKB_BLE.BIN of=/dev/disk4 seek=4出现以下内容表示刷新成功:
Password:52+0 records in52+0 records out26624 bytes transferred in 2.295174 secs (11600 bytes/sec)此时可以按 ESC 键退出刷机模式。
MTK
注:已改用 [[#YDKB]] 。
刷入键盘布局
要想刷入自定义布局,首先要安装一个引导程序,在 macOS 下很简单,一句命令的事:
// 安装引导程序,brew install dfu-programmer安装完成后可以使用以下命令刷入配置:
dfu-programmer atmega32u4 erase --force # 清除现有固件dfu-programmer atmega32u4 flash unimap.hex # 加载固件dfu-programmer atmega32u4 launch # 重启键盘
# 把文件放在固定位置,可以使用 && 连接,一行解决dfu-programmer atmega32u4 erase --force && dfu-programmer atmega32u4 flash unimap.hex && dfu-programmer atmega32u4 reset更新命令:
cd ~/Desktopdfu-programmer atmega32u4 erase --force && dfu-programmer atmega32u4 flash unimap.hex && dfu-programmer atmega32u4 reset| 按键 | 短按 | 长按 | 按住(修饰) | 双击 / 连按 |
|---|---|---|---|---|
| ESC | 默认 | 无 | 无 | 切换输入法 |
| return | 默认 | 无 | 无 | |
| Delete | 默认 | 无 | 无 | 删除整行 |
| Tab | 默认 | 无 | Vi Mode | |
| Space | 默认 | 无 | Hyper | |
| Control | 可修改 | 无 | 默认 | |
| lShift | 中英 | 无 | 默认 | iTerm |
| lOption | 默认 | 无 | 软件快捷启动 | Alfred |
| lCommand | 无 | 无 | 默认 | |
| rShift | 可修改 | 无 | 默认 | |
| rOption | 可修改 | 无 | 可修改 | |
| rCommand | 可修改 | 无 | 默认 | |
| Fn | 无 | 无 | 默认 |
说明
-
L:Layer Switch(momentary): 按住使用,松开恢复
-
T:Layer Toggled:按下松开后切换,原功能失效
-
LT:Layer Switch and Toggle by five taps: 按住使用,松开恢复,连续按5次则成为 layer toggled。
-
功能键:按下松开之后,执行特定功能;
- 如:字母、数字、ESC 等。
-
修饰键:按住不放,改变其它按键的行为,松开恢复;
- 如:Shift、Control、Option 等。
-
状态键:按下松开之后,改变其它按键的行为,再按恢复;
- 如:Caps lock 和 Num lock。
| 类型 | 功能 | 按键 |
|---|---|---|
| Action Key | 单字符 | 更改按键功能 |
| Action Mods OneShot | 修饰键 | 按住时不变,单击时做修饰,仅生效一次 |
| Action Mods Tap Toggle | 修饰键 | 替换原按键功能,连按五次保持原功能 |
| Action Mods Key | 修饰键 + 单字符 | 替换原按键功能 |
| Action Mods Tap Key | 修饰键 + 单字符 | 按住时修饰,单击时不变 |
| Action Layer Mods | 层级 + 修饰键 | 切换层级并注册修饰键 |
| Action Layer Tap Key | 单字符 + 层级 | 按住时切换层级,松开恢复 |
| Action Layer Momentary | 层级 | L:按下时激活,松开恢复 |
| Action Layer Toggle | 层级 | T:按下切换图层,再按恢复 |
| Action Layer Tap Toggle | 层级 | LT:按下切换层级 |
| Action Usage System | 系统功能 - 电源 | |
| Action Usage Consumer | 系统功能 - 控制 | |
| Action Mousekey | 鼠标 | |
| Action Layer On Off | 层级 | |
| Action Layer Off On | 层级 | |
| Action Layer Set Clear | 层级 |
参考
- [YDKB 文档](https://ydkb.io/help/?help#/README
- Mac 键盘快捷键 - Apple 支持
- 键盘按键:TMK Keymap Editor
- 模式说明:Keymap · tmk/tmk_keyboard Wiki · GitHub
- 键盘的非常规玩法,定义自己的配列hhkb | zFrontier 装备前线
- [TMK] HHKB Alt Controller
- 如何在 Windows 编译 GH60 键位程式 - 使用 Docker
- gh60 刷鍵位 - tmk 如何設定三組合鍵 Remap
- eamesliu.com — 让 Caps Lock 键变得实用 -A Modern Space Cadet / Steve Losh
- tmk_keyboard/README.md at cf6df9db5fa6123b418ca29455d467e4455c0ebd · tmk/tmk_keyboard · GitHub