Usando Caps Lock como Esc no Mac OS X

449

Como faço para Caps Locktrabalhar como Escno Mac OS X?

recuo
fonte
31
Isso parece uma tarefa padrão para um programador que usa o vim; daí o meu voto para reabrir
Jeromy Anglim
4
Uma alternativa é mapear Caps Lock para Control (Preferências do sistema> Teclado> Teclas modificadoras) e executar a sequência de escape Ctrl + [para esc. Útil para o Vim.
thelostspore
2
Solução nativa que funciona no macOS Sierra: stackoverflow.com/a/41004544/1940276
Kevin Roth
1
Solução nativa que funciona no MacOS Sierra é a segunda melhor resposta aqui (a partir @rkusa)
Marián Černý
Pergunta relacionada sobre Ask Different: Como remapear o Caps lock para Escape e Control?
Joeytwiddle

Respostas:

394

Edit: Como descrito no esta resposta , versões mais recentes do MacOS agora tem suporte nativo para religar Caps Locka Escape. Portanto, não é mais necessário instalar software de terceiros para isso.


Aqui está minha tentativa de uma resposta abrangente e visual (com links) de como conseguir isso usando o Seil (anteriormente conhecido como PCKeyboardHack).

  1. Primeiro, acesse as Preferências do sistema , escolha Teclado , depois a guia Teclado (primeira guia) e clique em Teclas modificadoras :

Passo 1

Na caixa de diálogo pop-up, defina Caps Lock Key como No Action:

escolha nenhuma ação

2) Agora, clique aqui para baixar o Seil e instalá-lo:

3) Após a instalação, você terá um novo Aplicativo instalado (Mountain Lion e mais recente) e, se você estiver em um sistema operacional mais antigo, poderá ser necessário procurar um novo painel de Preferências do Sistema:

rede aberta ou painel de preferências

4) Marque a caixa que diz "Change Caps Lock" e digite "53" como o código da tecla Escape:

defina o código do teclado

E pronto! Se não funcionar imediatamente, pode ser necessário reiniciar sua máquina.

Impressionado? Quer mais controle?

Você também pode querer conferir o KeyRemap4MacBook, que na verdade é a principal ferramenta de remapeamento do teclado pqrs.org- também é gratuito.

Se você gosta dessas ferramentas, pode fazer uma doação . Não tenho nenhuma afiliação com eles, mas uso essas ferramentas há muito tempo e devo dizer que os funcionários de lá têm feito um excelente trabalho mantendo-os, adicionando recursos e corrigindo bugs.

Aqui está uma captura de tela para mostrar algumas das (centenas de) opções pré-selecionáveis:

Figura 1.png

O PQRS também possui um ótimo utilitário chamado NoEjectDelay que você pode usar em combinação com o KeyRemap4MacBook para reprogramar a tecla Ejetar. Depois de alguns ajustes, o meu está configurado para alternar o AirPort Wifi.

Esses utilitários oferecem flexibilidade ilimitada ao remapear o teclado do Mac. Diverta-se!

