引言
如上图,HHKB 英文布局下的默认键盘方案相比 108 键键位的键盘缺少数字小键盘和前后左右移动键。本文通过改键,可以使用组合键等方式实现数字小键盘和控制键的功能,并且还额外实现了使用键盘操作鼠标的功能。
要实现文中描述的改键方案需要替换 HHKB 键盘的主控,本文使用 vial-qmk 固件实现改键,其他固件或者其他使用 HHKB 英文布局的客制化键盘也可以按照文中的描述自行进行类似的改键。
文中的改键方案仅对原版按键的键位布局进行了少量修改,数字键盘、鼠标操作键等都是额外增加的按键功能。而且新增的按键尽量使双手不会大幅离开标准键位指法(即双手食指放在 F、J 上),前后左右移动键和 vim 的移动键相同。
键盘布局
Layer 0
- 图示
默认层,从本层可以进入其他功能层。
- 按键说明
图中按键 | 说明 |
---|---|
MO(3) | 临时开启 Layer 3 层。按住该键的同时,按下 Layer 3 层的按键可执行相应的功能。 |
LT 2 | 临时开启 Layer 2 层。按住该键的同时,按下 Layer 2 层的按键可执行相应的功能。单击该键输出数字 3 ;按住 Shift 键的同时,按下该键输出字符 # 。 |
LT 4 | 临时开启 Layer 4 层。按住该键的同时,按下 Layer 4 层的按键可执行相应的功能。单击该键输出制表符 Tab 。 |
VI | 切换 vim 模式的开关状态。vim 模式开启后,可以实现与 vim 类似的增、删、移动等操作,详情见 qmk-vim。 |
Layer 1
- 图示
HHKB 原版按键的键位布局。
- 按键说明
图中按键 | 说明 |
---|---|
MO(3) | 临时开启 Layer 3 层。按住该键的同时,按下 Layer 3 层的按键可执行相应的功能。 |
Layer 2
- 图示
数字键盘按键的功能层,也可以进行鼠标操作。
- 按键说明
图中按键 | 说明 |
---|---|
TG(2) | 切换 Layer 2 层的开关状态。开启 Layer 2 层后,按下 Layer 2 层的按键可执行相应的功能。 |
Mouse 1 | 鼠标左键。 |
Mouse 2 | 鼠标右键。 |
Mouse 3 | 鼠标中键。 |
Mouse 4 | 鼠标侧键后退键。 |
Mouse 5 | 鼠标侧键前进键。 |
Mouse Accel 0 | 鼠标移动速度慢。 |
Mouse Accel 1 | 鼠标移动速度中。 |
Mouse Accel 2 | 鼠标移动速度快。 |
Layer 3
- 图示
Fn 功能按键层。
- 按键说明
图中按键 | 说明 |
---|---|
DF(0) | 将 Layer 0 层设置为默认层。 |
DF(1) | 将 Layer 1 层设置为默认层。 |
TG(2) | 切换 Layer 2 层的开关状态。开启 Layer 2 层后,按下 Layer 2 层的按键可执行相应的功能。 |
TG(5) | 切换 Layer 5 层的开关状态。开启 Layer 5 层后,按下 Layer 5 层的按键可执行相应的功能。 |
VI_M/W | 切换 vim 模式的适配方式,使得 vim 模式适配 macOS 系统或者 Windows 系统。详情见 qmk-vim。 |
BT/USB | 蓝牙与USB切换(对应快捷键:LShift + RShift + U)。 |
BAT% | 用文字输出电量(快捷键:LShift + RShift + V)。 |
I_USB | 切换内置USB电源开关。 |
LOCK | 锁定模式。按下后立即关闭蓝牙并且键盘节能,只有同时按下 F 和 J 或者重插 USB 才能唤醒。适合不关开关直接放包里。 |
RESET | 单按清除键盘按键状态,和 LCtrl 一起按时则进入刷机模式。 |
Layer 4
- 图示
浏览器、文本编辑器进行快速移动(如前后左右、翻页、滚动到文末、滚动到开头等)的按键层。
- 按键说明
图中按键 | 说明 |
---|---|
Mouse 4 | 鼠标侧键后退键。 |
Mouse 5 | 鼠标侧键前进键。 |
Layer 5
- 图示
鼠标操作的按键层。
- 按键说明
图中按键 | 说明 |
---|---|
TG(5) | 切换 Layer 5 层的开关状态。开启 Layer 5 层后,按下 Layer 5 层的按键可执行相应的功能。 |
Mouse 1 | 鼠标左键。 |
Mouse 2 | 鼠标右键。 |
Mouse 3 | 鼠标中键。 |
Mouse 4 | 鼠标侧键后退键。 |
Mouse 5 | 鼠标侧键前进键。 |
Mouse Accel 0 | 鼠标移动速度慢。 |
Mouse Accel 1 | 鼠标移动速度中。 |
Mouse Accel 2 | 鼠标移动速度快。 |
功能实现
本章节所述的按键是指 HHKB 键盘上刻印的按键字符。
与原版布局相比不同的按键
功能 | 按键 |
---|---|
输出字符 ~ | Shift + Esc |
输出字符 ` | Fn + Esc |
持续输出制表符 Tab | 双击并保持长按 Tab 键 |
持续输出数字 3 | 双击并保持长按数字 3 键 |
与原版布局相比增加的按键
数字小键盘功能
- 临时开启的方式
长按数字 3 键,同时按下 Layer 2 层的按键可执行相应的功能。
- 持续开启的方式
按下 Fn + 右 Shift 键后会开启 Layer 2 层,然后按下 Layer 2 层的按键可执行相应的功能。按 Esc 键关闭 Layer 2 层。
按键控制移动的功能
长按 Tab 键,同时按下 Layer 4 层的按键可执行相应的功能(可在文本编辑器中前后左右快速移动)。
按键控制鼠标的功能
- 左手移动、右手点击
按下 Fn + 右 Shift 键后会开启 Layer 2 层,然后按下 Layer 2 层的按键可执行相应的功能。按 Esc 键关闭 Layer 2 层。
- 左手点击、右手移动
按下 Fn + Space 空格键后会开启 Layer 5 层,然后按下 Layer 5 层的按键可执行相应的功能。按 Esc 键关闭 Layer 5 层。
HHKB 原版按键的功能
按下 Fn + 左 Command 键后会将 Layer 1 层设置为默认层,此时为 HHKB 原版按键功能。
按下 Fn + 左 Alt 键后会将 Layer 0 层设置为默认层,此时为改键后的按键功能。
vim 模式
按下 `
键后会开启 vim 模式(此时橘黄色指示灯会持续闪烁),可以实现与 vim 类似的增、删、移动等操作,详情见 qmk-vim。再次按下 `
键后会关闭 vim 模式。
按下 Fn + Delete 键后会切换 vim 模式的适配方式,使得 vim 模式适配 macOS 系统或者 Windows 系统(适配 Windows 系统时红色指示灯会持续闪烁)。
固件及 Vial layout
文中 HHKB 的主控使用了 YANG 设计的 HHKB BLE Mod,固件采用了 YANG 提供的 源码 加上 qmk-vim 模块自行编译而成。
不想自行编译固件的话,这里提供我自己编译的固件 HHKB_BLE.BIN。下载固件后,按照 此文 描述进行刷机。本地下载安装软件 Vial 后,可以导入 Vial layout 配置文件 来更新成本文描述的键位方案。
YANG 也在 此文 中提供了适用于 HHKB BLE Mod 的 Vial 固件,但是该固件最多能添加 4 层 Layer,需要删减本文中提供的按键功能,而且该固件没有编译进 qmk-vim 模块,不能实现与 vim 类似的增、删、移动等操作。
参考资料
HHKB BLE Mod.(2024-03-25)[2024-10-15].https://ydkb.io/help/#/keyboards/hhkb-ble?id=hhkb-ble-mod
VIA / Vial 固件更新.(2024-10-01)[2024-10-15].https://ydkb.io/help/#/other-firmware/vial
yangdigi / vial-qmk.(2024-10-01)[2024-10-15].https://github.com/yangdigi/vial-qmk
andrewjrae / qmk-vim.(2024-01-08)[2024-10-15].https://github.com/andrewjrae/qmk-vim
Vial user manual.(2024-10-13)[2024-10-15].https://get.vial.today/manual/