Как установить языки / ярлыки из конфигурационных файлов или командной строки?

Мне нужно подготовить несколько рабочих столов Ubuntu 14.04 / 14.10. Большинство вещей, которые я смог легко подготовить, потому что они могут быть установлены в конфигурационных файлах или из командной строки.

Но у меня проблемы с двумя вещами: настройка доступных языков и настройка сочетаний клавиш для переключения между языками. Я знаю, как это сделать из gnome-control-center

  1. Установить доступные языки

    Region & Language > Input Sources > English (US) + German + Italian

  2. Установить клавиатуру сочетания клавиш для переключения языков

    Shortcut Settings > Typing > Switch to next source (Super+Escape), Switch to previous source (Shift+Super+Escape)

Но я не знаю, как это сделать из файлов конфигурации или командной строки, поэтому я не могу подготовить его автоматически.

2
задан 2 April 2015 в 17:05

1 ответ

Ключи

Ключи, которые Вы ищете:

  1. для редактирования входных источников:

    org.gnome.desktop.input-sources sources
    
  2. для редактирования сочетания клавиш для переключения языков вперед:

    org.gnome.desktop.wm.keybindings switch-input-source
    
  3. для переключения входного источника назад:

    org.gnome.desktop.wm.keybindings switch-input-source-backward
    

Команды для изменения настроек

Пример управляет для редактирования трех из командной строки:

  1. Для редактирования входных источников, для установки входных источников, как упомянуто в вопросе:

    gsettings set org.gnome.desktop.input-sources sources "[('xkb', 'us'), ('xkb', 'it'), ('xkb', 'de')]"
    
  2. установить переключатель - комбинация сочетания клавиш к Ctrl+space

    gsettings set org.gnome.desktop.wm.keybindings switch-input-source "['<Primary>space']"
    
  3. установить переключатель - комбинация сочетания клавиш для переключения обратного 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])

Выполнять его

  1. Сохраните сценарий, в пустой файл, как switch_source.py
  2. Выполните его командой:

    python3 /path/to/switch_source.py +
    

    перейти к следующему входному источнику, и

    python3 /path/to/switch_source.py -
    

    перейти к предыдущему

5
ответ дан 2 April 2015 в 17:05

Другие вопросы по тегам:

Похожие вопросы: