回答:
gdbus call
(src)でJSインターフェースを介してgnome-shellをクエリすることで可能です。
次のスクリプトは、2つの構成済み入力ソースを切り替えます。あなたがもっと持っているなら、簡単に修正できます。
#!/usr/bin/env bash
cur_idx=$(
gdbus call \
--session \
--dest org.gnome.Shell \
--object-path /org/gnome/Shell \
--method org.gnome.Shell.Eval \
"imports
.ui.status
.keyboard
.getInputSourceManager()
.currentSource
.index" |
cut -d"'" -f2
)
next_idx=$(( 1 - $cur_idx ))
gdbus call \
--session \
--dest org.gnome.Shell \
--object-path /org/gnome/Shell \
--method org.gnome.Shell.Eval \
"imports
.ui
.status
.keyboard
.getInputSourceManager()
.inputSources[$next_idx]
.activate()" \
&> /dev/null
で実行可能にするchmod a+x </path/to/script>
と、カスタムショートカットキーにバインドできます。
[ 設定]-> [デバイス]-> [キーボード ]を開き、下部にある[ + ]選択ボタンをクリックして、スクリプトをショートカットに割り当てます
(Gnome <3.xの場合:設定->デバイス->キーボード->カスタムショートカット)。
少し長押しするとオーバーレイが表示されます。すばやく押して離すと、オーバーレイを表示せずにレイアウトが変更されます。
回避策として、レイアウトを切り替えるために別のキーボードショートカットを設定することができます。これについては参照してください。Ubuntu17.10は、入力切り替えショートカットをalt + shiftに変更できません。