Vincule alt, mas não altgr em i3

Vincule alt, mas não altgr em i3

Eu uso o Mod4 para a maioria dos atalhos de teclado no i3, mas 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 altgr+<letter> para digitar alguns caracteres.

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

Responder1

Em última análise, depende do quexmodmapmostra para mod1. Por exemplo, se mostrar que Alt_Le Alt_Restão no mesmo modificador, você teria que mover o último para outro (dos 5 modificadores disponíveis) para evitar conflito.

Aqui estão algumas páginas dando exemplos:

  • Remapeando Alt_R com xmodmap desabilita a troca de terminal VCmostra um exemplo de onde o usuário Alt_Rmudoumod1paramod4(e tive problemas). Você deve revisar a saída do xmodmap antes de alterá-la.
  • xmodmapno ArchLinux mostra um exemplo detalhado de manipulação de modificadores. Paramoveruma chave, você deveadicionarpara um modificador eclaroisso do outro.

Uma armadilha no uso xmodmapé que nem sempresabero código de acesso adequado para um símbolo de chave (como Alt_R). Quando encontro isso, geralmente posso contornar isso olhando a saída de

xmodmap -pk

para a chavesímboloe, no script, atribua esse código-chave. Por exemplo, em uma máquina xmodmap -pkmostra

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 esta máquina específica, a solução alternativa não é necessária).

informação relacionada