Introdução
Nos terminais virtuais do Linux (TTYs), o subsistema do kernel não interpreta diretamente as descrições modernas de teclado baseadas em XKB, comumente empregadas em ambientes gráficos. O utilitário ckbcomp resolve esse descompasso ao traduzir regras complexas do XKB para formatos brutos compatíveis com o comando loadkeys. Este artigo apresenta um roteiro direto e funcional para configurar distribuições de teclado, tratar peculiaridades regionais e reprogramar teclas de controle — dispensando a leitura maçante das páginas do manual.
1. Instalação das Ferramentas e Compilação do Layout US Padrão
Para compilar e injetar mapas de teclado nas sessões de texto puro, certifique-se de que o sistema possui os utilitários console-setup, kbd e a base de definições xkb-data.

O executável ckbcomp faz a ponte entre a arquitetura XKB e a tabela do console, gerando na saída padrão o mapeamento que o loadkeys consome. Ao requisitar o perfil básico norte-americano (us) filtrado pelo head -n 30, é possível inspecionar a atribuição inicial de cada keycode.
⚙️ [Parâmetros Principais]
-model : Define o hardware físico do periférico (por exemplo, pc105 ou pc104).-variant : Especifica subtipos do mapa principal (como dvorak ou colemak).-option : Acrescenta comportamentos adicionais herdados do XKB (a exemplo de ctrl:nocaps).-charmap : Ajusta o encoding dos caracteres gerados (como UTF-8 ou ISO-8859-1).-compact : Reduz o volume do arquivo gerado mesclando declarações idênticas.-freebsd : Direciona a formatação para os consoles do kernel FreeBSD em vez da sintaxe Linux padrão.

2. Configurando Modelos de Hardware (-model) e Variantes Regionais (-variant)
Ao especificar um modelo padrão com 105 teclas (-model pc105) aliado à distribuição coreana (-layout kr), o utilitário gera os vínculos adequados entre as teclas físicas, seus valores Unicode correspondentes e as combinações com teclas modificadoras.

Determinadas tarefas de digitação e automação exigem suprimir o comportamento de acentuação escalonada. Ao compilar o layout alemão (-layout de) com o modificador de desativação de teclas mortas (-variant nodeadkeys), diacríticos e acentos deixam de aguardar o próximo caractere, sendo emitidos de maneira instantânea.

3. Customizações Avançadas: Reatribuindo ou Trocando o CapsLock por Control
Administradores e programadores frequentemente preferem converter a tecla CapsLock em um Control adicional para poupar esforço nos atalhos do terminal. A flag -option ctrl:nocaps remove a trava de maiúsculas do mapa; ao filtrar a saída com grep, nota-se a completa eliminação do símbolo Caps_Lock.

Caso a intenção seja inverter ambas as funções em vez de descartar a trava, utiliza-se -option ctrl:swapcaps. O resultado filtrado comprova que o identificador Caps_Lock assume a posição do keycode 29 (tradicionalmente ocupada pelo Control esquerdo), mantendo os dois recursos plenamente acessíveis com papéis trocados.

4. Persistência de Arquivos de Mapa e Ativação Imediata com loadkeys
Para manter o ambiente de trabalho organizado e armazenar essas definições personalizadas, crie uma pasta dedicada por meio do comando mkdir -p ~/keymaps.

Gere a tabela do layout US contendo a conversão do CapsLock em Control e grave o resultado compilado diretamente no arquivo ~/keymaps/custom_us.map utilizando o operador de redirecionamento (>).

Embora o sistema reconheça arquivos em texto simples, comprimir o mapa facilita o manuseio pelo kernel e economiza espaço. A instrução gzip -fk ~/keymaps/custom_us.map gera a versão comprimida sem descartar o arquivo de texto de origem.

A checagem detalhada com ls -lh ~/keymaps/custom_us.map* confirma a integridade dos dados: o mapa bruto de aproximadamente 120 KB é reduzido para cerca de 4.0 KB no arquivo .gz.

Para aplicar o novo mapeamento de forma instantânea ao terminal virtual em uso, execute sudo loadkeys ~/keymaps/custom_us.map. O comando atualiza a tabela interna do console sem demandar reinicialização, colocando os atalhos customizados em operação no mesmo instante.

Dominar o ckbcomp oferece autonomia total para replicar regras sofisticadas do XKB dentro dos consoles tty do Ubuntu, garantindo que o fluxo de trabalho no terminal permaneça ergonômico e adaptado às necessidades de cada operador.