web-dev-qa-db-fra.com

Touche personnalisée pour changer la disposition du clavier

Je veux régler la clé pour basculer la langue de mon clavier sur "` "mais je n'ai pas cette option dans" Disposition du clavier "dans Unity, dans Ubuntu 12.04. J'ai déjà vu cette réponse mais cela ne m'aide pas. Pouvez-vous me dire comment utiliser setxkbmap? (si c'est le chemin à parcourir). Merci!

4

Voici un moyen simple de le faire, mais vous ne pouvez utiliser que les raccourcis. Ouvrez "Paramètres système" -> "Clavier". Cliquez sur "Paramètres de mise en page", près du bas. Cliquez sur le bouton + pour ajouter les langues dont vous avez besoin. Cliquez ensuite sur "Options ...". Vous pouvez y définir les combinaisons de touches dont vous avez besoin en sélectionnant "Clé (s) pour modifier la disposition". Si vous le souhaitez, vous pouvez également choisir d’utiliser un voyant du clavier pour indiquer que vous utilisez une autre disposition (telle que le verrou de défilement) sous "Utiliser le voyant du clavier pour afficher une autre disposition".

Voici la manière légèrement plus impliquée, mais vous donnera plus de flexibilité pour la combinaison de touches. Tout d’abord, copiez et collez ce script que j’ai écrit et appelez-le comme kb_toggle.sh. Assurez-vous de modifier LANG1 et LANG2 afin qu’ils correspondent aux codes de configuration de clavier nécessaires.

#!/bin/bash

LANG1="us"
LANG2="de"
CURRENT_LANG=$(setxkbmap -query | tail -n 1 | cut -f6 -d ' ')
if [ "$CURRENT_LANG" = $LANG1 ]; then
    setxkbmap $LANG2
else
    setxkbmap $LANG1
fi

créez le fichier en faisant un clic droit dessus -> "Propriétés" -> onglet "Autorisations", puis sélectionnez "Autoriser l'exécution du fichier en tant que programme.".

Ouvrez maintenant les "Paramètres système" -> "Clavier" -> "Raccourcis" et sélectionnez "Raccourcis personnalisés". Cliquez sur le bouton + en bas et nommez le raccourci "Basculement du clavier" ou ce que vous voulez, vraiment. Indiquez ensuite le chemin d'accès complet au script que vous avez défini précédemment dans la zone de commande. Appuyez sur Appliquer. Cliquez à l'endroit où il est écrit "Désactivé". Vous pouvez alors définir le raccourci comme bon vous semble en cliquant sur votre combinaison de touches!

Une dernière chose. Je ne pense pas que cela vous permettra de définir une seule clé, comme "", you may have to do SHIFT+" ou quelque chose du genre.

4
reverendj1

Premièrement: Merci beaucoup Reverendj1 pour votre script - vous êtes génial! J'ai eu du mal à trouver une réponse quant à la raison pour laquelle les sélections "clé (s) de changement de disposition" sont totalement ignorées. Comme Dimitris l'a dit, ce n'est pas une réponse, mais c'est un bon travail.

Important: je devais changer une chose sur votre script.
- Dans 12.04, ma dernière ligne de la sortie setxkbmap -query affiche "options: grp: ...". Donc, j'ai utilisé un tuyau pour grep "layout" au lieu de la commande "tail -n1". Donc, le script ressemble à ceci:

 #!/bin/bash 
 LANG1 = "us" 
 LANG2 = "de" 
 # CURRENT_LANG = $ (setxkbmap -query | tail -n 1 | cut -f6 -d '') # OLD LINE 
 CURRENT_LANG = $ (setxkbmap -query | | grep "layout" | cut -f6 -d '') 
 if ["$ CURRENT_LANG" = $ LANG1]; puis 
 setxkbmap $ LANG2 
 sinon 
 setxkbmap $ LANG1 
 fi 

NB: Si quelqu'un change le nombre d'espaces dans la ligne "layout: us", l'option -f6 ne retournera pas "us". Cela devra probablement être corrigé à l'avenir.

Encore une fois, merci beaucoup pour ce correctif. Je peux travailler beaucoup plus efficacement maintenant. ** Désolé, c'était trop verbeux

1
coredump1101