Vincular alt pero no altgr en i3

Vincular alt pero no altgr en i3

Utilizo Mod4 para la mayoría de las combinaciones de teclas en i3, pero uso Mod1 para esto:

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

Sin embargo, esto vincula tanto alt como altgr, lo cual no es deseado ya que uso altgr+<letter> para escribir algunos caracteres.

xev dice que alt es Alt_L y altgr es Alt_R, pero bindsym Alt_L+ano funciona

Respuesta1

En definitiva depende de lo quexmodmapamuestra para mod1. Por ejemplo, si muestra que Alt_Ly Alt_Restán en el mismo modificador, tendrías que mover este último a otro (de los 5 modificadores disponibles) para evitar conflictos.

A continuación se muestran algunas páginas con ejemplos:

Un inconveniente del uso xmodmapes que no siempresaberel código clave adecuado para un símbolo clave (como Alt_R). Cuando me encuentro con eso, generalmente puedo solucionarlo mirando el resultado de

xmodmap -pk

por la llavesímbolo, y en el script, asigne ese código clave. Por ejemplo, en una máquina xmodmap -pkse muestra

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

y usando este script

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

cambia la salida de esto:

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)

a esto:

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 en particular, esta solución no es necesaria).

información relacionada