Como usar Mode_switch e xmodmap nas versões atuais do Ubuntu?

1

Durante anos, usei o seguinte arquivo ~/.Xmodmap para obter rapidamente os trechos alemães, por exemplo quando eu pressionar o ALT_R + a recebo ä . Um bom atalho em comparação com o uso da tecla de composição:

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

Observação: estou usando o Teclado Happy Hacker , que não possui a chave ALT_GR . O keycode 108 é enviado pela tecla ALT direita e Mode_switch geralmente corresponde ao 2º e 3º valores acima.

Desde 17.10 todas as combinações resultam apenas em um som de aviso, nada mais acontece. Eu notei o mesmo no Fedora 27, então talvez ele esteja relacionado a novas configurações do xkb e / ou ao Gnome Shell?

Alguma idéia de como posso arquivar isso nas configurações atuais do Gnome Shell ?

    
por Brutus 16.02.2018 / 18:22

1 resposta

2

Graças a Gunnar Hjalmarsson , encontrei informação suficiente em esta resposta . Aqui está o que eu fiz:

Para incluir algumas novas configurações de chave, adicionei isso ao final 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)"
};

E para ter uma variante, posso selecionar Configurações > Região & amp; Idioma , adicionei o seguinte para o final da variantList para English (US) neste XML arquivo /usr/share/X11/xkb/rules/evdev.xml :

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

Após um sudo systemctl restart keyboard-setup.service , eu poderia selecionar o novo variante de layout de Configurações > Região & amp; Idioma .

    
por Brutus 18.02.2018 / 19:17