Eu tenho um arquivo com essas duas linhas em minha casa:
clear lock
keysym Caps_Lock = Super_L
Ele é chamado pelo meu rc.lua assim:
awful.util.spawn("xmodmap /home/username/your_xmodmap.file")
Eu tentei alterar a tecla mod em awesome a partir da tecla do Windows para Pause, Scroll Lock e Escape.
Para todas as chaves, tentei alterar a entrada no arquivo de configuração rc.lua
; Eu tentei usar o xmodmap para limpar bloqueios e add mod4 = ...
No entanto, parece que não importa o que eu faça, as teclas ficam "pegajosas" (às vezes de maneira estranha e inconsistente), ou seja, se eu as pressiono quando o computador age como se fossem constantemente pressionadas.
Existe uma maneira razoável de mudar esse comportamento?
Eu tenho um arquivo com essas duas linhas em minha casa:
clear lock
keysym Caps_Lock = Super_L
Ele é chamado pelo meu rc.lua assim:
awful.util.spawn("xmodmap /home/username/your_xmodmap.file")
Bem tarde, mas para referência de outros:
O problema parece ser que o xmodmap não está identificando nenhuma das chaves que você listou como teclas modificadoras. O AwesomeWM, portanto, não permite que eles sejam usados como teclas modificadoras.
Você pode tentar adicionar a chave que você deseja usar como Mod3 (que não parece ser usado para nada na maioria dos sistemas que já vi), então o seu rc.lua pode listar o modkey como "Mod3".
Você pode ver suas chaves modificadoras com xmodmap
. Por padrão, você provavelmente terá 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 xev
, você pode ver o nome de qualquer tecla pressionada durante a 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 a ~/.Xmodmap
. Adicionar esta linha define Mod3 como sendo apenas a chave Scroll_Lock:
add Mod3 = Scroll_Lock
Para testar suas alterações e ver quaisquer erros no seu arquivo .Xmodmap, execute
xmodmap ~/.Xmodmap
Como você já percebeu claramente, na parte superior do arquivo rc.lua (que geralmente está em ~/.config/awesome/rc.lua
), há uma linha modkey = "Mod4"
. Altere isso para modkey = "Mod3"
.
A tecla Esc é usada para vários mapeamentos de teclas pelo AwesomeWM. Eu sugeriria tentar Scroll Lock ou Pause, pois é menos provável que tenha conflitos extensos. Na verdade, o AwesomeWM parece assumir que o Esc está reservado para cancelar a operação atual.
Scroll Lock parece ser magicamente tratado como uma chave de bloqueio, muito parecido com 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, tanto quanto eu posso dizer.
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, então tente mudar para a tecla que você deseja.
Eu sei que estou 3 anos atrasado, mas se isso ajudar alguém, mude
modkey = "Mod4"
com
modkey = "Mod1"
Tags xmodmap linux hotkeys awesome-wm