Estou usando o gnome 3.22.1, mas o problema existe desde 3.18.
Antes disso (não lembro a versão exata), eu consegui mudar o layout do teclado usando xkb-witch , aplicação simples que usa ligações do X.org sob o capô.
Após o 3.18, se você executar o xkb-switch, o layout do teclado não será alterado no gnome. Outras investigações mostraram que a comutação de layout está funcionando, mas por um período muito curto de tempo.
Se você executar este script:
for i in $(seq 1000); do
lang=$(xkb-switch -s ru; xkb-switch);
if [[ "$lang" == "ru" ]]; then
echo $lang;
fi;
done
Você obterá de 3 a 20 comutações de layout "bem-sucedidas", dependendo da sorte que tiver.
Depois de pesquisar este problema, eu o seguinte aconselhamento :
gsettings set org.gnome.desktop.input-sources current 0
A configuração está sendo alterada, mas o layout permanece o mesmo.
Eu encontrei um método "hacky" para alterar o layout:
setxkbmap us,ru
setxkbmap ru,us
mas o shell do gnome não está ciente dessa alteração e mostra um idioma incorreto no indicador de layout.
Eu postei sobre esse problema (desculpe, não há reputação suficiente, https: //bbs.archlinux.org/viewtopic.php? pid = 1657582 https: //github.com/ierton/xkb-switch/issues/ 15), mas não teve sorte em obter boas respostas.
E neste momento estou preso. Eu não tenho habilidade suficiente para identificar o problema no código shell do gnome. Eu nem tenho certeza se é problema do (gnome shell).
O que eu quero é uma maneira gnome-aware de mudar o layout do teclado do terminal. Alguém pode me apontar na direção certa? Devo arquivar isso como um bug (especialmente o fato de que o layout do teclado não pode ser alterado através de configurações)?