Używam gnome 3.22.1, ale problem istnieje od 3.18.
Wcześniej (nie pamiętam dokładnej wersji) mogłem zmienić układ klawiatury za pomocą prostej aplikacji xkb-witch , która korzysta z powiązań X.org pod maską.
Po 3.18, jeśli uruchomisz przełącznik xkb, układ klawiatury nie zostanie przełączony w gnome. Dalsze dochodzenie wykazało, że zmiana układu działa, ale przez bardzo krótki czas.
Jeśli uruchomisz ten skrypt:
for i in $(seq 1000); do
lang=$(xkb-switch -s ru; xkb-switch);
if [[ "$lang" == "ru" ]]; then
echo $lang;
fi;
done
Dostaniesz od 3 do 20 „udanych” zmian układu, w zależności od tego, jakie masz szczęście.
Po przejrzeniu tego problemu korzystam z następującej porady :
gsettings set org.gnome.desktop.input-sources current 0
Ustawienie jest zmieniane, ale układ pozostaje taki sam.
Znalazłem jedną „hacką” metodę zmiany układu:
setxkbmap us,ru
setxkbmap ru,us
ale powłoka gnome nie jest świadoma tej zmiany i pokazuje niewłaściwy język we wskaźniku układu.
Napisałem o tym problemie (przepraszam, za mało reputacji, https: //bbs.archlinux.org/viewtopic.php? Pid = 1657582 https: //github.com/ierton/xkb-switch/issues/15), ale nie miał szczęścia uzyskać dobrych odpowiedzi.
I w tym momencie utknąłem. Nie mam wystarczających umiejętności, aby zidentyfikować problem w kodzie powłoki gnome. Nie jestem nawet pewien, czy to jest problem (powłoki gnoma).
To, czego chcę, to sposób gnomów, aby przełączyć układ klawiatury z terminala. Czy ktoś może skierować mnie we właściwym kierunku? Czy powinienem to zgłosić jako błąd (zwłaszcza fakt, że układu klawiatury nie można zmienić za pomocą ustawień gset)?
gdbus call --session --dest org.gnome.Shell --object-path /org/gnome/Shell --method org.gnome.Shell.Eval "imports.ui.status.keyboard.getInputSourceManager()._mruSources[1].activate()"