Pular para o conteúdo
← Voltar para projetos

Keyboard Setup

The essential keyboard setup for Brazilian guys!

#Keyboard Setup para Linux

Configurador automatizado de teclado para distribuições Linux baseadas em Ubuntu (Pop!_OS, Ubuntu, Linux Mint, etc.).

O script resolve de forma simples e rápida um dos problemas mais comuns enfrentados por brasileiros no Linux: configurar o teclado corretamente para produzir cedilha (ç) e acentos.

#O problema

Quem usa Linux no Brasil geralmente se depara com uma dessas situações:

  • Teclado ABNT2 conectado, mas o sistema não reconhece o layout brasileiro e as teclas ficam trocadas
  • Teclado US International onde a combinação ' + c produz ć (c-agudo) em vez de ç (cedilha)

Ambos os cenários impedem o uso correto do Português no dia a dia.

#A solução

O keyboard-setup.sh é um script interativo que configura tudo automaticamente com um único comando. Basta escolher qual teclado você está usando:

Opção Teclado Resultado
1 pt-BR ABNT2 Tecla ç funciona direto, ~ ao lado, acentos nativos
2 US International ' + c = ç, ' + C = Ç, via workaround de cedilha

#Distribuições suportadas

  • Pop!_OS 22.04+
  • Ubuntu 22.04+
  • Linux Mint 21+
  • Outras distribuições baseadas em Ubuntu/Debian com GNOME

Compatível com sessões X11 e Wayland (com ressalvas para Wayland na opção US International).

#Pré-requisitos

  • Acesso sudo (o script modifica arquivos do sistema)
  • Bash 4.0+
  • setxkbmap e gsettings (já inclusos na maioria das distros com GNOME)

#Como usar

#1. Clone o repositório

git clone https://github.com/tio-jobs/keyboard-setup.git
cd keyboard-setup

#2. Dê permissão de execução

chmod u+x keyboard-setup.sh

#3. Execute o script

sudo ./keyboard-setup.sh

#4. Escolha seu teclado

=============================================
  Configuração de Teclado
  Pop!_OS / Ubuntu
=============================================

Qual teclado você está usando?

  1) pt-BR ABNT2 (teclado brasileiro com ç no teclado)
  2) US International (teclado americano, ' + c = ç)

Escolha [1/2]:

Digite 1 ou 2 e pressione ENTER. A configuração é aplicada imediatamente.

#O que o script faz

#Opção 1 — pt-BR ABNT2

Para quem tem um teclado físico brasileiro com a tecla ç dedicada:

  • Configura /etc/default/keyboard com layout br, variante abnt2, modelo abnt2
  • Aplica o layout na sessão atual via setxkbmap e gsettings
  • Remove variáveis de input method (GTK_IM_MODULE, QT_IM_MODULE, XMODIFIERS) que podem interferir
  • Limpa regras de cedilha do ~/.XCompose (desnecessárias no ABNT2)
  • Executa dpkg-reconfigure keyboard-configuration para persistência

#Opção 2 — US International

Para quem tem um teclado físico americano e precisa de ' + c = ç:

  • Configura /etc/default/keyboard com layout us, variante intl, modelo pc105
  • Aplica o layout na sessão atual via setxkbmap e gsettings
  • Adiciona GTK_IM_MODULE=cedilla, QT_IM_MODULE=cedilla e XMODIFIERS=@im=none em /etc/environment
  • Configura ~/.XCompose com regras dead_acute + c/C para cedilha
  • Corrige tabelas Compose do sistema (en_US.UTF-8 e pt_BR.UTF-8): ć para ç
  • Verifica e instala o módulo im-cedilla.so se necessário
  • Atualiza o cache de immodules do GTK

#Ambas as opções

  • Cria backups automáticos (.bak) de todos os arquivos modificados
  • Reinicia o serviço do teclado (/etc/init.d/keyboard-setup.sh restart)
  • Exibe um resumo das alterações e instruções de teste

#Arquivos modificados

Arquivo Descrição
/etc/default/keyboard Layout, variante e modelo do teclado
/etc/environment Variáveis de input method (apenas US International)
~/.XCompose Regras de composição de caracteres
/usr/share/X11/locale/*/Compose Tabelas Compose do sistema (apenas US International)

Todos os arquivos originais são preservados com extensão .bak antes de qualquer modificação.

#Alternando entre teclados

Você pode executar o script quantas vezes quiser. Se trocou de teclado (por exemplo, conectou um ABNT2 em vez do US International), basta rodar novamente:

sudo ./keyboard-setup.sh

Escolha a nova opção e o script reconfigura tudo automaticamente, incluindo a limpeza das configurações da opção anterior.

#Solução de problemas

#As alterações não surtiram efeito

Em alguns casos, pode ser necessário fazer logout e login novamente para que todas as variáveis de ambiente sejam recarregadas.

#Wayland e ~/.XCompose

Se você está usando Wayland (padrão no Ubuntu 22.04+), as regras do ~/.XCompose podem não funcionar em todos os aplicativos. As variáveis GTK_IM_MODULE e QT_IM_MODULE ainda serão configuradas e devem cobrir a maioria dos casos.

#O script reportou avisos (warnings)

Avisos em amarelo são informativos e não impedem o funcionamento. Eles indicam situações como:

  • Arquivo de Compose do sistema não encontrado (normal em algumas distros)
  • Cache de immodules não atualizado (não impede o funcionamento)
  • Falha no setxkbmap em sessão Wayland (esperado, o gsettings cobre esse caso)

#Como reverter as alterações

Os backups criados pelo script permitem reverter manualmente:

sudo cp /etc/default/keyboard.bak /etc/default/keyboard
sudo cp /etc/environment.bak /etc/environment
cp ~/.XCompose.bak ~/.XCompose

#Contribuindo

Este é um projeto aberto e contribuições são muito bem-vindas! Se você encontrou um bug, tem uma sugestão de melhoria ou quer adicionar suporte a outra distribuição:

  1. Abra uma issue descrevendo o problema ou a sugestão
  2. Faça um fork do repositório
  3. Crie uma branch para sua alteração (git checkout -b minha-melhoria)
  4. Faça o commit das suas mudanças (git commit -m 'Adiciona minha melhoria')
  5. Envie um push para a branch (git push origin minha-melhoria)
  6. Abra um Pull Request

#Ideias de contribuição

  • Suporte a outras distribuições (Fedora, Arch, openSUSE)
  • Suporte a outros ambientes desktop (KDE, XFCE, i3)
  • Opção para teclado ABNT sem variante (layout br padrão)
  • Tradução para outros idiomas
  • Testes automatizados

#Licença

Este projeto é distribuído sob a licença MIT. Veja o arquivo LICENSE para mais detalhes.


Feito com dedicação para a comunidade brasileira de Linux.

Se este projeto te ajudou, deixe uma estrela no repositório!

Nova versão disponível.