A Nota técnica da Apple TN2450 descreve como remapear as chaves. A execução do comando a seguir remapeará Alt Direito para Controle Certo.
hidutil property --set '{"UserKeyMapping":
[{"HIDKeyboardModifierMappingSrc":0x7000000e6,
"HIDKeyboardModifierMappingDst":0x7000000e4}]
}'
Observe que o comando acima não está alternando o Alt direito e o controle direito. Ambos serão o Controle Certo. Se você possui um MacBook, não notará isso até conectar um teclado externo. Se você deseja alternar Alt Alt e Right Control, é necessário adicionar um segundo comando de alternância, como o seguinte.
hidutil property --set '{"UserKeyMapping":
[{"HIDKeyboardModifierMappingSrc":0x7000000e4,
"HIDKeyboardModifierMappingDst":0x7000000e6},
{"HIDKeyboardModifierMappingSrc":0x7000000e6,
"HIDKeyboardModifierMappingDst":0x7000000e4}]
}'
A tabela na parte inferior da Nota técnica possui uma lista de valores hexadecimais para cada chave. Para generalizar a resposta acima para alternar qualquer tecla, você deve or
usar o valor hexadecimal dessa lista 0x700000000
. O código Python a seguir demonstra uma maneira de fazer isso.
In [1]: def convert(val):
...: int_val = int(val, 16)
...: int_ref = 0x700000000
...:
...: return hex(int_ref | int_val)
...:
In [2]: r_alt = '0xE6'
In [3]: print(convert(r_alt))
0x7000000e6
Src
eDst
.\
no teclado éShift+Option+7
que eu gostaria de substituir por algo mais simples, como oOption+.
que eu quase não uso. Como faço isso? Obrigado pela ajuda.Uma abordagem mais geral e fácil de usar é usar o Karabiner-Elements , que é uma versão do Karabiner que funciona no Sierra.
fonte
Este é um adendo à resposta de Steven C. Howell.
Eu tenho um novo MacBook Pro com um teclado escandinavo. Este novo modelo não tem mais uma tecla Esc, o que é uma desvantagem significativa para mim.
Descobri que o seguinte traduzirá a tecla § (canto superior esquerdo, esquerdo de 1 e acima da tecla tab) - que eu acho que nunca usei para nada antes de hoje - para produzir Esc.
Na documentação da Apple (vinculada à resposta de Steven), isso é rotulado como "Teclado fora dos EUA \ e |" (0x64).
Várias das teclas "fora dos EUA" são difíceis de descobrir porque geralmente se referem a teclas com um rótulo diferente no teclado que você está usando. (I também descoberto que "acento e til Grave" refere-se a chave entre desvio para a esquerda e z, que no meu teclado produz
<
. I não foi capaz de estabelecer que corresponde chave para "não-US#
e~
" e não experimentar mais uma vez I encontrado minha chave.) Se você quiser experimentar, tente executar o script no terminal até encontrar a chave que precisa:Isso percorre os códigos de chave e muda um de cada vez, na esperança de que você possa encontrar, por tentativa e erro, uma chave que não é particularmente útil para você. Tente digitar algo quando solicitado - se você receber um em
g
vez do que esperava, encontrou o código da chave certo. (Mude0x70000000a
para outra coisa seg
não for uma opção conveniente para você. Talvez você queira remapear ag
tecla?) Quando terminar de digitar, basta pressionar Enter para prosseguir para a próxima tecla.Pelo que vale, o último comando dentro do loop é como você zap todas as
UserKeyMapping
configurações:Quando você executa inicialmente
hidutil property --get UserKeyMapping
, produzmas parece que você não pode alimentar esse valor para zap a configuração (ou melhor, ele aceita, mas ignora essa entrada).
(Se você não estiver familiarizado com o Terminal, basta copiar / colar o item
for
até odone
seubash$
prompt ou similar.)De acordo com a pergunta Stack Overflow relacionada, você pode colocar o comando em um arquivo de script no diretório inicial e adicioná-lo à sua
launchd
configuração para tornar essa alteração persistente.Caso alguns leitores não se sintam à vontade para fazer isso sozinhos, aqui está um script rápido que faz isso por você. Novamente, basta copiar / colar isso no prompt do Terminal.
Obviamente, se você acabou com outra chave que
0x700000064
não a alterada no script ou no arquivo,"$HOME"/bin/userkeymapping
ela será criada se você já executou o procedimento acima.fonte
LoginHook
mas não estava funcionando para mim, e com base no stackoverflow.com/a/22872222/874188 , mudei para umalaunchd
abordagem.Se tudo o que você deseja fazer é remapear uma única chave
Exemplo: Como mapear novamente a tecla Escape no Mac
Vá para o menu Apple e escolha “Preferências do sistema” e, em seguida, vá para o painel de preferências “Teclado” e escolha a guia “Teclado”.
Clique no botão "Modifier Keys" no canto inferior direito
referência
fonte
Caso você queira restaurar os padrões:
fonte