구성 파일이나 명령줄에서 언어/단축키를 설정하는 방법은 무엇입니까?

구성 파일이나 명령줄에서 언어/단축키를 설정하는 방법은 무엇입니까?

여러 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. 스위치 바로가기 키 조합을 뒤로 전환하도록 설정하려면 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 -
    

    이전으로 가려면

관련 정보