Comment xkb ou un autre outil peut-il être utilisé pour lier de façon permanente le verrouillage des majuscules à ctrl+b en terminal?
(C'est pour faire Caps Lock la clé de préfixe par défaut pour tmux. Il peut également être associé à une clé spécifique si cela est trop difficile, par exemple. une touche de fonction, qui pourrait alors être convertie en préfixe tmux.)
XKB conviendra aux interfaces graphiques Xwindows ou Wayland. Cela n'affectera pas les consoles virtuelles, mais les émulateurs de terminaux GUI iront bien. Pour le contexte XKB, je vous indiquerai certains (vue d'ensemble, système ou utilisateur) .. autres (options personnalisées) .. réponses (règles personnalisées) .
Ce qui suit vous permettra d’ajouter une nouvelle option telle que caps:myf13
à une mise en page XKB existante avec tous les outils que vous utiliseriez normalement (setxkbmap
, localectl
paramètres, le panneau GNOME, etc.).
Les options de verrouillage XKB existantes sont répertoriées dans /usr/share/X11/xkb/rules/evdev.lst
. En regardant les options correspondantes dans le fichier .../rules/evdev
, vous pouvez voir qu'elles sont toutes chargées à partir du fichier .../symbols/capslock
. Ce sont toutes des touches de modification, qui ne sont probablement pas le meilleur exemple, mais caps:backspace
pourrait être une bonne comparaison. En regardant le fichier, nous trouvons la strophe définissant cette option:
hidden partial modifier_keys
xkb_symbols "backspace" {
key <CAPS> { [ BackSpace ] };
};
grep
dans les autres fichiers de symboles, nous pouvons voir que le symbole F13 est simplement F13
. La nouvelle strophe option pourrait ressembler à ceci:
hidden partial modifier_keys
xkb_symbols "myf13" {
key <CAPS> { [ F13 ] };
};
Comme vous pouvez le constater, nous n’avons changé que le nom de l’option et le symbole attribué à la touche.
La seule chose qui reste à faire est de brancher la nouvelle strophe. Sur un système Xwindows de base, en utilisant des outils en ligne de commande tels que setxkbmap
et xkbcomp
, un emplacement d'utilisateur personnalisé fera l'affaire; pour GNOME, KDE ou un système Wayland, vous devez apporter vos modifications à la base de données XKB du système.
À titre d'exemple pour les modifications du système (vous aurez besoin de Sudo
accès pour créer ou modifier ces fichiers):
Placez la strophe personnalisée dans un nouveau fichier de symbole, par exemple /usr/share/X11/xkb/symbols/mycaps
.
Ajoutez ceci à /usr/share/X11/xkb/rules/evdev
juste en dessous de la ligne pour caps:backspace
:
caps:myf13 = +mycaps(myf13)
... ajouter à /usr/share/X11/xkb/rules/evdev.lst
:
caps:myf13 Caps Lock is F13
... ajouter à /usr/share/X11/xkb/rules/evdev.xml
:
<option>
<configItem>
<name>caps:myf13</name>
<description>Caps Lock is F13</description>
</configItem>
</option>
Enfin, effectuez des sauvegardes de vos fichiers .../rules/evdev*
ou créez un fichier de correctif. Vos modifications seront écrasées à chaque mise à jour du package xkb-data
. Si vous avez enregistré votre strophe de modification dans le fichier .../symbols/capslock
, elle devra également être sauvegardée.
Une fois ces modifications effectuées, vous devriez pouvoir définir cette option comme s'il s'agissait d'une autre option XKB. Vous devrez peut-être redémarrer une session GNOME/KDE pour que les panneaux de contrôle enregistrent les modifications, mais des outils tels que setxkbmap
devraient le trouver immédiatement: setxkbmap -option caps:myf13