Je veux mélanger quelques clés avec XKB. (Pourquoi ? Sur un ordinateur portable où certaines touches sont mal situées.) J'utilise actuellement xmodmap :
keycode 110 = Prior
keycode 115 = Delete
keycode 112 = Next
keycode 117 = Insert
keycode 119 = End
keycode 118 = Home
Au lieu de cela, je souhaite utiliser XKB et attribuer différents noms symboliques à certaines clés physiques, plutôt que d'attribuer différents keysyms à certains codes clés. (C'est pourquoi.) Je veux que le code d'accès 110 envoie PGUP
au lieu de HOME
, keycode 115 pour envoyer DELE
au lieu de END
, etc. Le reste de la configuration ne doit pas être affecté (donc PGUP
est de continuer à envoyer le keysym Prior
, etc., et toutes les autres clés restent telles quelles).
Comment puis-je modifier l'attribution de ces codes d'activation spécifiques ? Je vais charger un fichier avec xkbcomp somefile.xkb $DISPLAY
, que dois-je mettre dans somefile.xkb
?
Réponse acceptée :
Créez un fichier contenant vos modifications de code d'activation et enregistrez-le sous (par exemple) ~/.xkb/keycodes/local
. (Les keycodes
le répertoire est codé en dur ; le répertoire de base peut être autre chose, et le nom du fichier aussi.) Cela contiendra dans votre cas
xkb_keycodes {
<PGUP> = 110;
<PGDN> = 112;
<DELE> = 115;
<INS> = 117;
<HOME> = 118;
<END> = 119;
};
Pour charger ceci, exécutez
setxkbmap -print | sed -e '/xkb_keycodes/s/"[[:space:]]/+local&/' | xkbcomp -I${HOME}/.xkb - $DISPLAY
Cela affiche vos paramètres actuels, ajoute +local
aux xkb_keycodes
include
et la charge dans le compilateur XKB, en ajoutant ~/.xkb
au chemin d'inclusion. (Si vous avez nommé votre fichier autrement que ~/.xkb/keycodes/local
, vous devrez évidemment changer +local
et -I${HOME}/.xkb}
.) De cette façon, tous les autres paramètres sont conservés.