Cambiar la clave Mod en Awesome WM

Cambiar la clave Mod en Awesome WM

Intenté cambiar la tecla mod en Awesome desde la tecla de Windows a Pausa, Bloqueo de desplazamiento y Escape.

Para todas las claves intenté cambiar la entrada en el rc.luaarchivo de configuración; Intenté usar xmodmap para borrar bloqueos yadd mod4 = ...

Sin embargo, parece que no importa lo que haga, las teclas se vuelven "pegajosas" (a veces de una manera extrañamente inconsistente), es decir, si las presiono una vez, la computadora actúa como si estuvieran presionadas constantemente.

¿Existe una forma razonable de cambiar este comportamiento?

Respuesta1

Tengo un archivo con estas dos líneas en mi casa:

clear lock 
keysym Caps_Lock = Super_L

Lo llaman desde mirc.luacomo esto:

awful.util.spawn("xmodmap /home/username/your_xmodmap.file")

Respuesta2

Muy tarde, pero para referencia de otros:

El problema parece ser que xmodmap no identifica ninguna de las claves que usted enumeró como claves modificadoras. Por lo tanto, AwesomeWM no permite que se utilicen como teclas modificadoras.

Puede intentar agregar la clave que desea usar como Mod3 (que no parece usarse para nada en la mayoría de los sistemas que he visto), luego su rc.lua puede enumerar la clave mod como "Mod3".

Agregar como tecla modificadora

Puedes ver tus teclas modificadoras con xmodmap. De forma predeterminada probablemente obtendrás algo como 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)

Con xevpuedes ver el nombre de cualquier tecla que presiones mientras se está ejecutando, y para Scroll Lock, la mía aparece como:

KeyPress event, serial 36, synthetic NO, window 0x2200001,
    root 0x225, subw 0x0, time 23086947, (433,729), root:(470,783),
    state 0x0, keycode 78 (keysym 0xff14, Scroll_Lock), same_screen YES,
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyRelease event, serial 36, synthetic NO, window 0x2200001,
    root 0x225, subw 0x0, time 23087091, (433,729), root:(470,783),
    state 0x0, keycode 78 (keysym 0xff14, Scroll_Lock), same_screen YES,
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False

Notarás que el nombre del símbolo de clave es Scroll_Lock.

Para agregar a Mod3, debe crear o agregar un archivo ~/.Xmodmap. Agregar esta línea configura Mod3 para que sea solo la tecla Scroll_Lock:

add Mod3 = Scroll_Lock

Para probar sus cambios y ver cualquier error en su archivo .Xmodmap, ejecute

xmodmap ~/.Xmodmap

Actualizando rc.lua

Como ya habrás descubierto claramente, hacia la parte superior de tu archivo rc.lua (que generalmente está en ~/.config/awesome/rc.lua), hay una modkey = "Mod4"línea. Cambie esto a modkey = "Mod3".

Advertencias

AwesomeWM utiliza la tecla Esc para una serie de asignaciones de teclas. Sugeriría probar Bloq Despl o Pausa, ya que es menos probable que haya conflictos extensos. De hecho, AwesomeWM parece asumir que Esc está reservado para cancelar la operación actual.

Scroll Lock parece ser tratado mágicamente como una tecla de bloqueo, muy parecido a Bloq Mayús. La diferencia es que el comportamiento de bloqueo de Bloq Mayús es relativamente trivial de desactivar, mientras que el Bloqueo de Desplazamiento no puede desactivar este comportamiento, hasta donde yo sé.

Sugeriría probar esto con una tecla como la tecla 0 del teclado numérico, o algo que normalmente no esté diseñado para ser una tecla de bloqueo de estado, confirme que funciona y luego intente cambiar a la tecla que desee.

Respuesta3

Sé que tengo 3 años de retraso, pero si esto ayuda a alguien, cambie

modkey = "Mod4"

con

modkey = "Mod1"

información relacionada