web-dev-qa-db-fra.com

Comment mapper la touche de verrouillage des majuscules sur Left Alt dans Ubuntu +18?

Je cherchais un moyen de résoudre le problème susmentionné.

J'ai essayé

xmodmap -e "keycode 66 = Alt_L"

mais apparemment, le résultat est que le CapsLock la clé est mappée sur Left-SHIFT, qui n’est pas le comportement souhaité.
D'après mes recherches, j'ai compris que xmodmap est obsolète et que je devrais utiliser setxkbmap à la place. Cependant, j’ai trouvé très difficile de remapper une clé qui ne fait pas partie des options par défaut de xkb (par exemple, je pourrais mapper CapsLock à Left-CTRL mais pas à Left-ALT).

Comment puis-je utiliser setxkbmap pour atteindre cet objectif?

1
Daniel

J'ai commencé à examiner les solutions de ici et ici , mais je ne pouvais pas les faire fonctionner.

J'ai trouvé la solution ici:

https://unix.stackexchange.com/questions/9635/how-to-assign-another-modifier-to-alt-key-for-x11

Il réalise ce que je cherchais, bien que d'une manière plutôt laide (je préférerais vraiment créer une nouvelle option xkb avec cette nouvelle cartographie, mais je ne pouvais pas faire ce travail)


Mettre à jour

La solution ci-dessus ne me permet pas de garder deux clés différentes pour LALT. Au lieu de cela, j'ai suivi la directive this avec la définition de symbole suivante:

// This changes the <CAPS> key to become an Alt modifier,
// but it will still produce the Caps_Lock keysym.
hidden partial modifier_keys
xkb_symbols "alt" {
    replace key <CAPS> {
        type[Group1] = "ONE_LEVEL",
        symbols[Group1] = [ Caps_Lock ],
        actions[Group1] = [ SetMods(modifiers=Mod1) ]
    };
    modifier_map Mod1 { <CAPS> };
};
1
Daniel