Eu também uso o Ubuntu 12.04 e enfrentei esse problema. Usando a resposta de Jason Coombs à sua própria pergunta como ponto de partida, eu pude usar o / etc / default / keyboard para definir minhas opções de teclado (para mim, ctrl: nocaps e compose: menu) e ter que persistir entre reinicializações para consoles . No entanto, a configuração seria ignorada pelo LightDM / Unity na reinicialização. Para esclarecer, eu não defini nenhuma preferência de teclado dentro do Unity, então o Unity deve ser padronizado para as configurações do teclado padrão do sistema, mas não está usando as opções do teclado por algum motivo.
Percebi que, se eu executar o seguinte comando após o login, o Unity de repente começa a reconhecer as opções de teclado padrão do meu sistema:
setxkbmap
Eu não forneço nenhum parâmetro para o setxkbmap, eu simplesmente o invoco sem opções e ele lê e aplica o mapa padrão do sistema.
Para que isso aconteça automaticamente quando qualquer usuário fizer login (pelo menos, qualquer usuário com um desktop Gnome ou Unity), eu fiz o seguinte arquivo setxkbmap.desktop que eu coloquei no diretório / etc / xdg / autostart /:
[Desktop Entry] Type=Application TryExec=/usr/bin/setxkbmap Exec=/usr/bin/setxkbmap Hidden=false NoDisplay=true X-GNOME-Autostart-enabled=true Name[en_US]=System Keyboard Fix Name=System Keyboard Fix Comment[en_US]=Apply system-wide keyboard settings to the session Comment=Applies system-wide keyboard settings to session
Essa correção parece tornar as opções de teclado consistentes em todo o sistema, com exceção do breve período em que o LightDM tem controle da minha tela antes de fazer o login.