Como definir idiomas / atalhos de arquivos de configuração ou linha de comando?

2

Eu preciso provisionar vários desktops do Ubuntu 14.04 / 14.10. A maioria das coisas que eu pude provisionar facilmente, porque elas podem ser definidas em arquivos de configuração ou pela linha de comando.

Mas estou tendo problemas com duas coisas, definindo os idiomas disponíveis e configurando os atalhos de teclado para alternar entre os idiomas. Eu sei como fazê-las a partir de gnome-control-center

  1. Defina os idiomas disponíveis

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

  2. Defina os atalhos de teclado para alternar idiomas

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

Mas não sei como fazer a partir de arquivos de configuração ou linha de comando, por isso não posso provisioná-lo automaticamente.

    
por user779159 02.04.2015 / 16:05

1 resposta

4

As teclas

As chaves que você está procurando são:

  1. para editar as fontes de entrada:

    org.gnome.desktop.input-sources sources
    
  2. para editar o atalho de teclado para alternar entre idiomas:

    org.gnome.desktop.wm.keybindings switch-input-source
    
  3. para mudar a fonte de entrada para trás:

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

Os comandos para editar as configurações

Exemplo de comandos para editar os três da linha de comando:

  1. Para editar as fontes de entrada, defina as fontes de entrada conforme mencionado em sua pergunta:

    gsettings set org.gnome.desktop.input-sources sources "[('xkb', 'us'), ('xkb', 'it'), ('xkb', 'de')]"
    
  2. para definir a combinação de teclas de atalho para Ctrl + espaço

    gsettings set org.gnome.desktop.wm.keybindings switch-input-source "['<Primary>space']"
    
  3. para definir a combinação de teclas de atalho para alternar para trás Shift + Super + espaço

    gsettings set org.gnome.desktop.wm.keybindings switch-input-source-backward "['<Shift><Super>space']"
    

Os comandos para obter as configurações atuais

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

Como encontrar essas chaves

Você pode pesquisar por palavras-chave no banco de dados listando todas as chaves com o comando:

gsettings list-recursively

que irá listar todas as chaves existentes, ou (o que faço regularmente) instalar dconf-editor e simplesmente encontrar sua (s) palavra (s) -chave com Ctrl + F . p>

Editar

Conforme solicitado em um comentário, adicionei um pequeno script para percorrer as origens de entrada da linha de comando:

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

Para executá-lo

  1. Salve o script em um arquivo vazio, como switch_source.py
  2. Execute-o pelo comando:

    python3 /path/to/switch_source.py +
    

    para ir para a próxima fonte de entrada e

    python3 /path/to/switch_source.py -
    

    para ir para o anterior

por Jacob Vlijm 02.04.2015 / 17:07