Como mudar para Colemak no Linux
Configure Colemak na consola, no X11 e no Wayland, entenda por que o SSH nao precisa de layout e veja o impacto no Vim, hjkl e teclas Ctrl.
Onde fica o layout Colemak no Linux
O Colemak no Linux não é uma definição única para todo o sistema. O layout é aplicado pelo componente que está a ler o teclado naquele momento. Por isso, fica num de três locais: na consola de texto, no servidor X11 ou no compositor Wayland. Se o definir no local errado, nada parece acontecer.
Existe uma quarta opção que ignora completamente o sistema operativo. Um teclado que remapeia as teclas no próprio firmware, como um teclado com QMK ou VIA, envia os códigos correspondentes às letras pretendidas. Assim, qualquer máquina onde o ligar escreve em Colemak sem qualquer configuração, incluindo uma consola de servidor e uma máquina que não lhe pertence. A desvantagem é que o teclado do portátil continua a escrever em QWERTY.
O restante deste guia aborda as três camadas de software, explica por que razão um servidor remoto quase nunca precisa de nenhuma delas e descreve o efeito da mudança no Vim e nos atalhos do terminal.
Verifique o que o sistema já tem
Execute estes comandos antes de alterar qualquer coisa. Eles mostram a configuração atual e a lista de variantes do Colemak disponibilizadas pela base de dados de teclados do X.
localectl status
setxkbmap -query
localectl list-x11-keymap-variants us | grep colemakO último comando deve mostrar colemak e colemak_dh. O Colemak faz parte do xkeyboard-config há anos. O Colemak-DH foi incluído na versão 2.34, portanto apenas uma versão antiga não o terá. Em agosto de 2026, o Ubuntu 24.04 e o Debian 13 disponibilizam ambos uma versão mais recente.
Se setxkbmap -query indicar que não consegue abrir um display, está numa sessão Wayland e o compositor controla o layout. Esse caso tem uma secção própria abaixo.
Colemak ou Colemak-DH
O Colemak move dezassete teclas das posições QWERTY e mantém dez no mesmo lugar, incluindo Z, X, C e V. Assim, os atalhos para desfazer, cortar, copiar e colar continuam onde a mão esquerda espera encontrá-los. Essa compatibilidade explica toda a configuração do layout.
O Colemak-DH é uma modificação do Colemak. Reposiciona D, B e G e troca H por M, porque o Colemak normal faz com que o mesmo dedo indicador alcance D e H na coluna central do teclado. A modificação oficial mantém cada letra no mesmo dedo usado no Colemak. Por isso, quem já escreve com Colemak enfrenta uma pequena alteração ao passar para DH, e não um novo layout. A variante XKB é colemak_dh, com colemak_dh_iso para teclados que têm a tecla adicional junto à tecla Shift esquerda.
Para quem vem do QWERTY, qualquer uma das opções exige um único processo de reaprendizagem. Escolha com base no conforto e mantenha essa decisão. Mudar de layout uma segunda vez custa aproximadamente o mesmo que a primeira mudança, porque o que está a reconstruir é a memória motora associada às posições das teclas. Se a dúvida ainda for abandonar ou não o QWERTY, resolva-a consultando como o Colemak, o Dvorak e o QWERTY se comparam antes de passar um mês a reconstruir essa memória motora.
Definir Colemak no X11 com setxkbmap e localectl
setxkbmap us -variant colemak
setxkbmap -querysetxkbmap -query agora deve indicar variant: colemak, e escrever em qualquer janela deve produzir letras Colemak. A alteração dura enquanto a sessão X estiver ativa e não grava nada no disco, o que faz dela a forma segura de testar o layout durante uma hora.
Para mantê-lo após os reboots:
sudo localectl set-x11-keymap us pc105 colemak
localectl statusA ordem dos argumentos é layout, depois model e depois variant. localectl status agora deve mostrar X11 Layout: us e X11 Variant: colemak. O localectl também converte a escolha para o keymap de consola mais próximo, exceto se adicionar --no-convert. Assim, em muitos sistemas, este comando único também configura o tty. No Debian e no Ubuntu, verifique /etc/default/keyboard depois, porque é esse ficheiro que o console-setup lê durante o arranque.
Definir Colemak no Wayland
Uma sessão Wayland não tem um servidor X para configurar. O compositor carrega o mapa de teclado e fornece essa configuração a cada aplicação. Por isso, o layout é uma definição do compositor. É também por isso que setxkbmap parece não funcionar nesse ambiente: o comando pode não encontrar um display ou alterar apenas o XWayland, enquanto as aplicações Wayland nativas ignoram essa alteração.
No GNOME, a definição é uma chave do gsettings:
gsettings set org.gnome.desktop.input-sources sources "[('xkb', 'us+colemak')]"A alteração aplica-se imediatamente, sem terminar a sessão. A string us+colemak contém o layout e a variante, separados por um sinal de mais.
No sway, coloque a definição em ~/.config/sway/config:
input type:keyboard {
xkb_layout us
xkb_variant colemak_dh
}Recarregue com swaymsg reload. swaymsg -t get_inputs lista todos os dispositivos de entrada e o layout que cada um utiliza. Execute esse comando quando apenas um teclado apresentar problemas.
No KDE Plasma, abra System Settings, depois Keyboard e Layouts, e adicione English (US) com a variante Colemak.
Definir Colemak no console de texto
O console é o tty de texto simples que pode ser acedido com Ctrl+Alt+F3 e tem o seu próprio mapa de teclado. Nenhuma configuração feita no X11 ou num compositor chega ao console, o que é importante se trabalhar num terminal numa consola virtual sem ambiente gráfico.
No Debian e no Ubuntu, edite /etc/default/keyboard:
XKBMODEL="pc105"
XKBLAYOUT="us"
XKBVARIANT="colemak"
XKBOPTIONS=""Depois aplique a configuração:
sudo setupconEscreva no console para confirmar. O console-setup converte essa descrição XKB num mapa de teclado do console com ckbcomp, por isso o console e o X partilham uma descrição nestes sistemas.
Nas distribuições que usam diretamente mapas de teclado do kbd, consulte primeiro o nome:
localectl list-keymaps | grep -i -e colemak -e latin9
sudo localectl set-keymap en-latin9O pacote kbd inclui o mapa de teclado Colemak do console como i386/colemak/en-latin9, por isso o nome que normalmente deve passar é en-latin9, e não colemak. Passe um nome que apareça na lista, porque um nome inexistente é rejeitado.
sudo loadkeys en-latin9 altera imediatamente o console atual e sudo loadkeys us repõe a configuração anterior. Trate loadkeys como um teste, não como uma configuração permanente: a alteração dura até ao reboot e, no Debian e no Ubuntu, a execução de setupcon durante o arranque repõe o valor definido por /etc/default/keyboard.
Um VPS headless precisa de um layout Colemak?
Quase nunca, e vale a pena entender o motivo. O SSH transporta caracteres, não posições das teclas. O emulador de terminal recebe o pressionamento da tecla, o layout local converte-o num caractere e apenas esse caractere é enviado pela ligação. O servidor recebe n sem qualquer forma de saber qual tecla física o produziu. Por isso, o layout definido no seu laptop acompanha-o em todas as sessões SSH, no tmux e em todos os editores executados remotamente. A máquina remota não precisa de qualquer configuração de teclado.
Tenha isto em mente antes de começar a editar ficheiros de teclado em servidores de produção. Se administra uma frota de servidores Linux, o layout pertence à máquina que está à sua frente, não à frota, e não deve fazer parte do seu aprovisionamento. Os primeiros dez minutos num VPS novo permitem realizar tarefas mais úteis do que esta.
Vale a pena planear duas exceções. A primeira é uma consola ligada à própria máquina. A consola do browser no painel de um fornecedor normalmente apresenta-se à máquina virtual como um teclado. Assim, os pressionamentos das teclas chegam como scancodes, e o keymap da consola do servidor decide qual é o caractere apresentado. Esse é o único local onde um layout definido no servidor produz efeito. Também é o seu caminho de recuperação quando o SSH deixa de funcionar. Por isso, um keymap da consola configurado apenas parcialmente representa um risco real.
Uma consola série funciona de forma diferente, porque transporta caracteres e aplica o layout local. A segunda exceção é uma máquina partilhada. O keymap da consola é aplicado a todo o sistema. Definir Colemak numa máquina onde outras pessoas iniciam sessão também o altera para elas, e não irão perceber o motivo.
O que acontece com as teclas hjkl do Vim
No Colemak, h não move o cursor. As outras três movem. j fica sob o Y do QWERTY, k fica sob o N do QWERTY e l fica sob o U do QWERTY, por isso as teclas de cursor ficam distribuídas por três linhas em vez de ficarem sob quatro dedos.
Há duas opções viáveis, e ambas têm utilizadores reais.
Mantenha as predefinições e reaprenda as posições. Nada mais na sua configuração deixa de funcionar, todos os plugins continuam a funcionar e todas as dicas do Vim escritas por outras pessoas continuam a aplicar-se exatamente como estão escritas.
Ou remapeie as quatro teclas que ficam sob a sua mão direita, onde hjkl ficava. No Colemak, essas teclas produzem h, n, e e i. No Colemak-DH, as mesmas quatro teclas físicas produzem m, n, e e i, porque o DH trocou H com M.
noremap n j
noremap e k
noremap i l
noremap l i
noremap k nn passa a mover o cursor para baixo, e move para cima, i move para a direita e h já movia para a esquerda. As duas últimas linhas devolvem os comandos que foram deslocados: l inicia o modo de inserção e k repete a última pesquisa. Aplique o mesmo tratamento às letras maiúsculas, ou Shift mais uma tecla de cursor produzirá um resultado inesperado.
A opção langmap do Vim faz algo semelhante com menos linhas:
set langmap=nj,ek,il,li,knCada par representa o carácter que introduziu, seguido do carácter cuja ação o Vim deve executar. A opção aplica-se apenas ao modo normal, por isso o modo de inserção continua a introduzir texto Colemak normalmente. A documentação de ajuda do próprio Vim indica duas limitações: langmap não se aplica a combinações com Ctrl ou Alt e os mapeamentos de plugins escritos para as teclas predefinidas podem comportar-se de forma inesperada com esta opção.
Escolha uma opção e mantenha-a. Um remapeamento abandonado ao fim de um mês custa-lhe outro mês.
O que acontece com os atalhos do terminal
Um código de controlo do terminal vem do carácter, não da tecla física. Por isso, cada atalho com Ctrl muda com o layout. Ctrl+C, Ctrl+Z, Ctrl+X e Ctrl+V mantêm as posições, porque o Colemak deixa deliberadamente Z, X, C e V nos mesmos locais do QWERTY.
Quatro atalhos que utiliza todos os dias mudam de posição. Ctrl+D, que termina a entrada, fica agora onde o QWERTY tem G. Ctrl+R, a pesquisa no histórico, fica onde o QWERTY tem S. Ctrl+E, que vai para o fim da linha, fica onde o QWERTY tem K. Ctrl+U, que limpa a linha, fica onde o QWERTY tem I.
O tmux mantém o prefixo predefinido, porque B não muda no Colemak. No Colemak-DH, B passa para a linha superior e o prefixo acompanha-o. Esta é a primeira alteração que irá notar se mantiver uma sessão tmux de longa duração num VPS. Alterar o prefixo para uma tecla da sua preferência requer uma única linha e é mais fácil do que voltar a treinar o mesmo reflexo.
Os atalhos do ambiente de trabalho seguem a mesma regra. Uma associação a Super+E acompanha o layout, porque é definida pelo carácter. Uma associação a Super+F1 mantém-se na mesma posição, porque as teclas de função não são remapeadas pelo layout.
Quanto tempo a mudança lhe custa
Ninguém pode dar um número exato para as suas mãos. A digitação tátil baseia-se na memória motora. Não está a aprender onde ficam as letras. Está a reconstruir o reflexo que transforma uma palavra numa sequência de dedos. Por isso, o único fator que ajuda é o tempo passado a escrever.
Os relatos disponíveis são registos de prática fornecidos pelos próprios utilizadores, e não medições controladas. Eles indicam uma primeira semana com uma velocidade muito inferior a metade da anterior e um regresso a essa velocidade entre um e três meses de utilização diária. A diferença entre pessoas é grande. Considere estes valores uma tendência, não um calendário.
Dois hábitos tornam a mudança mais lenta. Alternar entre QWERTY e Colemak durante o dia mantém ambos os reflexos fracos. Por isso, a maioria das pessoas que conclui a mudança adota totalmente o novo esquema no computador principal. Começar durante uma semana ocupada significa escrever mal sob pressão de tempo. Isso ensina-o a olhar para as teclas.
Configure o caminho de regresso antes de precisar dele. O momento em que voltará a querer QWERTY será precisamente aquele em que algo estiver avariado e alguém estiver à espera.
Como voltar rapidamente para QWERTY
No X11, setxkbmap us restaura QWERTY imediatamente. Na consola, sudo loadkeys us faz o mesmo. Para desfazer a definição persistente, execute sudo localectl set-x11-keymap us.
Uma alternância é melhor do que um comando que teria de escrever num layout que ainda não consegue usar:
setxkbmap -layout us,us -variant colemak, -option grp:win_space_toggleIsto carrega Colemak como primeiro layout e US simples como segundo, e Super+Space alterna entre eles. A vírgula no fim de colemak, não é um erro: atribui a variante colemak ao primeiro layout e nenhuma variante ao segundo. No GNOME, adicione ambas as fontes de entrada em Settings, onde Super+Space já permite alternar entre elas.
Duas solicitações de palavra-passe ocorrem fora da sua sessão gráfica e precisam de atenção separada. O ecrã de início de sessão é iniciado antes de as definições da sessão serem aplicadas. Por isso, teste-o terminando a sessão, em vez de confiar na definição. Se o disco estiver encriptado, a solicitação da frase-passe é executada a partir do initramfs, que tem a sua própria cópia do mapa de teclado. No Debian e no Ubuntu, reconstrua-o com sudo update-initramfs -u depois de alterar /etc/default/keyboard. Em seguida, reinicie uma vez para testar enquanto ainda tem outra forma de aceder à máquina.
Posso manter um programa em QWERTY?
O layout é aplicado antes de a aplicação receber a tecla. O X server ou o compositor converte um scancode num caractere e entrega esse caractere, por isso uma aplicação não pode pedir um layout diferente. Só pode remapear o que recebe. É por isso que a correção para o Vim fica na configuração do Vim e que não existe um seletor geral de layout por janela para utilizar.
Há duas abordagens que funcionam. A primeira é por dispositivo. Se a digitação em QWERTY ocorrer num teclado separado, defina o layout nesse dispositivo, em vez de o definir no sistema:
xinput list
setxkbmap -device 12 -layout usObtenha o id a partir de xinput list e confirme escrevendo em cada teclado, um de cada vez. O sway aceita as mesmas definições por identificador de entrada a partir de swaymsg -t get_inputs, e um seletor mais específico tem precedência sobre type:keyboard.
A segunda abordagem é fazer o remapeamento dentro da aplicação, como faz o langmap do Vim. Os jogos quase sempre têm um ecrã de configuração de teclas, e remapear as teclas de movimento nesse ecrã demora menos tempo do que tentar corrigir o layout externamente. Para aplicações que não tenham nenhuma destas opções, associe o alternador de layout acima e prima-o antes de iniciar a aplicação.
FAQ
Preciso de definir Colemak no meu VPS?
Não, se aceder a ele através de SSH. O SSH transporta caracteres, por isso o layout é resolvido no seu portátil antes de qualquer envio, e o servidor recebe os mesmos bytes que receberia de alguém a escrever com QWERTY. A exceção é a consola do browser no painel do fornecedor, que se liga à máquina virtual como um teclado e usa o mapa de teclado da própria consola do servidor. Essa consola é o seu caminho de recuperação quando o SSH falha, por isso altere-o apenas se tiver a certeza e teste-o enquanto o SSH ainda funciona.
Devo aprender Colemak ou Colemak-DH?
Ambos exigem reaprender a partir de QWERTY, por isso escolha com base no conforto e não no custo da migração. Colemak-DH reposiciona D, B e G e troca H com M, porque o Colemak normal escreve D e H com um movimento de extensão do dedo indicador para a coluna central. Os nomes das variantes XKB são colemak e colemak_dh, com colemak_dh_iso para teclados que têm a tecla adicional junto à tecla Shift esquerda. Execute localectl list-x11-keymap-variants us | grep colemak para ver quais estão disponíveis no seu sistema.
O que acontece às teclas hjkl do Vim no Colemak?
h permanece no mesmo lugar. j passa para a posição do Y de QWERTY, k para a posição do N de QWERTY e l para a posição do U de QWERTY, por isso as teclas de cursor ficam distribuídas por três linhas. Pode reaprendê-las nas posições para onde foram movidas, mantendo válidos todos os plugins e tutoriais, ou remapear as quatro teclas sob a sua mão direita: h, n, e e i no Colemak, e m, n, e e i no Colemak-DH. A opção langmap do Vim faz o mesmo no modo normal, embora não se aplique a combinações com Ctrl e possa confundir os mapeamentos dos plugins.
Quanto tempo demora até voltar a escrever à velocidade anterior?
Conte com semanas, não dias, porque isto depende da memória motora e a única forma de a desenvolver é praticar. Os registos de prática publicados pelos utilizadores descrevem frequentemente uma primeira semana muito abaixo de metade da velocidade anterior e um regresso a essa velocidade após um a três meses de utilização diária. Alternar entre QWERTY e Colemak todos os dias prolonga esse período, porque nenhum dos reflexos tem oportunidade de estabilizar.
Porque é que setxkbmap não fez nada no meu desktop?
Quase certamente porque a sessão usa Wayland. No Wayland, o compositor gere o mapa de teclado e aplica-o a cada aplicação, por isso setxkbmap pode não encontrar um display ou alterar apenas o XWayland, enquanto as aplicações nativas o ignoram. Defina o layout no compositor: através da chave gsettings org.gnome.desktop.input-sources no GNOME, de xkb_variant na configuração do sway ou da página Layouts nas System Settings do KDE Plasma.