cwd
fonte
3
Gostaria de esclarecer que uso o PCKeyboardHack sozinho sem o KeyRemap4Macbook há quase 2 anos para fazer exatamente isso.
rossipedia
13
Observe que, se você usar um teclado externo, repita a etapa um (ou seja, caps lock = nenhuma ação) para cada teclado. Falha ao executar esta etapa no teclado externo e, como resultado, o caps lock não respondeu a pressões muito rápidas de teclas devido à proteção acidental do caps lock. superuser.com/questions/317900/eliminate-macbook-capslock-delay
Jeromy Anglim
11
Ótimo tutorial. Mapeei Caps Lock para Esc por cerca de um ano. Foi extremamente eficiente. Um dia, no entanto, eu estava emparelhando com um desenvolvedor sênior. Eu disse a ele que usei o Vim como meu editor principal. Eu também, ele disse. Ele abriu sua máquina e começamos a trabalhar. Quando chegou a minha vez de editar o código, eu me atrapalhei e tropecei porque seu Caps Lock não estava mapeado. Eu continuava tentando ir até Esc, mas eu batia em Caps de vez em quando e então meus comandos normais mudavam. Ele me ensinou que o Ctrl-c também o levará de volta ao modo Visual. Faça um favor a si mesmo e comece a usar Ctrl-c.
campeterson
7
(Aprender mais todos os dias) CTRL-[é, na verdade, o equivalente adequado ao ESC. stackoverflow.com/questions/5030164/…
campeterson 10/09/13
5
Seria ótimo se você pudesse também editar e menção no topo que este é agora um recurso nativo no MacOS 10.12.1 por resposta de @ rkusa para que novos usuários não têm que ir download de software de terceiros
edhurtig
309

Desde o macOS 10.12.1, é possível remapear Caps Lockde Escforma nativa (Preferências do Sistema -> Teclado -> Teclas Modificadoras).

insira a descrição da imagem aqui

rkusa
fonte
11
Impressionante! Descobri isso depois de ouvir que o novo MBP não teria uma chave de escape. Parece que a Apple antecipou alguma reação.
Andy E
1
A execução do El Capitan 10.11.6 e essa configuração já estão disponíveis.
Zool
1
Graças a Deus por isso; depois que Sierra quebrou Seil / Karabiner, pensei que estava condenado.
Philip
4
Estranhamente, estou no 10.11.6 e não tenho essa opção. Só tenho permissão para remapear esc para caps, ctrl, opt ou command. Isso é verdade para os meus teclados WASD v2.
Benny Powers
1
Existe alguma maneira de fazer isso através da linha de comando? Talvez em um método semelhante a estes? github.com/herrbischoff/awesome-osx-command-line#keyboard
Jordan Eldredge
40

Não fiquei satisfeito com nenhuma das respostas aqui e procurei uma solução de linha de comando .

No macOS Sierra 10.12, a Apple introduziu uma nova maneira de os usuários remapearem as chaves.

  • Não há necessidade de mexer nas GUIs do sistema
  • Não são necessários privilégios especiais
  • Completamente personalizável
  • Não é necessário instalar nenhuma porcaria de terceiros como o PCKeyboardHack / Seil / Karabiner / KeyRemap4MacBook / DoubleCommand / NoEjectDelay

Se isso lhe parece bom, dê uma olhada hidutil.

Por exemplo, para remapear o caps-lock para escapar, consulte a tabela de chaves e verifique se o caps-lock tem o código de uso 0x39 e o escape tem o código de uso 0x29. Coloque esses códigos ou com o valor hexadecimal 0x700000000 na fonte e dest assim:

hidutil property --set '{"UserKeyMapping":[{"HIDKeyboardModifierMappingSrc":0x700000039,"HIDKeyboardModifierMappingDst":0x700000029}]}'

Você pode adicionar outros mapeamentos no mesmo comando. Pessoalmente, gosto de remapear caps-lock para backspace e remapear backspace para excluir:

hidutil property --set '{"UserKeyMapping":[{"HIDKeyboardModifierMappingSrc":0x700000039,"HIDKeyboardModifierMappingDst":0x70000002A}, {"HIDKeyboardModifierMappingSrc":0x70000002A,"HIDKeyboardModifierMappingDst":0x70000004C}]}'

Para ver o mapeamento atual:

hidutil property --get "UserKeyMapping"

Suas alterações serão perdidas na reinicialização do sistema. Se você deseja que eles persistam, coloque-os em um script e configure um gancho de login:

sudo defaults write com.apple.loginwindow LoginHook /path/to/login_script.sh
wim
fonte
3
+! esta é a maneira moderna e direita para remapear teclas no MacOS
Fanckush
2
O problema de Karabiner com a repetição de chaves fez com que eu procurasse uma solução nativa para o remapeamento de chaves. Esta postagem e outra em apple.stackexchange.com ajudaram bastante.
chb
Obrigado por isso, +1! Eu adicionei algumas notas tangenciais ao post da Apple, que esperançosamente adicionam algum valor para nós, pessoas pobres que não querem uma tecla Esc, mas não usam o Caps Lock.
Tripleee 23/01/19
Ótimo método para MacBooks que têm problemas com o teclado embutido. O meu estava causando problemas com as Configurações do teclado, então não pude remapear nenhuma tecla lá.
Igor
Não consegui fazer isso funcionar corretamente com o LoginHookmétodo - acho que alguma coisa depois que ele executa seleciona minhas configurações de teclado local para um teclado escandinavo? De qualquer forma, stackoverflow.com/a/22872222/874188 observa que LoginHookfoi preterido e defende o uso launchd.
31519 tripleee
34

É possível.

Solução 1

De um artigo no TrueAffection.net.

  • Faça o download do PCKeyboardHack e instale-o.
  • Vá para PCKeyboardHack em Preferências do sistema.
  • Ative 'Change Caps Lock' e defina o código da chave para 53.

Solução 2

Esta solução não envolve o patch do driver do teclado, mas fornece uma solução específica para o Vim.

O OS X suporta o mapeamento da tecla Caps Lock para várias teclas, mas você precisa fazer isso manualmente, editando arquivos .plist. O processo é descrito neste artigo . Como adendo a essa dica, sugiro que você defina primeiro Caps-Lock como None nas Preferências do sistema, e somente precisará alterar um valor no arquivo .plist. Além disso, é claro que você pode usar o Editor de lista de propriedades em vez de seguir as etapas de conversão de XML.

O truque é mapear a tecla Caps Lock para a tecla Help (código 6), que não está na maioria dos teclados. Mas, se for, será tratada como a tecla de inserção, que você provavelmente não usa, pois pergunta sobre remapear o Caps Lock para evitar esticar as mãos;)

