与 CapsLox、CapsLock++ 等强大的自定义工具不同,Capsense 只做一件事:用 CapsLock 键来切换输入法。
https://github.com/alex3236/Capsense/
为什么?
Windows 的输入法一直让人头疼。通常我们用这么几种方式切换输入状态:
Win+Space: 在所有输入法中循环Ctrl+Space: 切换中英文键盘布局Shift: 将当前输入法修改为中文/英文状态
当你发现键盘现在只能键入英文,大脑往往需要反应一段时间来确认是输入法不对(按Win+Space)还是中英文状态不对(按Shift)。
尽管有不少输入法状态指示的软件,我也试了很多款,但这么多年仍然无法在一秒内完成“识别状态 - 正确完成切换”的操作。
我也试过只保留其中一种切换方式来避免这个问题,因此我尝试只留中文输入法和Shift一个快捷键,但显然,这在游戏等场景中有严重的兼容性问题。
最终我决定做一个工具解决这个多年的问题,同时同步我在 macOS 上的使用习惯。
这个功能用 AHK 实现很容易,这个工具最初也是用 AHK 做的验证,但由于我平时并不使用 AHK,并且希望更轻一点,最终就用 Rust 写了。
怎么用?
使用前,建议在输入法中关闭Shift切换状态的功能。
Capsense 是一个命令行应用。从 Release 下载并双击,Capsense 将静默启动。
在终端中,你可以使用以下参数:
-d, --daemon:在后台启动 Capsense。-s, --stop:停止正在运行的 Capsense 实例。-r, --reload:使正在运行的实例从config.toml重新加载配置。-S, --status:检查 Capsense 实例是否正在运行并显示其 PID。--startup <enable|disable>:启用或禁用开机自启。
首次运行时,Capsense 在同一目录下创建一个 config.toml 文件。可以配置以下内容:
tap_threshold_ms:CapsLock按下被视为“轻触”的最大持续时间(以毫秒为单位)。默认为300毫秒。tap_action:轻触时执行的操作。支持的操作有:shortcut:触发键盘快捷键(由tap_shortcut定义)。switch_layout:(默认)循环切换输入布局。
tap_shortcut:要触发的快捷键(默认为["LWIN", "SPACE"])。支持的按键有:LWIN(或WIN)SPACELCONTROL(或CTRL)LSHIFT(或SHIFT)LMENU(或ALT)CAPSLOCK
layouts:当tap_action设置为switch_layout时,要循环切换的输入布局 ID 列表。- 默认值:
[0x0804, 0x0409](zh-CN和en-GB)。 - 更多布局 ID,请参阅 Microsoft 文档。常见的有:
0x0404:繁体中文0x0411:日语0x0412:韩语
- 默认值:

