¿Cómo configurar idiomas/atajos desde archivos de configuración o línea de comando?

¿Cómo configurar idiomas/atajos desde archivos de configuración o línea de comando?

Necesito aprovisionar varios escritorios Ubuntu 14.04/14.10. La mayoría de las cosas las he podido aprovisionar fácilmente porque se pueden configurar en archivos de configuración o desde la línea de comandos.

Pero tengo problemas con 2 cosas: configurar los idiomas disponibles y configurar los atajos de teclado para cambiar entre idiomas. Sé cómo hacerlos desdegnome-control-center

  1. Establecer los idiomas disponibles

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

  2. Configurar los atajos de teclado para cambiar de idioma

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

Pero no sé cómo hacerlo desde los archivos de configuración o la línea de comandos, por lo que no puedo aprovisionarlo automáticamente.

Respuesta1

Las llaves

Las claves que buscas son:

  1. para editar las fuentes de entrada:

    org.gnome.desktop.input-sources sources
    
  2. para editar el método abreviado de teclado para cambiar de idioma hacia adelante:

    org.gnome.desktop.wm.keybindings switch-input-source
    
  3. para cambiar la fuente de entrada hacia atrás:

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

Los comandos para editar la configuración.

Comandos de ejemplo para editar los tres desde la línea de comando:

  1. Para editar las fuentes de entrada, para configurar las fuentes de entrada como se menciona en su pregunta:

    gsettings set org.gnome.desktop.input-sources sources "[('xkb', 'us'), ('xkb', 'it'), ('xkb', 'de')]"
    
  2. para establecer la combinación de teclas de acceso directo de interruptor en Ctrl+space

    gsettings set org.gnome.desktop.wm.keybindings switch-input-source "['<Primary>space']"
    
  3. para configurar la combinación de teclas de acceso directo para cambiar hacia atrás Shift+ Super+space

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

Los comandos para obtener la configuración actual.

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

Cómo encontrar estas claves

Puede buscar palabras clave en la base de datos enumerando todas las claves con el comando:

gsettings list-recursively

que enumerará todas las claves existentes, o (lo que hago regularmente) instalar dconf-editory simplemente encontrar sus palabras clave con Ctrl+ F.


Editar

Como se solicitó en un comentario, agregué un pequeño script para recorrer las fuentes de entrada desde la línea 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 ejecutarlo

  1. Guarde el script en un archivo vacío, comoswitch_source.py
  2. Ejecútelo con el comando:

    python3 /path/to/switch_source.py +
    

    para ir a la siguiente fuente de entrada y

    python3 /path/to/switch_source.py -
    

    para ir al anterior

información relacionada