Alterando a tecla Mod no Awesome WM

9

Eu tentei mudar a chave mod em awesome da tecla windows para Pausa, 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 "grudentas" (às vezes de uma maneira estranha e inconsistente), ou seja, se eu as bater uma vez que o computador atue como se estivesse constantemente pressionado.

Existe uma maneira razoável de mudar esse comportamento?

Archie
fonte

Respostas:

2

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

clear lock 
keysym Caps_Lock = Super_L

É chamado do meu rc.lua assim:

awful.util.spawn("xmodmap /home/username/your_xmodmap.file")
kioopi
fonte
Não quero usar capslock como modkey. o clear lockcomando limpa o bloqueio de turno e não deve haver nenhum bloqueio de turno para nenhuma das teclas mencionadas na primeira linha da minha pergunta.
Archie
2

Muito tarde, mas para referência de outras pessoas:

O problema parece ser que o xmodmap não está identificando nenhuma das chaves listadas como chaves modificadoras. O AwesomeWM, portanto, não permite que eles sejam usados ​​como chaves 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 eu já vi) e, em seguida, seu rc.lua pode listar a modkey como "Mod3".

Adicionar como chave modificadora

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

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 que você pressiona enquanto está em execução e, para o Scroll Lock, o meu 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á o nome do teclado Scroll_Lock.

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

add Mod3 = Scroll_Lock

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

xmodmap ~/.Xmodmap

Atualizando rc.lua

Como você claramente já descobriu, na parte superior do seu arquivo rc.lua (que geralmente está dentro ~/.config/awesome/rc.lua), há uma modkey = "Mod4"linha. Mude isso para modkey = "Mod3".

Advertências

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

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

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

mtalexan
fonte
0

Sei que estou 3 anos atrasado, mas se isso ajudar alguém, mude

modkey = "Mod4"

com

modkey = "Mod1"
TuxForLife
fonte
Esse é o conceito básico, mas as chaves específicas que ele listou não podem ser usadas com uma modificação simples como essa no rc.lua. Aparentemente, a configuração modkey no rc.lua pode ser definida apenas como chaves que o xmodmap trata como chaves modificadoras (como shift ou ctrl) e não pode ser definida como algo como 'x'.
mtalexan