Це можливо за допомогою запиту на gnome-shell через його JS-інтерфейс з gdbus call
( src ).
Наступний сценарій буде чергуватися між двома налаштованими джерелами введення. Легко змінювати, якщо у вас є більше.
#!/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: Налаштування -> Пристрої -> Клавіатура -> Спеціальні ярлики ).