3 votes

Xmodmap - remappez Caps_Lock en Escape et Shift+Caps_Lock en Caps_Lock

Je rencontre un comportement étrange avec xmodmap. Je veux remapper Caps_Lock pour qu'il agisse comme Escape et Shift+Caps_Lock pour qu'il agisse comme Caps_Lock. Dans mon fichier ~/.Xmodmap, j'ai essayé toutes les combinaisons possibles des commandes suivantes, toujours avec le même résultat:

clear Lock
remove Lock = Caps_Lock
keycode 66 =
keycode 66 = Escape Caps_Lock
keysym Caps_Lock = Escape Caps_Lock

Le Caps_Lock est correctement remappé en Escape

$ xmodmap -pke | grep Caps
keycode  66 = Escape Caps_Lock Escape Caps_Lock

MAIS après le redémarrage, il bloque toujours les MAJ. Donc il agit à la fois comme Escape et Caps_Lock. En exécutant xev, je peux voir que l'état bascule entre 0x10 et 0x12. Alors que Shift+Caps_Lock fonctionne comme prévu (comme Caps_Lock). Si j'exécute xmodmap ~/.Xmodmap dans mon terminal après la connexion, j'obtiens ceci comme avant:

$ xmodmap -pke | grep Caps
keycode  66 = Escape Caps_Lock Escape Caps_Lock

MAIS Caps_Lock commence à se comporter comme prévu, uniquement comme Escape et ne bloque plus les MAJ.

Je ne comprends vraiment pas ce que je fais de travers.

2voto

Carlos Points 11

Enfin trouvé un moyen de faire fonctionner cela. J'ai découvert que l'extension de clavier X offre une option pour cela. En regardant /usr/share/X11/xkb/rules/base.lst j'ai trouvé la ligne suivante :

caps:escape_shifted_capslock Faites du verrouillage des majuscules un Esc supplémentaire non modifié, mais Maj + Verouillage des majuscules se comporte comme un Verrouillage des majuscules régulier

Il me suffisait donc simplement d'ajouter caps:escape_shifted_capslock à XkbOptions à l'intérieur de /etc/X11/xorg.conf.d/00-keyboard.conf de cette manière :

Option "XkbOptions" "terminate:ctrl_alt_bksp,caps:escape_shifted_capslock"

Après le redémarrage, Caps_Lock et Shift+Caps_Lock se comportaient exactement comme je le voulais.

1voto

leto Points 11

J'ai suivi l'exemple du xmodmap wiki pour 'CapsLock to Control and Shift+CapsLock to CapsLock' et ça a fonctionné.

clear lock
keycode 66 = Escape Caps_Lock NoSymbol NoSymbol

Vous devrez peut-être vous déconnecter et vous reconnecter.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X