web-dev-qa-db-fra.com

Comment changer la disposition du clavier à partir de la ligne de commande (setxkbmap rompt tous les raccourcis)

Existe-t-il un moyen de modifier la configuration du clavier actuellement actif dans Cinnamon, à partir de la ligne de commande?

La solution setxkbmap proposée par la plupart des guides ne fonctionne pas exactement comme on le suppose: si on l'appelle, l'indicateur de langue dans Cinnamon lui-même disparaît et les combinaisons existantes configurées dans Cinnamon ne fonctionnent plus. . Pour restaurer cette fonctionnalité, vous devez accéder aux paramètres et réactiver n’importe quel paramètre de disposition du clavier.

De plus, la manière dont setxkbmap semble changer la mise en page est de nature inférieure, contrairement à Cinnamon: par exemple, si vous modifiez une mise en page en une version non latine, en utilisant setxkbmap, Les combinaisons de touches par défaut dans l'ensemble du système cessent de fonctionner. (facilement testé avec Ctrl-C). Cela ne se produit jamais avec le changement de présentation natif à partir de Cinnamon. Il semble que setxkbmap fonctionne à un niveau inférieur à celui attendu par la plupart des applications.

Existe-t-il un moyen de modifier la mise en page de manière native, Cinnamon (ou gnome, car elle est basée sur celle-ci?) Et de conserver les combinaisons de clavier actives?

(Une autre solution généralement proposée est gsettings set org.gnome.desktop.input-sources current 0, qui ne fonctionne pas non plus dans Cinnamon actuelle (rien ne se produit)).

J'ai bien sûr testé tous les index possibles, jusqu'à 10, même si je n'ai ajouté que 3 mises en page pour le moment. La variable mentionnée ne semble pas changer non plus lorsque les présentations sont modifiées manuellement. J'ai également essayé la variable similaire qui existe dans l'environnement Cinnamon, org.cinnamon.desktop.input-sources, mais cela n'affecte rien non plus (exactement de la même manière que la version de gnome).

2
Cray

La meilleure solution consiste actuellement à utiliser ce programme externe (xkb-switch) qui accepte les arguments de ligne de commande et à le scripter dans xbindkeys ou quelque chose de similaire.

Bien que non officiel, externe et écrit dans un langage compilable, il est en fait assez facile à installer car il n’a presque aucune dépendance.

https://github.com/ierton/xkb-switch

$ xkb-switch --help

Usage: xkb-switch -s ARG            Sets current layout group to ARG
       xkb-switch -l|--list         Displays all layout groups
       xkb-switch -h|--help         Displays this message
       xkb-switch -v|--version      Shows version number
       xkb-switch -w|--wait [-p]    Waits for group change and exits
       xkb-switch -W                Infinitely waits for group change
       xkb-switch -n|--next         Switch to the next layout group
       xkb-switch [-p]              Displays current layout group

Utilisé comme:

xkb-switch -s us
xkb-switch -s de
etc...

Cette solution:

  • Fonctionne en ligne de commande.
  • Est rapide, l'invocation de ce programme n'introduit aucun délai (par opposition à la commutation de la disposition setxkbmap).
  • Bascule correctement l’indicateur de disposition intégré dans la zone des icônes de la barre des tâches. (L’indicateur ne disparaît pas ou ne fonctionne plus, comme avec setxkbmap.)
  • Ne vissez pas le clavier sur le lockscreen, empêchant la saisie du bon mot de passe si une mauvaise disposition avait été choisie avant le verrouillage (tout comme setxkbmap).
  • Ne modifie pas les combinaisons de touches principales comme Ctrl-C, Ctrl-V: elles fonctionnent toujours avec les mêmes touches, même dans des dispositions différentes (étant différent de, bien que vous ayez l'idée, setxkbmap).
  • Met à l’honneur tous les mécanismes de mise en page de Cinnamon, comme l’utilisation de la même mise en page pour toutes les fenêtres ou d’une mise en page individuelle par fenêtre. (Devinez si setxkbmap le fait?)

Les instructions d'installation sont sur le Github.

0
Cray