O Ubuntu 13.10 1 (e talvez o gnome upstream) introduziu um bug muito irritante : pressionar o atalho do comutador de layout do teclado faz o foco desaparecer em alguma janela do sistema e depois voltar à janela onde o atalho foi pressionado. Alguns aplicativos têm algumas ações vinculadas à mudança de foco, por exemplo, o twitter (no navegador) fecha o campo de entrada de texto de resposta ao perder o foco, etc. Portanto, o comutador de teclado nativo do ubuntu não é adequado para mim, até que seja corrigido.
O X possui um mecanismo de comutação embutido, e é muito melhor, além de não envolver a alternância de foco, ele alterna imediatamente (o comutador gnome também fica atrasado).
Como posso configurar as opções do xkbmap para que as configurações permaneçam após a reinicialização e não sejam redefinidas pelo Gnome?
O que eu tentei:
Primeiro, basta executar o setxkbmap:
setxkbmap -layout "us,ru"
setxkbmap -option "grp:caps_toggle,grp_led:scroll,compose:ralt"
Mas funciona apenas:
- Para a sessão atual
- Até que o Gnome o substitua (por exemplo, tocar em algo nos
org.gnome.desktop.input-sources
gatilhos do gconf redefinir).
Segundo, adicionando opções xkb à configuração do Xorg:
Outra opção é adicionar o seguinte à configuração do xorg:
Section "InputClass"
Identifier "system-keyboard"
MatchIsKeyboard "on"
Option "XkbLayout" "us,ru"
Option "XkbModel" "pc105"
Option "XkbVariant" "pc105"
Option "XkbOptions" "grp:rctrl_toggle,grp_led:scroll"
EndSection
O Xorg entende que durante a inicialização:
[ 33.791] (**) Option "xkb_rules" "evdev"
[ 33.791] (**) Option "xkb_model" "pc105"
[ 33.791] (**) Option "xkb_layout" "us,ru"
[ 33.791] (**) Option "xkb_variant" "pc105"
[ 33.791] (**) Option "xkb_options" "grp:rctrl_toggle,grp_led:scroll"
Mas a configuração da troca ainda é redefinida mais tarde, provavelmente pelo gnome.
Terceiro, gconf
Eu tenho xkb-options
e sources
conjunto em org.gnome.desktop.input-sources
, mas Gnome ainda define xkb a disposição Inglês single:
$ setxkbmap -print -verbose 10
Setting verbose level to 10
locale is C
Trying to load rules file ./rules/evdev...
Trying to load rules file /usr/share/X11/xkb/rules/evdev...
Success.
Applied rules from evdev:
rules: evdev
model: pc105
layout: us
options: grp_led:scroll
Trying to build keymap using the following components:
keycodes: evdev+aliases(qwerty)
types: complete
compat: complete+ledscroll(group_lock)
symbols: pc+us+inet(evdev)
geometry: pc(pc105)
xkb_keymap {
xkb_keycodes { include "evdev+aliases(qwerty)" };
xkb_types { include "complete" };
xkb_compat { include "complete+ledscroll(group_lock)" };
xkb_symbols { include "pc+us+inet(evdev)" };
xkb_geometry { include "pc(pc105)" };
};
Quarto, outra opção no gconf
Definir org.gnome.settings-daemon.peripherals.keyboard
também não funciona para mim. Nada muda.
Atualização 1 : Há discussões recomendando a remoção /usr/lib/gnome-settings-daemon-3.0/libkeyboard.so
. Pelo menos isso corrige algumas redefinições do xkbmap (ou seja, após a tela de bloqueio).
1 Eu uso o 14.04, mas o problema de perder o foco ainda não foi corrigido. ( Relatório não confirmado no Gnome a montante )
org.gnome.desktop.input-sources
.
dconf-editor
?
setxkbmap
comandos ao seu~/.profile
? Dessa forma, eles serão executados toda vez que você fizer login e, como as mesmas configurações existem no Gnome, não deve mudar nada se for redefinido.