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.
xkbcomp $DISPLAY some.dump
après et avant d'appeler IBus, et faites un diff des deux vidages (ce sont la définition complète du clavier); vous verrez probablement des différences.setxkbmap -option caps:escape
fonctionne. IBus s'est souvenu des touches échangées Esc et Caps_Lock, mais cela ne s'applique pas aux touches de décalage gauche et de contrôle gauche.J'ai rencontré des problèmes liés
LALT
à l'Control_L
utilisation de la solution de Pablo , il semble que vous devez également définir lesmodifier_map
options.J'ai copié un modèle depuis
/usr/share/X11/xkb/symbols/altwin
- chercherxkb_symbols "ctrl_alt_win"
- et l' ai modifié pour définir les changements suivants:Le
~/.xkb/symbols/myswap
dossier final était:J'ai également ajouté
-w0
à laxkbcomp
commande pour éviter toute sortie d'avertissement lors de l'ouverture d'un nouveau shell.** En passant beaucoup entre Mac et Linux, j'aime avoir deux touches de contrôle sur Linux pour approximer le clavier Mac pour ma mémoire musculaire.
la source