gnome 3.22.1を使用していますが、3.18以降に問題があります。
その前に(正確なバージョンを覚えていない)、フードの下でX.orgバインディングを使用する単純なアプリケーションであるxkb-witchを使用してキーボードレイアウトを切り替えることができました。
3.18以降、xkb-switchを実行すると、gnomeでキーボードレイアウトが切り替わりません。さらなる調査により、レイアウトの切り替えが機能していることが示されましたが、非常に短時間です。
このスクリプトを実行する場合:
for i in $(seq 1000); do
lang=$(xkb-switch -s ru; xkb-switch);
if [[ "$lang" == "ru" ]]; then
echo $lang;
fi;
done
あなたがどれだけ幸運であるかに応じて、3〜20回の「成功した」レイアウト切り替えが得られます。
この問題をグーグルで調べた後、私は次のアドバイスをします。
gsettings set org.gnome.desktop.input-sources current 0
設定は変更されていますが、レイアウトは同じままです。
レイアウトを変更する1つの「ハッキング」メソッドを見つけました。
setxkbmap us,ru
setxkbmap ru,us
しかし、gnomeシェルはその変更を認識せず、レイアウトインジケーターに間違った言語を表示します。
この問題について投稿しました(申し訳ありませんが、評判が足りません、https://bbs.archlinux.org/viewtopic.php?pid = 1657582 https://github.com/ierton/xkb-switch/issues/15)、しかし、良い答えを得ることができなかった。
そして、この時点で立ち往生しています。私はgnomeシェルコードの問題を特定するのに十分なスキルがありません。それが(gnome shellの)問題なのかどうかさえわかりません。
私が欲しいのは、ターミナルからキーボードのレイアウトを切り替えるgnome対応の方法です。誰かが私を正しい方向に向けることができますか?これをバグとして報告する必要がありますか(特に、gsettingsを使用してキーボードレイアウトを変更できないという事実)。
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()"