为了未来做好准备并保护我的手腕,我重新映射了一些我常用的键(例如,为了退出,我现在按下/释放大写锁定键;为了控制,我用另一个键按住大写锁定键,为了大写锁定,我按下两个 Shift 键)。
但我希望在我老练的手指敲入禁键时能收到警报和即时反馈。因此,如果我输入ESC
或CONTROL_L
,我希望什么都不发生,屏幕闪烁或发出哔哔声或两者兼而有之。闪烁的红色当然会令人愉快。
更进一步,当我使用“错误”的SHIFT
大写字母和特殊字符时,我也不介意尝试发出警报,看看这是否可以帮助我改掉一些旧习惯。
这可能吗?
答案1
以下是我得到我想要的结果的方法。使用tput bel
和其他 shell 命令似乎不起作用,但使用osascript -e "beep 1"
起作用了。我添加了第二个哔声以使效果更明显。
- 安装 Karabiner 和 Seil
- 在 OSX 键盘偏好设置中将 Caps Lock 键设置为“无操作”(修饰键)
- 设置 Caps Lock 以使用 Seil 发送代码 110
- 在 Karabiner 中添加以下私有 XML 并启用每个结果项。
登山扣私有 XML 文件:
<?xml version="1.0"?>
<root>
<vkopenurldef>
<name>KeyCode::VK_OPEN_URL_SHELL_beep</name>
<url type="shell">
<![CDATA[ /usr/bin/osascript -e "beep 2" ]]>
</url>
</vkopenurldef>
<item>
<name>Change escape key to beep</name>
<identifier>private.escape_to_beep</identifier>
<autogen>__KeyToKey__ KeyCode::ESCAPE, KeyCode::VK_OPEN_URL_SHELL_beep</autogen>
</item>
<item>
<name>Left control key to beep</name>
<identifier>private.left_control_key_to_beep</identifier>
<autogen>__KeyToKey__ KeyCode::CONTROL_L, KeyCode::VK_OPEN_URL_SHELL_beep</autogen>
</item>
<item>
<name>Application key to Control_R key</name>
<appendix>(+ When you type Control_R only, send Escape)</appendix>
<identifier>private.application2controlR_escape</identifier>
<autogen>__KeyOverlaidModifier__ KeyCode::PC_APPLICATION, KeyCode::CONTROL_R, KeyCode::ESCAPE</autogen>
</item>
</root>
我可能会通过编程来扩展此功能,以便对诸如使用错误的 Shift 键之类的事情执行相同的操作。