web-dev-qa-db-fra.com

Comment définir les langues / raccourcis à partir de fichiers de configuration ou en ligne de commande?

Je dois provisionner plusieurs ordinateurs de bureau Ubuntu 14.04/14.10. La plupart des choses que j'ai pu approvisionner facilement car elles peuvent être définies dans des fichiers de configuration ou à partir de la ligne de commande.

Mais deux problèmes me empêchent de régler les langues disponibles et les raccourcis clavier pour basculer entre les langues. Je sais comment les faire de gnome-control-center

  1. Définir les langues disponibles

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

  2. Définir les raccourcis clavier pour changer de langue

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

Mais je ne sais pas comment faire à partir de fichiers de configuration ou de ligne de commande, je ne peux donc pas le provisionner automatiquement.

2
user779159

Les clés

Les clés que vous recherchez sont:

  1. pour éditer les sources d'entrée:

    org.gnome.desktop.input-sources sources
    
  2. pour éditer le raccourci clavier pour changer de langue:

    org.gnome.desktop.wm.keybindings switch-input-source
    
  3. pour commuter la source d'entrée en arrière:

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

Les commandes pour éditer les paramètres

Exemple de commandes pour éditer les trois à partir de la ligne de commande:

  1. Pour modifier les sources d'entrée, définissez les sources d'entrée comme indiqué dans votre question:

    gsettings set org.gnome.desktop.input-sources sources "[('xkb', 'us'), ('xkb', 'it'), ('xkb', 'de')]"
    
  2. pour régler la combinaison de touches de raccourci clavier sur Ctrl+space

    gsettings set org.gnome.desktop.wm.keybindings switch-input-source "['<Primary>space']"
    
  3. pour définir la combinaison de touches de raccourci clavier pour basculer en arrière Shift+Super+space

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

Les commandes pour obtenir les paramètres actuels

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

Comment trouver ces clés

Vous pouvez rechercher des mots-clés dans la base de données en répertoriant toutes les clés à l'aide de la commande suivante:

gsettings list-recursively

qui listera toutes les clés existantes, ou (ce que je fais régulièrement) installe dconf-editor et trouve simplement vos mots-clés avec Ctrl+F.


Modifier

Comme demandé dans un commentaire, j'ai ajouté un petit script pour parcourir les sources d'entrée à partir de la ligne de commande:

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

Pour l'exécuter

  1. Enregistrez le script dans un fichier vide sous le nom switch_source.py
  2. Exécutez-le à l'aide de la commande:

    python3 /path/to/switch_source.py +
    

    pour aller à la source d'entrée suivante, et

    python3 /path/to/switch_source.py -
    

    aller au précédent

5
Jacob Vlijm