Vincular alt, mas não altgr em i3

4

Eu uso o Mod4 para a maioria das combinações de teclas no i3, mas eu uso o Mod1 para isso:

bindsym Mod1+a workspace a
bindsym Mod1+b workspace b
bindsym Mod1+c workspace c
bindsym Mod1+d workspace d
...

No entanto, isso vincula alt e altgr, o que é indesejado, pois uso o altgr + < letter > para digitar alguns caracteres.

xev diz que alt é Alt_L e altgr é Alt_R, mas bindsym Alt_L+a não funciona

    
por Alice Ryhl 02.11.2015 / 11:03

1 resposta

3

Por fim, depende do que o xmodmap mostra para o mod1. Por exemplo, se ele mostra que Alt_L e Alt_R estão no mesmo modificador, você teria que mover o último para outro (dos 5 modificadores disponíveis) para evitar conflitos.

Aqui estão algumas páginas dando exemplos:

Uma armadilha na utilização de xmodmap é que nem sempre conhece o código de tecla adequado para um símbolo de chave (como Alt_R ). Quando me deparo com isso, normalmente posso contorná-lo olhando na saída de

xmodmap -pk

para o símbolo da chave e no script, atribua esse código-chave. Por exemplo, em uma máquina xmodmap -pk mostra

108         0xffea (Alt_R)  0x0000 (NoSymbol)       0xffea (Alt_R)

e usando este script

keycode 108 = Alt_R
remove mod1 = Alt_R
add mod3 = Alt_R

altera a saída disso:

xmodmap:  up to 4 keys per modifier, (keycodes in parentheses):

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)

para isso:

xmodmap:  up to 4 keys per modifier, (keycodes in parentheses):

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

(Para essa máquina específica, a solução alternativa não é necessária).

    
por 02.11.2015 / 12:24