設定ファイルまたはコマンドラインから言語/ショートカットを設定するにはどうすればいいですか?

設定ファイルまたはコマンドラインから言語/ショートカットを設定するにはどうすればいいですか?

複数の Ubuntu 14.04/14.10 デスクトップをプロビジョニングする必要があります。ほとんどのものは、構成ファイルまたはコマンド ラインから設定できるため、簡単にプロビジョニングできました。

しかし、利用可能な言語の設定と言語を切り替えるためのキーボードショートカットの設定という2つの点で問題があります。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
    

設定を編集するためのコマンド

コマンドラインから 3 つを編集するコマンドの例:

  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でキーワードを見つけるだけです。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 -
    

    前のページに戻る

関連情報