Ich verwende Gnome 3.22.1, aber das Problem besteht seit 3.18.
Davor (ich erinnere mich nicht an die genaue Version) konnte ich das Tastaturlayout mit xkb-witch ändern , einer einfachen Anwendung, die X.org-Bindungen unter der Haube verwendet.
Wenn Sie nach 3.18 xkb-switch ausführen, wird das Tastaturlayout in gnome nicht mehr geändert. Weitere Untersuchungen haben gezeigt, dass die Layoutumschaltung funktioniert, jedoch nur für sehr kurze Zeit.
Wenn Sie dieses Skript ausführen:
for i in $(seq 1000); do
lang=$(xkb-switch -s ru; xkb-switch);
if [[ "$lang" == "ru" ]]; then
echo $lang;
fi;
done
Sie erhalten 3 bis 20 "erfolgreiche" Layoutwechsel, je nachdem, wie viel Glück Sie haben.
Nach dem googeln dieses Problems gebe ich folgenden Rat :
gsettings set org.gnome.desktop.input-sources current 0
Die Einstellung wird geändert, das Layout bleibt jedoch unverändert.
Ich habe eine "hackige" Methode gefunden, um das Layout zu ändern:
setxkbmap us,ru
setxkbmap ru,us
Die Gnome-Shell ist sich dieser Änderung jedoch nicht bewusst und zeigt im Layout-Indikator eine falsche Sprache an.
Ich habe über dieses Problem geschrieben (leider nicht genug Reputation, https: //bbs.archlinux.org/viewtopic.php? Pid = 1657582 https: //github.com/ierton/xkb-switch/issues/15), hatte aber kein glück gute antworten zu bekommen.
Und an diesem Punkt stecke ich fest. Ich bin nicht geschickt genug, um das Problem im Gnome-Shell-Code zu identifizieren. Ich bin mir nicht mal sicher, ob es das Problem (der Gnomenshell) ist.
Was ich möchte, ist eine gnomenbewusste Möglichkeit, das Tastaturlayout vom Terminal aus zu ändern. Kann mich jemand in die richtige Richtung weisen? Sollte ich dies als Fehler melden (insbesondere die Tatsache, dass das Tastaturlayout nicht über gsettings geändert werden kann)?
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()"