O seguinte é como consegui o que queria. Usar tput bel
e outros comandos do shell não funcionou, mas usando osascript -e "beep 1"
. Eu adicionei um segundo bipe para tornar o efeito mais óbvio.
- Instalar o Karabiner e o Seil
- Defina a tecla Caps Lock como "Sem ação" nas preferências de teclado do OSX (teclas modificadoras)
- Defina Caps Lock para enviar o código 110 usando o Seil
- Adicione o seguinte XML privado no Karabiner e ative cada item resultante.
Arquivo XML privado do mosquetão:
<?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>
Eu poderia expandir programaticamente isso para fazer o mesmo para coisas como usar a tecla shift errada.