Por algum motivo bizarro, a Apple inclui essa tecla esquisita no teclado de seus notebooks.  Tenho no MacBook Pro que uso, mas já vi que é a mesma coisa em outro modelos como o MacBook Air.  Como eu uso boa parte do tempo em casa, onde tenho um teclado mecânico, quase nunca percebo o problema dessa tecla alienígena instalada.  Mas basta eu trabalhar só no laptop em hackathons e outros eventos pra começarem os problemas.  Principalmente quando vou mexer no shell e passar o "~" pra usar como abreviação do HOME.

Hoje, um dos raros dias que faço isso, resolvi mexer no laptop na sala pra assistir à copa do mundo e acertar algumas coisas no raspberrypi.  Além de escrever pro blog aqui.  Eis que o raio da tecla "~" faz falta.  Mas dessa vez resolvi buscar alguma solução na Internet.  E achei!

https://apple.stackexchange.com/questions/281405/easy-way-to-remap-non-modifier-keys-on-mac

Basicamente é rodar o seguinte comando:

MacOS@helio> hidutil property --set '{"UserKeyMapping":
   [{"HIDKeyboardModifierMappingSrc":0x700000035,
      "HIDKeyboardModifierMappingDst":0x700000064},
     {"HIDKeyboardModifierMappingSrc":0x700000064,
      "HIDKeyboardModifierMappingDst":0x700000035}]
}'

Isso já configura a tecla corretamente. E pra iniciar durante o boot, criar o arquivo ~/Library/LaunchAgents/com.user.loginscript.plist com o seguinte conteúdo:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>com.user.loginscript</string>
    <key>ProgramArguments</key>
    <array>
        <string>/usr/bin/hidutil</string>
        <string>property</string>
        <string>--set</string>
        <string>{"UserKeyMapping":[{"HIDKeyboardModifierMappingSrc":0x700000035, "HIDKeyboardModifierMappingDst":0x700000064}, {"HIDKeyboardModifierMappingSrc":0x700000064, "HIDKeyboardModifierMappingDst":0x700000035}]}</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
</dict>
</plist>

E chamar na inicialização assim:

MacOS@helio> launchctl load ~/Library/LaunchAgents/com.user.loginscript.plist

E pronto! Tecla funcional.  Agradeço de coração quem deu essa resposta maravilhosa no stack exchange.

UPDATE:  Sun Nov 27 19:27:29 CET 2022

Quando fui usar o laptop conectado no teclado externo, tive a triste verificação de que os comandos acima troca uma tecla pela outra, o que é altamente indesejado.  O que eu quero é mesmo sumir com a tecla do "±" que não uso.

Pra isso eu precisei modificar o comando anterior para:

MacOS@helio> hidutil property --set '{"UserKeyMapping":
   [{"HIDKeyboardModifierMappingSrc":0x700000064,
      "HIDKeyboardModifierMappingDst":0x700000035}]
}'

E o mesmo pra ~/Library/LaunchAgents/com.user.loginscript.plist:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>com.user.loginscript</string>
    <key>ProgramArguments</key>
    <array>
        <string>/usr/bin/hidutil</string>
        <string>property</string>
        <string>--set</string>
        <string>{"UserKeyMapping":[{"HIDKeyboardModifierMappingSrc":0x700000064, "HIDKeyboardModifierMappingDst":0x700000035}]}</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
</dict>
</plist>

E agora tenho a tecla "~" em ambos os teclados.  Precisei dar um "reload" no launchctl pro caso do teclado:

MacOS@helio> launchctl unload ~/Library/LaunchAgents/com.user.loginscript.plist
MacOS@helio> launchctl load ~/Library/LaunchAgents/com.user.loginscript.plist
We use cookies

We use cookies on our website. Some of them are essential for the operation of the site, while others help us to improve this site and the user experience (tracking cookies). You can decide for yourself whether you want to allow cookies or not. Please note that if you reject them, you may not be able to use all the functionalities of the site.