O Karabiner-Elements é o canivete suíço da personalização de teclado no Mac: ele remapeia teclas, cria camadas e executa regras que você escreve em JSON. Uma dessas regras pode selecionar um layout de teclado (o que o macOS também chama de fonte de entrada) quando uma tecla vem de um teclado específico. O Keyameleon faz só essa tarefa, sem regras. Qual é melhor depende de você já usar o Karabiner-Elements para outra coisa.

Resumo rápido

KeyameleonKarabiner-Elements
O que éUm alternador de layout de teclado por tecladoUm personalizador de teclado de uso geral
Layout de teclado por tecladoEscolha um layout de teclado para cada teclado em uma listaEscreva uma complex modification com uma condição de dispositivo e uma ação select_input_source
Como lê o que você digitaObserva os teclados em modo somente escuta; não consegue alterar nem injetar entradasAssume o controle dos teclados que modifica e envia a entrada deles pelo próprio driver de teclado virtual
InstalaçãoUm app e a permissão de Monitoração de EntradaUm app, uma extensão de driver para aprovar e a Monitoração de Entrada
Preço e licençaGratuito, MITGratuito, domínio público (Unlicense)

Troca por teclado no Karabiner-Elements

As regras do Karabiner-Elements (complex modifications) podem ser limitadas a certos dispositivos com uma condição device_if, que compara os IDs de fabricante e de produto de um teclado, ou o teclado integrado. Uma regra também pode executar uma ação select_input_source, que escolhe um layout de teclado por idioma ou por ID. Combine as duas e uma tecla pressionada em um teclado pode selecionar o layout desse teclado.

Funciona, mas é você quem escreve e mantém essa regra, uma vez por teclado, e testa se ela não engole nem altera as teclas que correspondem a ela. A própria documentação do Karabiner-Elements também avisa que selecionar layouts com modo de entrada (chinês, japonês, coreano, vietnamita) pode falhar por causa de um problema do macOS, e sugere enviar o atalho de troca de layout no lugar.

Keyameleon: a mesma tarefa, sem regras

O Keyameleon lista todos os teclados que encontra. Você escolhe um layout de teclado para cada um, incluindo métodos de entrada como Japonês – Kana ou Pinyin, e ele troca quando você começa a digitar naquele teclado. Ele nunca instala um driver e nunca fica entre o seu teclado e os seus apps: observa os teclados pelo framework CoreHID da Apple em modo somente escuta e troca os layouts pelo sistema de entrada de texto do macOS.

Ele também avisa quando algo está errado. O menu na barra de menus mostra um aviso quando a Monitoração de Entrada está desativada, quando a troca está pausada ou quando um layout de teclado definido foi removido do macOS.

Usando os dois

Muita gente usa o Karabiner-Elements para remapear teclas e quer, além disso, um layout por teclado. Lembre que o Karabiner-Elements reenvia a entrada dos teclados que modifica a partir do teclado virtual dele, então outros apps podem deixar de ver de qual teclado físico veio uma tecla. Se o Keyameleon não trocar o layout de um teclado enquanto o Karabiner-Elements estiver rodando, desative Modify events para esse teclado nos ajustes Devices do Karabiner-Elements.

Qual você deve usar?

  • Você já mantém regras no Karabiner-Elements e se sente à vontade com JSON: adicione uma regra de dispositivo lá.
  • Você só quer que cada teclado digite no próprio layout, sem driver e sem regras para manter: Keyameleon.

Para ver a lista completa de opções, incluindo as nativas do sistema, leia como mudar o layout do teclado automaticamente no Mac.