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

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

Preciso provisionar vários desktops Ubuntu 14.04/14.10. Consegui provisionar a maioria das coisas facilmente porque podem ser definidas em arquivos de configuração ou na linha de comando.

Mas estou tendo problemas com duas coisas: definir os idiomas disponíveis e definir os atalhos de teclado para alternar entre os idiomas. Eu sei como fazê-los degnome-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 isso a partir de arquivos de configuração ou linha de comando, então não posso provisioná-lo automaticamente.

Responder1

As chaves

As chaves que você procura são:

  1. para editar as fontes de entrada:

    org.gnome.desktop.input-sources sources
    
  2. para editar o atalho de teclado para alternar 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

Comandos de exemplo para editar os três na linha de comando:

  1. Para editar as fontes de entrada, para definir as fontes de entrada conforme mencionado na 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+space

    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+space

    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 palavras-chave no banco de dados listando todas as chaves com o comando:

gsettings list-recursively

que listará todas as chaves existentes ou (o que eu faço regularmente) instalará dconf-editore simplesmente encontrará suas palavras-chave com Ctrl+ F.


Editar

Conforme solicitado em um comentário, adicionei um pequeno script para percorrer as fontes de entrada na 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, comoswitch_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 -
    

    ir para o anterior

informação relacionada