Alterando a chave Mod no Awesome WM

Alterando a chave Mod no Awesome WM

Tentei alterar a tecla mod da tecla Windows para Pause, Scroll Lock e Escape.

Para todas as chaves tentei alterar a entrada no rc.luaarquivo de configuração; Tentei usar o xmodmap para limpar bloqueios eadd mod4 = ...

No entanto, parece que não importa o que eu faça, as teclas ficam "pegajosas" (às vezes de uma forma estranha e inconsistente), ou seja, se eu as pressionar quando o computador agir como se estivessem constantemente pressionadas.

Existe uma maneira razoável de mudar esse comportamento?

Responder1

Eu tenho um arquivo com estas duas linhas em minha casa:

clear lock 
keysym Caps_Lock = Super_L

Ele é chamado do meurc.luaassim:

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

Responder2

Muito tarde, mas para referência de outros:

O problema parece ser que o xmodmap não está identificando nenhuma das chaves listadas como teclas modificadoras. AwesomeWM, portanto, não permite que elas sejam usadas como teclas modificadoras.

Você pode tentar adicionar a chave que deseja usar como Mod3 (que não parece ser usada para nada na maioria dos sistemas que vi), então seu rc.lua pode listar o modkey como "Mod3".

Adicionar como tecla modificadora

Você pode ver suas teclas modificadoras com xmodmap. Por padrão, você provavelmente obterá algo assim:

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)

Com xevvocê pode ver o nome de qualquer tecla pressionada enquanto ela está em execução e, para Scroll Lock, a minha 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

Você notará que o nome do keysym é Scroll_Lock.

Para adicionar ao Mod3, você precisa criar ou adicionar ao ~/.Xmodmap. Adicionar esta linha define Mod3 como apenas a tecla Scroll_Lock:

add Mod3 = Scroll_Lock

Para testar suas alterações e ver quaisquer erros em seu arquivo .Xmodmap, execute

xmodmap ~/.Xmodmap

Atualizando rc.lua

Como você já percebeu claramente, no topo do seu arquivo rc.lua (que geralmente está em ~/.config/awesome/rc.lua), há uma modkey = "Mod4"linha. Mude isso para modkey = "Mod3".

Avisos

A tecla Esc é usada para vários mapeamentos de teclas pelo AwesomeWM. Sugiro tentar Scroll Lock ou Pause, pois é menos provável que haja conflitos extensos. Na verdade, AwesomeWM parece assumir que Esc está reservado para cancelar a operação atual.

Scroll Lock parece ser tratado magicamente como uma chave de bloqueio, assim como Caps Lock. A diferença é que o comportamento de bloqueio do Caps Lock é relativamente trivial para desabilitar, enquanto o Scroll Lock não pode ter esse comportamento desabilitado, até onde eu sei.

Eu sugiro tentar isso com uma tecla como a tecla Numpad 0, ou algo que normalmente não é projetado para ser uma chave de bloqueio de estado, confirme se funciona e tente mudar para a tecla desejada.

Responder3

Eu sei que estou 3 anos atrasado, mas se isso ajudar alguém, troque

modkey = "Mod4"

com

modkey = "Mod1"

informação relacionada