Você pode mapear a Ajuda e a Insertchave Escno vim.

map  <Help> <Esc>
map! <Help> <Esc>
map  <Insert> <Esc>
map! <Insert> <Esc>

Isso funcionará para o gvim (Vim.app). Não o fiz funcionar com o vim no Terminal e não testei com o MacVim.

Portanto, é uma solução complicada e incompleta ou a instalação de um hacker de terceiros. Sua escolha;)

Edit: Só solução notado 3, se você estiver usando MacVim você pode usar Ctrl, Optione Commandcomo Esc. Com as Preferências do sistema, é trivial mapear o Caps Lock para uma dessas teclas.

eelco
fonte
1
Re solução 3: Como você usa Ctrl, Option ou Command como Esc no MacVim? Não consigo encontrar essa configuração nas preferências.
Clizzin
Você o mapeia nas preferências do sistema => teclado.
maletor
9
Onde está a dica a que você alude?
Matthew Schinckel
2
Maletor - não há nenhum onde lá para dizer MacVim para controlar o uso como fuga
Scott Schulthess
1
@MatthewSchinckel aqui está um desses links: hints.macworld.com/article.php?story=20060825072451882
Ben Challenor
30

A única coisa que sei fazer é mapear Caps Lock para Control, Option ou Command. Isso pode ser feito através do painel Teclado e Mouse, em Preferências do sistema. Clique em "Modifier Keys" no canto inferior esquerdo e você poderá remapear Caps Lock, Control, Option e Command, para qualquer um deles.

@ Craig: Isso sugere que o Caps Lock pode ser usado como uma chave normal - ou seja, sem alternar -. No meu MacBook, desde que eu mapeei novamente o Caps Lock para Control, a luz do Caps Lock nunca acende. Ele simplesmente age como a tecla Control.

insira a descrição da imagem aqui

EfForEffort
fonte
2
imagens bonitas aqui: stackoverflow.com/questions/162896/…
Kyle Cronin
1
Infelizmente não com teclados da Logitech, por isso não escapar tecla CapsLock, não vim == me teclado retornando
Enric Ribas
14

O Seil ainda não está disponível no macOS Sierra (10.12 beta). Como tal, tenho usado o Keyboard Maestro com estas configurações:insira a descrição da imagem aqui

Crédito para este comentário do github: https://github.com/tekezo/Seil/issues/68#issuecomment-230131664

Michael Glass
fonte
2
Estou usando github.com/tekezo/Karabiner-Elements (que funciona no Sierra). Trabalhando muito bem até agora, embora eu desejo que ele fez "Control_L para Control_L (+ quando você digita Control_L somente, enviar Escape)"
atomkirk
1
@atomkirk Você se importaria de compartilhar a configuração JSON do Karabiner usada?
LandonSchropp
1
{"profiles": [{"name": "Profile default", "selected": true, "simple_modifications": {"caps_lock": "escape"}}]}
atomkirk
Karabiner fez o truque para mim com o JSON da atomkirk. Apesar da captura de tela acima, a interface do usuário do Keyboard Maestro é uma bagunça e eu não consegui configurá-la.
Paul
10

