Remapear chaves via linha de comando no Mac OS X

5

Estou tentando escrever um script que replicará minha configuração do OS X. Em particular, quero remapear as teclas de seta para CMD + H , J , K , L .

A técnica parece ser similar a essa solução Linux , exceto que o arquivo-chave a ser modificado é encontrado em /usr/X11/share/X11/xkb/symbols/us . No entanto, ele não está funcionando como esperado e parece estar mapeando a chave de opção.

Como posso remapear chaves através da linha de comando no OS X?

    
por Maros Hluska 01.02.2013 / 20:35

2 respostas

3

Atalhos de teclado específicos do aplicativo, como os das Preferências do sistema, são armazenados nos arquivos de preferência do aplicativo correspondente em /Users/username/Library/Preferences/ , na chave NSUserKeyEquivalents de nível superior.

Esses arquivos podem ser lidos e escritos usando os programas /usr/libexec/PlistBuddy e defaults na linha de comando.

$ defaults read com.apple.Automator NSUserKeyEquivalents
{
    "Hide Library" = "@$l";
    "Show Library" = "@$l";
}
$ defaults write com.apple.Terminal NSUserKeyEquivalents -dict-add "About Terminal" '^@$a'

Símbolos e seus significados:

  • @ é o comando
  • $ é Shift
  • ^ é Controle
  • ~ é Opção

Além disso, você pode simplesmente copiar esses arquivos para outras máquinas para levar suas preferências de usuário com você.

    
por 01.02.2013 / 20:57
0

Usando o KeyRemap4MacBook , você pode salvá-lo como private.xml :

<?xml version="1.0"?>
<root>
<item>
<name>test</name>
<identifier>private.test</identifier>
<autogen>--KeyToKey-- KeyCode::H, VK_COMMAND | ModifierFlag::NONE, KeyCode::CURSOR_LEFT</autogen>
<autogen>--KeyToKey-- KeyCode::H, VK_COMMAND | VK_SHIFT | ModifierFlag::NONE, KeyCode::CURSOR_LEFT, ModifierFlag::SHIFT_L</autogen>
<autogen>--KeyToKey-- KeyCode::J, VK_COMMAND | ModifierFlag::NONE, KeyCode::CURSOR_DOWN</autogen>
<autogen>--KeyToKey-- KeyCode::J, VK_COMMAND | VK_SHIFT | ModifierFlag::NONE, KeyCode::CURSOR_DOWN, ModifierFlag::SHIFT_L</autogen>
<autogen>--KeyToKey-- KeyCode::K, VK_COMMAND | ModifierFlag::NONE, KeyCode::CURSOR_UP</autogen>
<autogen>--KeyToKey-- KeyCode::K, VK_COMMAND | VK_SHIFT | ModifierFlag::NONE, KeyCode::CURSOR_UP, ModifierFlag::SHIFT_L</autogen>
<autogen>--KeyToKey-- KeyCode::L, VK_COMMAND | ModifierFlag::NONE, KeyCode::CURSOR_RIGHT</autogen>
<autogen>--KeyToKey-- KeyCode::L, VK_COMMAND | VK_SHIFT | ModifierFlag::NONE, KeyCode::CURSOR_RIGHT, ModifierFlag::SHIFT_L</autogen>
</item>
</root>

Sair | ModifierFlag::NONE também mudaria, por exemplo, ⌥⌘H para ←.

Veja a fonte das constantes do código-chave e configurações predefinidas .

Se você quiser automatizar totalmente a configuração, você pode habilitar a configuração com /Library/org.pqrs/KeyRemap4MacBook/app/KeyRemap4MacBook_cli.app/Contents/MacOS/KeyRemap4MacBook_cli enable private.test .

    
por 02.02.2013 / 09:34