Como alterar o layout do teclado no gnome 3 a partir da linha de comando

9

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)?

    
por RGBD 17.10.2016 / 18:02

4 respostas

3

Usando gsettings .

Configurar org.gnome.desktop.input-sources.sources para a lista null , "[]", permite que você use a configuração do teclado servidor X sem gnome-shell tentando configurá-lo, para que você possa fazer como antes.

$ gsettings set org.gnome.desktop.input-sources sources '[]'
    
por 17.10.2016 / 22:52
2

Como o gnome-shell expõe uma interface JS eval no DBus que tem acesso a todas as variáveis, o talento é possível com o seguinte comando:

gdbus call --session --dest org.gnome.Shell \
--object-path /org/gnome/Shell \
--method org.gnome.Shell.Eval \
 "imports.ui.status.keyboard.getInputSourceManager().inputSources[0].activate()"

Que ativará o 0º layout e assim por diante.

Crédito.

    
por 13.06.2018 / 10:31
2

Se você estiver usando o IBus como seu método de entrada (que é um padrão provável), você pode alterar sua entrada usando o comando ibus :

# Set the layout to US English
ibus engine xkb:us::eng
# Set the input method to Japanese Mozc IME
ibus engine mozc-jp
# Set the layout to Russian
ibus engine xkb:ru::rus

Você pode ver todos os layouts disponíveis com o comando ibus list-engine .

Deve-se notar que essa abordagem não altera o indicador de idioma, embora funcione de maneira confiável.

    
por 13.06.2018 / 17:12
0

Eu acho que você deveria tentar sudo dpkg-reconfigure keyboard-configuration

    
por 19.06.2018 / 19:01