如何從設定檔或命令列設定語言/捷徑?

如何從設定檔或命令列設定語言/捷徑?

我需要配置多個 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)

但我不知道如何從設定檔或命令列執行操作,因此我無法自動配置它。

答案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. 設定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找到您的關鍵字。CtrlF


編輯

根據評論中的要求,我添加了一個小腳本來從命令列遍歷輸入來源:

#!/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 -
    

    轉到上一個

相關內容