web-dev-qa-db-fra.com

Comment utiliser Mode_switch et xmodmap dans les versions actuelles d'Ubuntu?

Pendant des années, j’ai utilisé le fichier ~/.Xmodmap suivant pour obtenir rapidement des trémas allemands, par exemple. Lorsque j'appuie sur le ALT_R + a, je reçois ä. Un raccourci sympa comparé à l'utilisation de la touche de composition:

keycode 108 = Mode_switch
keycode  38 = a A adiaeresis Adiaeresis adiaeresis Adiaeresis
keycode  30 = u U udiaeresis Udiaeresis udiaeresis Udiaeresis
keycode  32 = o O odiaeresis Odiaeresis odiaeresis Odiaeresis
keycode  39 = s S ssharp ssharp ssharp ssharp
keycode  20 = minus underscore endash endash endash endash
keycode  60 = period greater Ellipsis ellipsis Ellipsis ellipsis
keycode  61 = slash question emdash emdash emdash emdash

Note: J'utilise le clavier de Happy Hacker , qui n'a pas de touche ALT_GR. Le keycode 108 est envoyé par la touche ALT droite et Mode_switch correspond généralement aux 2e et 3e valeurs ci-dessus.

Depuis 17h10, toutes les combinaisons produisent uniquement un son d’avertissement, rien d’autre ne se produit. J'ai remarqué la même chose sur Fedora 27, alors c'est peut-être lié à de nouveaux paramètres xkb et/ou à un shell Gnome?

Des idées comment je peux archiev ceci sous les configurations courantes Gnome Shell?

1
Brutus

Grâce à Gunnar Hjalmarsson , j'ai trouvé suffisamment d'informations dans cette réponse . Voici ce que j'ai fait:

Pour inclure de nouveaux paramètres de clé, j'ai ajouté ceci à la fin de /usr/share/X11/xkb/symbols/us:

partial alphanumeric_keys
xkb_symbols "us-de" {

    // include all the definitions from us(basic), I just want to add to it

    include "us(basic)"
    name[Group1]= "English (US, with german umlauts)";

    // add german umlauts

    key <AC01> {    [     a,    A,  adiaeresis, Adiaeresis      ]   };
    key <AD07> {    [     u,    U,  udiaeresis, Udiaeresis      ]   };
    key <AD09> {    [     o,    O,  odiaeresis, Odiaeresis      ]   };
    key <AC02> {    [     s,    S,  ssharp,     ssharp          ]   };

    // and some other keys

    key <AE11> {    [     minus,    underscore, endash, endash  ]   };
    key <AB09> {    [    period,    greater,    Ellipsis,   Ellipsis    ]   };
    key <AB10> {    [     slash,    question,   emdash, emdash  ]   };

    // have ALT_R as level 3 switch

    include "level3(ralt_switch)"
};

Et pour avoir une variante, je peux choisir entre Paramètres> Région et langue , j'ai ajouté ce qui suit à la fin du variantList pour English (US) dans ce fichier XML /usr/share/X11/xkb/rules/evdev.xml:

<variant>
<configItem>
    <name>us-de</name>
    <description>English (US, with german umlauts)</description>
</configItem>
</variant>

Après un Sudo systemctl restart keyboard-setup.service je pouvais sélectionner la nouvelle variante de présentation parmi Paramètres> Région et langue .

3
Brutus