Remappage du verrouillage des majuscules et du Maj + verrouillage des majuscules dans xkb


13

J'essaie de configurer xkb de telle sorte que le verrouillage des majuscules soit mappé à la touche Composer et que les fonctions Maj + Verrouillage des majuscules fonctionnent comme le verrouillage des majuscules traditionnel. J'ai mis ce qui suit dans un nouveau fichier appelé /usr/share/X11/xkb/symbols/gdwatson:

partial modifier keys
xkb_symbols "compose" {
    key <CAPS> {
        type[Group1] = "TWO_LEVEL",
        symbols[Group1] = [ Multi_key, Caps_Lock ]
    };
};

Puis j'ai couru setxkbmap -symbols 'pc+us+gdwatson(compose)', ce qui s'est terminé avec succès. Le verrouillage des majuscules fonctionne en tant que composition, mais Shift + majuscule fonctionne en tant que composition au lieu du verrouillage des majuscules. xkbcomp :0.0révèle ce qui suit:

key <CAPS> {
    type= "TWO_LEVEL",
    symbols[Group1]= [       Multi_key,       Multi_key ]
};

Le mappage de symboles de deuxième niveau duplique le premier pour une raison quelconque, plutôt que la valeur distincte que j'ai essayé de lui donner. Quelqu'un a-t-il suffisamment de xkb-fu pour me dire ce que j'ai fait de mal ou comment y remédier?


1
Je peux vous aider à le faire dans Xmodmap, mais pas dans xkb. Si vous le souhaitez, répondez positivement (n'oubliez pas d'écrire @mirabilosdans votre réponse donc je le remarque) dans un commentaire, alors je supprimerai ce commentaire et l'écrirai comme réponse (vous devriez également supprimer également votre réponse de commentaire).
mirabilos

1
Sur votre première ligne, devrait en partial modifier keysfait l'être partial modifier_keys? Sans ce changement, setxkbmap -symbols 'pc+us+gdwatson(compose)'se termine en fait avec une erreur, mais avec le changement, j'obtiens la sortie souhaitée xkbcomp :0.0. Cependant, j'obtiens l'effet secondaire indésirable que le fait d'appuyer simultanément sur Capslock me place en mode Capslock et compose le mode clé.
billyjmc

Réponses:


11

Cela semble accomplir ce que vous recherchez.

partial modifier_keys
xkb_symbols "compose" {
    key <CAPS> {
        type[Group1] = "TWO_LEVEL",
        symbols[Group1] = [ Multi_key, Caps_Lock ],
        actions[Group1] = [ NoAction(), LockMods(modifiers=Lock) ]
    };
};

Les ressources suivantes sont inestimables lorsque vous traitez avec XKB (je me suis lié aux miroirs de la machine WayBack de ces pages pour une protection future):


De plus, si vous faites la première ligne default partial modifier_keys, vous n'avez pas besoin de le spécifier explicitement setxkbmap -symbols 'pc+us+gdwatson(compose)', vous pouvez simplement le fairesetxkbmap -symbols 'pc+us+gdwatson'
billyjmc
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.