My Computer Adventures: Wrong keys auto-typed by KeePass/KeePassX in Ubuntu.
De acordo com este artigo muito fofo, o problema enfrentado por usuários brasileiros de Keepassx (senhas digitadas incorretamente ao usar a opção “tipo automático”) é um problema da interface Unity, do Ubuntu. Só que não. O problema também ocorre no Linux Mint, que não usa Unity. Então onde está o problema? Se você olhar pra solução, o comando setxkbmap, você percebe, imediatamente, que o problema reside no X.
Quando você digita uma senha no Keepassx, ele recebe informações sobre o que você está digitando a partir do driver, óbvio, sendo que o driver do teclado está propriamente configurado como brasileiro. Mas na hora da tipagem, o Keepassx não dispõe de um teclado físico, então ele usa o mapa de caracteres do X, que, por padrão, é norte-americano. É como você tentar colocar um acento agudo num “teclado mal configurado”, fazendo aparecer, digamos, ponto e vírgula, porque o driver está configurado como EN. Mesmo que você tenha criado sua senha automaticamente usando o gerador de senhas do próprio programa, o problema persistirá, porque o Keepassx usa as configurações do sistema hospedeiro, enquanto que o X usa suas próprias configurações. Se você mudar o idioma do Keepassx, ele irá mudar também o teclado do X para o idioma que você escolheu, resolvendo o problema desde que o programa tenha sido traduzido para aquele idioma, mas ele não tem português brasileiro (o português de Portugal não serve). Então o jeito é configurar o teclado do X por outros meios.
A solução é digitar num terminal o comando setxkbmap br. Isso eliminará o problema. Mas ele voltará na próxima vez em que você iniciar sua seção; por alguma razão obscura, a configuração do teclado do X é “resetada” a cada início de seção. Então como é que você resolve o problema permanentemente? Não sei, mas tem um jeito de você fazer seu computador executar o comando automaticamente à cada início de seção, o que é o mais próximo que consigo chegar de uma solução.
O Ubuntu tem um programa chamado Aplicativos de Sessão. Inicie-o e adicione uma nova ação.
Nome: Configuração do Teclado do X
Comando: setxkbmap br
Descrição: Configura o teclado do X de acordo com o modelo brasileiro.
No Linux Mint, isso também é válido. Da mesma forma, o comando pode ser adaptado para outros tipos de teclado (setxkbmap gr para alemão, por exemplo), com o tanto que você disponha do código do seu teclado, que normalmente é a abreviação inglesa do nome do país. Caso mais de um usuário use o Keepassx, o método deve ser repetido também nas contas dos outros usuários. A não ser, claro, que você adicione uma entrada em init.d, o que faria o comando ser executado para todos os usuários à cada arranque. Acho que o comando pra isso seria sudo /etc/init.d/setxkbmap br start. Como eu disse, eu acho que é.