Мне нужно подготовить несколько рабочих столов Ubuntu 14.04/14.10. Большинство вещей я смог подготовить легко, потому что их можно настроить в файлах конфигурации или из командной строки.
Но у меня проблемы с двумя вещами: настройка доступных языков и настройка сочетаний клавиш для переключения между языками. Я знаю, как это сделать изgnome-control-center
Установите доступные языки
Region & Language > Input Sources > English (US) + German + Italian
Установите сочетания клавиш для переключения языков
Shortcut Settings > Typing > Switch to next source (Super+Escape), Switch to previous source (Shift+Super+Escape)
Но я не знаю, как это сделать из конфигурационных файлов или командной строки, поэтому не могу настроить это автоматически.
решение1
Ключи
Ключи, которые вы ищете:
для редактирования входных источников:
org.gnome.desktop.input-sources sources
для редактирования сочетания клавиш для переключения языков вперед:
org.gnome.desktop.wm.keybindings switch-input-source
для переключения источника входного сигнала в обратном направлении:
org.gnome.desktop.wm.keybindings switch-input-source-backward
Команды для редактирования настроек
Примеры команд для редактирования трех из командной строки:
Для редактирования источников входных данных установите источники входных данных, как указано в вашем вопросе:
gsettings set org.gnome.desktop.input-sources sources "[('xkb', 'us'), ('xkb', 'it'), ('xkb', 'de')]"
чтобы установить комбинацию клавиш быстрого доступа switch- на Ctrl+space
gsettings set org.gnome.desktop.wm.keybindings switch-input-source "['<Primary>space']"
для установки сочетания клавиш switch- для переключения назад Shift+ Super+space
gsettings set org.gnome.desktop.wm.keybindings switch-input-source-backward "['<Shift><Super>space']"
Команды для получения текущих настроек
gsettings get org.gnome.desktop.input-sources sources
gsettings get org.gnome.desktop.wm.keybindings switch-input-source
gsettings get org.gnome.desktop.wm.keybindings switch-input-source-backward
Как найти эти ключи
Вы можете выполнить поиск по ключевым словам в базе данных, перечислив все ключи с помощью команды:
gsettings list-recursively
который выведет список всех существующих ключей или (что я регулярно делаю) установит dconf-editor
и просто найдет ваши ключевые слова с помощью Ctrl+ F.
Редактировать
По просьбе в комментарии я добавил небольшой скрипт для обхода источников ввода из командной строки:
#!/usr/bin/env python3
import subprocess
import sys
src = sys.argv[1]
key = "org.gnome.desktop.input-sources"
get = lambda cmd: subprocess.check_output(["/bin/bash", "-c", cmd]).decode("utf-8").strip()
src_list = len(eval(get("gsettings get "+key+" sources")))-1
current = int(get("gsettings get "+key+" current").split()[-1])
if src == "+":
set_new_value = "gsettings set "+key+" current "+(str(current+1) if current < src_list else "0")
elif src == "-":
set_new_value = "gsettings set "+key+" current "+(str(current-1) if current > 0 else str(src_list))
subprocess.Popen(["/bin/bash","-c", set_new_value])
Чтобы запустить его
- Сохраните скрипт в пустой файл как
switch_source.py
Запустите его командой:
python3 /path/to/switch_source.py +
чтобы перейти к следующему источнику входного сигнала, и
python3 /path/to/switch_source.py -
перейти к предыдущему