xmodmap
est obsolète; en effet, cela devrait être fait avec les xkb
outils.
L'échange que vous souhaitez ne semble pas être inclus par défaut avec les fichiers X11; vous devez donc l'écrire vous-même.
La page http://madduck.net/docs/extending-xkb/ m'a aidé à comprendre et à trouver un moyen de le faire.
Créez un fichier ~/.xkb/keymap/mykbd
où vous mettez la sortie de setxkbmap
, ce sera votre définition de clavier de base; par exemple:
setxkbmap -print > ~/.xkb/keymap/mykbd
ensuite, créez un fichier de symboles pour définir votre échange de clés, mettez-le par exemple dans ~/.xkb/symbols/myswap
là, mettez les lignes suivantes:
partial modifier_keys
xkb_symbols "swap_l_shift_ctrl" {
replace key <LCTL> { [ Shift_L ] };
replace key <LFSH> { [ Control_L ] };
};
puis modifiez le ~/.xkb/keymap/mykbd
fichier et modifiez la xkb_symbols
ligne à ajouter
+myswap(swap_l_shift_ctrl)
enfin, vous pouvez le charger avec xkbcomp -I$HOME/.xkb ~/.xkb/keymap/mykbd $DISPLAY
(vous ne pouvez pas utiliser "~" pour le -I
paramètre). Il crachera probablement beaucoup d'avertissements sur les symboles non définis pour certaines clés rares, mais vous pouvez les ignorer (par exemple, rediriger l'erreur vers dave:) 2> /dev/null
.
Si vous voulez pouvoir basculer facilement entre un normal et un inversé ctrl / shift; il suffit de créer sous ~/.xkb/keymap/
un autre fichier, sans l'option "myswap" supplémentaire, et de le charger avec xkbcomp
. Vous pouvez créer deux petits scripts pour les charger.