SSD Nodes Learn Hosting plans →
Guias Matt ConnorPor Matt Connor · Atualizado 2026-08-24

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 colemak

O ú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 -query

setxkbmap -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 status

A 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 setupcon

Escreva 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-latin9

O 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 n

n 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,kn

Cada 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_toggle

Isto 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 us

Obtenha 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.