Je voudrais un script bash qui bascule entre:
setxkbmap se
et setxkbmap us
.
Ensuite, mes intentions sont de mapper ce script CtrlEscvia le clavier> raccourcis personnalisés.
Le fait est que je veux changer la disposition du clavier avec CtrlEscape. Comment puis-je implémenter cela?
shell-script
x11
keyboard-layout
xkb
Fredrik
la source
la source
Réponses:
Je ne sais pas quel environnement de bureau vous exécutez, comment vous allez attribuer une touche de raccourci peut varier, mais ce script fonctionne globalement, au moins sur mon
Ubuntu 12.04 box
etArch Linux
:la source
xmodmap
comme dans ma réponse ci-dessous.setxkbmap
. Il en va de même si je change de disposition à l'aide d'un raccourci configuré via l'keyboard shortcuts
interface graphique de mon LMDE.setxkbmap
ne change que lorsque je change d’utilisation.Il existe différentes réponses à des questions similaires . Cependant, aucun d'entre eux ne fonctionne correctement pour moi.
Le script suivant devrait fonctionner dans tous les cas. Cela fonctionne certainement sur mon système Debian lors du changement de disposition avec
setxkbmap
:Le script analyse la sortie de xmodmap pour voir si la disposition actuelle est "us" ou "se". Dans la disposition "us", SHIFT+ 7est mappé sur "esperluette". Si vous basculez uniquement entre les dispositions "nous" et "se", le fait d'avoir "esperluette" 7signifie que vous utilisez la disposition "nous" et que le script passera à "se". Si vous n'avez pas "esperluette" activé 7, le script passe à "nous".
la source
la meilleure façon serait de ne pas utiliser de script, mais de charger un clavier à deux couches (ex :)
setxmodmap "us,se"
et de redéfinir le Ctrl- Escpour envoyer ISO_Next_GroupRegardez cette réponse sur xkb pour savoir comment redéfinir certaines clés sans avoir besoin de modifier les principaux fichiers par défaut (donc pas besoin d'être root). Dans le fichier de symboles locaux (par exemple:)
~/.xkb/symbols/mysymbols
mettez une petite section comme:PC_CONTROL_LEVEL2 indique que le symbole sencond pour cette clé est obtenu avec Control (au lieu de Shift).
et dans le fichier keymap local (par exemple:;
~/.xkb/keymap/mykbd
vous pouvez le créer avecsetxkbmap "us,se" ; setxkbmap -print > ~/.xkb/keymap/mykbd
) changez la ligne xkb_symbols pour ajouter "mysymbols (ctr_esc_toggle)" afin que vous ayez quelque chose comme:(notez le "se: 2", le ": 2" indique de charger les définitions des symboles "se" en tant que Groupe2; vous pouvez empiler différents groupes).
vous pouvez maintenant le charger avec:
xkbcomp -I$HOME/.xkb ~/.xkb/keymap/mykbd $DISPLAY
alors Ctrl-Esc bascule entre les dispositions "us" et "se".NOTEZ cependant que vous devez appuyer sur Ctrl (et maintenir) avant Esc; dans l'autre sens, cela ne fonctionne pas (il faudrait définir un modificateur virtuel pour Escape, et je ne sais pas comment le faire)
la source
leftwin+leftalt+space
ressemblerait?{ include "pc+us+ru:2+inet(evdev)+group(win_space_toggle)" };