В Ubuntu 16.04 работала следующая вещь:
/usr/bin/gsettings set org.gnome.desktop.input-sources current 0
Но после обновления до 18,04, это больше не работает.
Этот метод переключения раскладок клавиатуры был удержан от использования. Новое, просто немного более загадочный путь - это:
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()"
(кредиты: https://www.mail-archive.com/gnome-shell-list@gnome.org/msg08988.html)
Число в inputSources[1]
определяет, какое расположение Вы хотите. Так, если у Вас будет две различных настроенные разметки, то это будет 0 или 1. Можно получить список настроенных разметок при помощи этой команды:
$ gsettings get org.gnome.desktop.input-sources sources
[('xkb', 'us+intl-unicode'), ('xkb', 'us')]
Ответ Sebastian является большим, я могу подтвердить, что он работает намного быстрее, чем предыдущий метод, который я использовал:
gsettings set org.gnome.desktop.input-sources sources "[('xkb', 'us')]"
gsettings set org.gnome.desktop.input-sources sources "[('xkb', 'us'), ('xkb', 'ru'), ('ibus', 'googlepinyin')]"
К clearify его ответ, число в квадратных скобках (inputSources[1]
) запускается от 0, в моем случае 0 будем нас, 1 рутений и 2 системы транслитерации китайских иероглифов в следующем коде:
#!/bin/bash
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()"
Можно сохранить сценарии оболочки для каждого переключателя языка в корневом каталоге, например,/home/user_name/.keyboard/langxx.sh. Не забудьте позволять выполнять их.
Затем необходимо добавить ярлыки в Ярлыках Настроек/Устройств/Клавиатуры/Пользовательских: Снимок экрана