Tendo tentado várias dessas soluções, tenho algumas anotações:

DoubleCommand vai não permitem que você esc swap e caps-lock.

O PCKeyboardHack será permitem mapear capslock para escapar,mas não tem a capacidade de mapear escape para capslock. As versões recentes permitem realizar uma troca completa editando as duas chaves.

Isso pode ou não ser suficiente para as suas necessidades (eu sei que é para as minhas).

Zxaos
fonte
1
O PCKeyboardHack não permite mapear a fuga para o capslock, mas o aplicativo complementar KeyRemap4MacBook sim. Permite mapear “Escape to CapsLock” e “Shift + Escape to CapsLock”.
Rory O'Kane
9

Caso você não queira instalar um aplicativo de terceiros e realmente se preocupe apenas com o vim no iTerm, o seguinte funciona:

Remapeie o CapsLock para obter ajuda, conforme descrito aqui .

Versão curta: use plutil ou similar para editar ~/Library/Preferences/ByHost/.GlobalPreferences*.plist, deve ser semelhante a este:

<key>HIDKeyboardModifierMappingDst</key>
<integer>6</integer>
<key>HIDKeyboardModifierMappingSrc</key>
<integer>0</integer>

Reiniciar! Um simples logoff e logon não funcionou para mim.

No iTerm, adicione um novo mapeamento de chave para a Ajuda: envie o código hexadecimal 0x1b, que corresponde a Escape.

Eu sei que isso não é exatamente o que foi solicitado, mas presumo que a intenção de muitas pessoas que procuram uma solução como essa seja realmente essa variante mais especializada.

user2581875
fonte
4

Para realmente trocar a chave de escape pela tecla caps lock (não apenas mapear uma para a outra) usando o PCKeyboardHack e o KeyRemap4MacBook, siga as instruções neste tópico , mapeando a tecla caps lock para um código-chave não usado pelo teclado, mas contabilizado pelo KeyRemap4MacBook (por exemplo, 110). Em seguida, no PCKeyboardHack, selecione a opção apropriada que mapeia esse código de chave para escapar (no caso de 110, é "Chave do aplicativo para escapar"). Veja como devem ser as suas preferências do KeyRemap4MacBook (desde que você tenha selecionado a caixa de seleção "Mostrar somente ativado").

insira a descrição da imagem aqui

Eu originalmente tentou postar esta informação como uma edição para excelente resposta de cwd , mas foi rejeitada. Encorajo qualquer pessoa que queira seguir o caminho que eu descrevo a primeiro ler sua resposta.

chb
fonte
2

Seil ainda não funciona no macOS Sierra, por isso estou usando o Karabiner Elements , faça o download em https://pqrs.org/latest/karabiner-elements-latest.dmg .

Use a GUI ou coloque o seguinte em ~/.karabiner.d/configuration/karabiner.json:

{
  "profiles" : [
    {
      "name" : "Default profile",
      "selected" : true,
      "simple_modifications" : {
        "caps_lock" : "escape"
      }
    }
  ]
}
mb21
fonte
Note-se que elementos mosquetão quebra na barra de toque e chave fn
mperrin
1

Você também pode usar o DoubleCommand para remapear isso e outras chaves.

IIRC, mapeará Caps Lock para Esc.

Matthew Schinckel
fonte
1
Na verdade, eu tive que escrever um patch para fazer isso. Foi por uma versão mais antiga, mas ainda estou usando agora: sourceforge.net/tracker/?group_id=65339&atid=510607
Matthew Schinckel
1

Abra as preferências do teclado e clique nas teclas modificadoras ... você pode alterar a tecla caps lock para controlar, opção, escape ou comando.

insira a descrição da imagem aqui

Nayan Jain
fonte
9
Nenhum deles é "Esc", sobre o qual o pôster perguntou. Provavelmente para uso do Vim.
Rafi Jacoby
1
@RafiJacoby Qual é a diferença entre Esce Escape? (pergunta séria) #
byxor
0

Karabiner-Elements Um personalizador de teclado poderoso e estável para o macOS. (freeware)

https://pqrs.org/osx/karabiner/index.html

Trabalhou comigo para que o Mojave alterasse caps-lock para backspace

Quang Van
fonte