Como posso alterar uma tecla do teclado subutilizada em uma tecla modificadora

4

Eu tenho um teclado coreano que se parece com isso:

Ahanja(한자),àesquerdadeespaço,étãopoucoutilizada,mesmoquandoseestádigitandoemcoreano,maséumapropriedaderealparaomeupolegaresquerdo.comouma chave mod do gerenciador de janelas do i3 . Isso irá liberar Alt para uso no meu editor de código.

Minha pergunta é: Como posso transformar a chave Hanja em uma tecla modificadora?

Eu verifiquei a chave com xev :

KeyPress event, serial 32, synthetic NO, window 0x2200001,
    root 0x281, subw 0x0, time 11955968, (-132,626), root:(491,646),
    state 0x0, keycode 131 (keysym 0xff34, Hangul_Hanja), same_screen YES,
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyRelease event, serial 32, synthetic NO, window 0x2200001,
    root 0x281, subw 0x0, time 11955968, (-132,626), root:(491,646),
    state 0x20, keycode 131 (keysym 0xff34, Hangul_Hanja), same_screen YES,
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False

Keycode 131 = 0x83

Da saída de xmodmap , vejo que mod3 está disponível.

shift       Shift_L (0x32),  Shift_R (0x3e)
lock        Caps_Lock (0x42)
control     Control_L (0x25),  Control_R (0x69)
mod1        Alt_L (0x40),  Alt_R (0x6c),  Meta_L (0xcd)
mod2        Num_Lock (0x4d)
mod3      
mod4        Super_L (0x85),  Super_R (0x86),  Super_L (0xce),  Hyper_L (0xcf)
mod5        ISO_Level3_Shift (0x5c),  Mode_switch (0xcb)

Eu tentei xmodmap -e "add mod3 = Hangul_Hanja" resultando no seguinte ...

shift       Shift_L (0x32),  Shift_R (0x3e)
lock        Caps_Lock (0x42)
control     Control_L (0x25),  Control_R (0x69)
mod1        Alt_L (0x40),  Alt_R (0x6c),  Meta_L (0xcd)
mod2        Num_Lock (0x4d)
mod3        Hangul_Hanja (0x83)
mod4        Super_L (0x85),  Super_R (0x86),  Super_L (0xce),  Hyper_L (0xcf)
mod5        ISO_Level3_Shift (0x5c),  Mode_switch (0xcb)

... depois de adicionar set $mod Mod3 ao meu arquivo de configuração do i3 e reiniciar, acabei sem nenhuma chave modificadora, ou seja, não funcionou.

Além disso, a tecla Hanja não está se comportando como a típica tecla modificadora. Se eu pressionar e segurar a tecla, isso cria batidas de tecla repetidas, enquanto a tecla modificadora típica não.

Espero que haja alguns especialistas em teclado na casa que possam oferecer alguns de seus conhecimentos.

Linux Mint 18 (canela) Gerenciador de Janelas i3

    
por Verax 23.07.2016 / 05:43

1 resposta

2

O tratamento do modificador X11 é um pouco peculiar. Você não pode pegar nenhuma chave e declarar que ela é um modificador: algumas coisas precisam ser consistentes entre as configurações do modificador e as configurações de keysym.

Os modificadores clássicos são Shift , Control , Alt , Meta , Hyper e Super (com dois keyyms cada, por exemplo, Shift_L e Shift_R ) (além de Caps Lock e Num Lock que se comportam de maneira um pouco diferente). A maioria dos aplicativos não funciona com outros keyyms usados como modificadores.

Então, para usar a tecla Hanja como um modificador, faça com que seja Hyper_L (por exemplo).

keycode 131 = Hyper_L
remove Mod4 = Hyper_L
add Mod3 = Hyper_L

Isso faz com que a chave não seja mais usada como chave Hanja. Pode haver uma maneira de manter ambas as funções se você usar o XKB em vez do xmodmap, mas não sei como.

    
por 23.07.2016 / 16:09