Como ativar o layout Colemak no Linux
Configure Colemak na consola, no X11 e no Wayland, entenda por que o SSH nao precisa de layout e saiba o impacto no Vim, em hjkl e nas teclas Ctrl.
Onde fica o layout Colemak no Linux
O Colemak no Linux não é uma configuraçã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 configurar 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 das letras pretendidas. Assim, qualquer máquina onde o ligue escreve em Colemak sem qualquer configuração, incluindo a consola de um servidor e uma máquina que não lhe pertence. O custo é que o teclado do portátil continua a escrever em QWERTY.
O restante guia aborda as três camadas de software, explica por que razão um servidor remoto quase nunca precisa de nenhuma delas e mostra 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 Colemak disponibilizadas pela base de dados de teclados X.
localectl status
setxkbmap -query
localectl list-x11-keymap-variants us | grep colemakO último comando deve mostrar colemak e colemak_dh. O Colemak está incluído no xkeyboard-config há anos. O Colemak-DH foi incluído na versão 2.34, portanto só uma versão antiga não o terá. Em agosto de 2026, o Ubuntu 24.04 e o Debian 13 incluem 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 permanecem onde a mão esquerda os espera. Essa compatibilidade é a razão pela qual o layout tem este aspeto.
O Colemak-DH é uma modificação do Colemak. Relocaliza D, B e G e troca H com M, porque o Colemak normal faz com que D e H sejam escritos esticando o dedo indicador até à coluna central do teclado. A modificação oficial mantém cada letra no mesmo dedo que usava no Colemak. Por isso, quem escreve com Colemak e muda para DH enfrenta uma pequena alteração, não um layout novo. A variante XKB é colemak_dh, com colemak_dh_iso para teclados que têm a tecla adicional junto ao Shift esquerdo.
Para quem vem do QWERTY, qualquer uma das opções exige um único processo de reaprendizagem. Escolha com base no conforto e mantenha essa escolha. Mudar de layout uma segunda vez custa aproximadamente o mesmo que a primeira, porque o que está a reconstruir é a memória motora associada às posições das teclas.
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 durar a sessão X e não escreve nada no disco, o que a torna uma forma segura de experimentar o layout durante uma hora.
Para o manter após os reboots:
sudo localectl set-x11-keymap us pc105 colemak
localectl statusA ordem dos argumentos é layout, depois modelo e depois variante. localectl status agora deve apresentar X11 Layout: us e X11 Variant: colemak. O localectl também converte a escolha no keymap de consola mais próximo, exceto se adicionar --no-convert. Por isso, em muitos sistemas, este único comando também abrange o tty. No Debian e no Ubuntu, verifique /etc/default/keyboard depois, porque é esse ficheiro que o console-setup lê durante o boot.
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-o a cada aplicação, portanto o layout é uma definição do compositor. É por isso que setxkbmap parece não funcionar nesse ambiente: ou não encontra um display, ou altera apenas o XWayland, e 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, unidos 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 está a utilizar. Execute este comando quando apenas um teclado apresentar problemas.
No KDE Plasma, abra System Settings, depois Keyboard, depois Layouts, e adicione English (US) com a variante Colemak.
Definir Colemak no console de texto
O console é o tty de texto simples ao qual acede com Ctrl+Alt+F3 e mantém 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 ambiente de terminal numa consola virtual sem interface gráfica.
No Debian e no Ubuntu, edite /etc/default/keyboard:
XKBMODEL="pc105"
XKBLAYOUT="us"
XKBVARIANT="colemak"
XKBOPTIONS=""Em seguida, aplique a configuração:
sudo setupconEscreva no console para confirmar. O console-setup converte essa descrição XKB num mapa de teclado de 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, obtenha primeiro o nome:
localectl list-keymaps | grep -i -e colemak -e latin9
sudo localectl set-keymap en-latin9O pacote kbd fornece o mapa de console Colemak como i386/colemak/en-latin9, por isso o nome que passa normalmente é 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 e não como uma configuração: mantém-se até ao reboot e, no Debian e no Ubuntu, a execução de setupcon durante o arranque repõe o valor indicado por /etc/default/keyboard.
Um VPS headless precisa de um layout Colemak?
Quase nunca, e vale a pena perceber porquê. O SSH transporta caracteres, não posições de teclas. O emulador de terminal recebe a pressão da tecla, o layout local converte-a num carácter e apenas esse carácter é transmitido pela ligação. O servidor recebe n sem ter forma de saber qual tecla física o produziu. Por isso, o layout definido no seu portátil 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 conta antes de começar a editar ficheiros de teclado em servidores de produção. Se gerir uma frota de servidores Linux, o layout pertence à máquina à sua frente, não à frota, pelo que não deve fazer parte do seu aprovisionamento. Os primeiros dez minutos num VPS novo permitem fazer trabalho mais útil do que isto.
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, pelo que as teclas chegam como scancodes e o keymap da consola do servidor decide qual o carácter apresentado. Esse é o único local onde um layout definido no servidor tem efeito. É também o seu caminho de recuperação quando o SSH deixa de funcionar, por isso um keymap de consola incompleto representa um risco real.
Uma consola série comporta-se de forma diferente, porque transporta caracteres e aplica o layout local. A segunda exceção é uma máquina partilhada. O keymap da consola aplica-se a todo o sistema. Definir Colemak numa máquina em que outras pessoas iniciam sessão também o altera para elas, e não vão perceber porquê.
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. Assim, 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 de 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 ficavam antes. 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 para cima, i 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 poderá produzir resultados inesperados.
A opção langmap do Vim faz algo semelhante em menos linhas:
set langmap=nj,ek,il,li,knCada par é interpretado como o caractere que você digitou, seguido do caractere que o Vim deve executar. A opção aplica-se apenas ao modo normal, portanto o modo de inserção continua a escrever texto Colemak normalmente. A documentação da ajuda do próprio Vim regista 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 essa opção.
Escolha uma opção e mantenha-a. Abandonar um remapeamento depois de um mês faz você perder 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 acompanha 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 que ocupam no 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 do 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 simples do que reaprender o mesmo reflexo duas vezes.
Os atalhos do ambiente de trabalho seguem a mesma regra. Um atalho associado a Super+E acompanha o layout, porque é definido pelo carácter. Um atalho associado 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 aplicável às suas mãos. A digitação por toque 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, 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 anterior entre um e três meses de uso diário. A variação entre pessoas é grande. Considere estes valores como uma tendência, não como um calendário.
Dois hábitos tornam o processo mais lento. 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 integralmente o novo layout 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 antecipadamente a forma de voltar ao layout anterior. O momento em que vai querer usar QWERTY novamente será precisamente aquele em que algo estará avariado e alguém estará à espera.
Como voltar rapidamente para QWERTY
No X11, setxkbmap us restaura QWERTY imediatamente. No console, sudo loadkeys us faz o mesmo. Para desfazer a configuração persistente, execute sudo localectl set-x11-keymap us.
Uma alternância é melhor do que um comando que tenha de escrever num layout que ainda não consegue utilizar:
setxkbmap -layout us,us -variant colemak, -option grp:win_space_toggleIsto carrega Colemak como o primeiro layout e US simples como o segundo, e Super+Space alterna entre eles. A vírgula final em 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.
Dois pedidos de palavra-passe ocorrem fora da sua sessão de desktop e exigem atenção separada. O ecrã de início de sessão é iniciado antes de as definições da sua sessão serem aplicadas. Por isso, teste-o terminando a sessão, em vez de confiar na configuração. Se o disco estiver encriptado, o pedido da frase-passe é executado 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 uma aplicação receber a tecla. O servidor X ou o compositor converte um scancode num carácter e entrega o carácter à aplicação, que não pode pedir um layout diferente. Apenas 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.
Existem duas abordagens que funcionam. A primeira é aplicar a configuração por dispositivo. Se a introdução em QWERTY for feita 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 dos atalhos, e remapear aí as teclas de movimento demora menos tempo do que tentar controlar o layout externamente. Para aplicações que não tenham essa opção, associe a alternância de layout acima e prima-a antes de iniciar a aplicação.
FAQ
Preciso configurar Colemak no meu VPS?
Não, se aceder a ele por SSH. O SSH transporta caracteres, por isso a disposição é resolvida 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 navegador no painel do seu fornecedor, que se liga à máquina virtual como um teclado e utiliza o mapa de teclado da própria consola do servidor. Essa consola é o seu caminho de recuperação quando o SSH falha. Altere a disposição apenas se tiver a certeza e teste-a enquanto o SSH ainda funcionar.
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 desloca D, B e G e troca H por M, porque o Colemak normal escreve D e H com um alongamento do dedo indicador até à 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 no QWERTY, k para a posição do N no QWERTY e l para a posição do U no QWERTY, por isso as teclas de cursor ficam distribuídas por três linhas. Pode reaprendê-las nas posições onde ficam, 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 causar conflitos com mapeamentos de plugins.
Quanto tempo demora até voltar a escrever à velocidade anterior?
Conte com semanas, e não dias, porque isto depende da memória motora e a única forma de entrada é a prática. Registos de prática comunicados 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 o processo, porque nenhum dos reflexos tem tempo para se consolidar.
Porque é que setxkbmap não fez nada no meu ambiente de trabalho?
Quase certamente porque a sessão utiliza Wayland. No Wayland, o compositor controla o mapa de teclado e aplica-o a cada aplicação. Por isso, setxkbmap não consegue encontrar um display ou altera apenas o XWayland, e as aplicações nativas ignoram essa alteração. Configure a disposição no compositor: a chave gsettings org.gnome.desktop.input-sources no GNOME, xkb_variant na configuração do sway ou a página Layouts nas definições do sistema do KDE Plasma.