![通过即时反馈重新训练手指(为没有 Esc 键的未来)](https://linux22.com/image/1512222/%E9%80%9A%E8%BF%87%E5%8D%B3%E6%97%B6%E5%8F%8D%E9%A6%88%E9%87%8D%E6%96%B0%E8%AE%AD%E7%BB%83%E6%89%8B%E6%8C%87%EF%BC%88%E4%B8%BA%E6%B2%A1%E6%9C%89%20Esc%20%E9%94%AE%E7%9A%84%E6%9C%AA%E6%9D%A5%EF%BC%89.png)
为了未来做好准备并保护我的手腕,我重新映射了一些我常用的键(例如,为了退出,我现在按下/释放大写锁定键;为了控制,我用另一个键按住大写锁定键,为了大写锁定,我按下两个 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 键之类的事情执行相同的操作。