Как переключать раскладку в Гноме из командной строки? Одно время работали такие заклинания:
# получить текущую раскладку
gdbus call --session --dest org.gnome.Shell --object-path /org/gnome/Shell --method org.gnome.Shell.Eval "imports.ui.status.keyboard.getInputSourceManager().currentSource.index"
# установить раскладку
gdbus call --session --dest org.gnome.Shell --object-path /org/gnome/Shell --method org.gnome.Shell.Eval "imports.ui.status.keyboard.getInputSourceManager().inputSources[1].activate()"
Но с переходом на Гном 41 разработчики что-то там поменяли и все это накрылось медным тазом.
These commands doesn’t work anymore after upgrade from gnome-shell 40 to 41 because Gnome restricted to use eval due to security reasons. Possible workaround is to wrap them into custom extensions. I wrapped my switcher to last used layout here: https://gist.github.com/Envek/85f40478d1c8b9658621190569046447
Для чего это вообще нужно? Например, чтобы автоматически менять раскладку в vim при смене режимов. Сейчас официального пути для этого нет, насколько я понимаю. Один гражданин сделал какой-то хак с расширением и так переключает. Но поскольку никакого api у расширений нет, то и это, рано или поздно сломается. Мне кажется люди, которые поддерживают subj – идиоты.
Так и живем.