Changer la clé Mod dans Awesome WM

9

J'ai essayé de changer la clé de mod en génial à partir de la touche Windows pour Pause, Scroll Lock et Escape.

Pour toutes les clés, j'ai essayé de modifier l'entrée dans le rc.luafichier de configuration; J'ai essayé d'utiliser xmodmap pour effacer les verrous etadd mod4 = ...

Cependant, il semble que peu importe ce que je fais, les touches deviennent "collantes" (parfois d'une manière incohérente bizarre), à ​​savoir si je les frappe une fois que l'ordinateur agit comme si elles étaient constamment pressées.

Existe-t-il un moyen raisonnable de modifier ce comportement?

Archie
la source

Réponses:

2

J'ai un fichier avec ces deux lignes chez moi:

clear lock 
keysym Caps_Lock = Super_L

Il est appelé depuis mon rc.lua comme ceci:

awful.util.spawn("xmodmap /home/username/your_xmodmap.file")
kioopi
la source
Je ne veux pas utiliser capslock comme modkey. la clear lockcommande efface le verrouillage de décalage, et il ne devrait pas y avoir de verrouillage de décalage pour les clés mentionnées dans la première ligne de ma question.
Archie
2

Bien en retard, mais pour la référence des autres:

Le problème semble être que xmodmap n'identifie aucune des clés que vous avez répertoriées comme touches de modification. AwesomeWM ne permet donc pas de les utiliser comme touches de modification.

Vous pouvez essayer d'ajouter la clé que vous souhaitez utiliser en tant que Mod3 (qui ne semble pas être utilisée pour quoi que ce soit sur la plupart des systèmes que j'ai vus), puis votre rc.lua peut répertorier la clé de mod comme "Mod3".

Ajouter comme touche de modification

Vous pouvez voir vos touches de modification avec xmodmap. Par défaut, vous obtiendrez probablement quelque chose comme ceci:

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)

Avec xevvous pouvez voir le nom de n'importe quelle touche sur laquelle vous appuyez pendant son exécution, et pour Scroll Lock, la mienne apparaît comme:

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

Vous remarquerez que le nom de la clé est Scroll_Lock.

Pour ajouter à Mod3, vous devez créer ou ajouter à ~/.Xmodmap. L'ajout de cette ligne définit Mod3 comme étant uniquement la clé Scroll_Lock:

add Mod3 = Scroll_Lock

Pour tester vos modifications et voir les erreurs dans votre fichier .Xmodmap, exécutez

xmodmap ~/.Xmodmap

Mise à jour de rc.lua

Comme vous l'avez déjà clairement compris, vers le haut de votre fichier rc.lua (qui est généralement ~/.config/awesome/rc.luadedans), il y a une modkey = "Mod4"ligne. Remplacez-le par modkey = "Mod3".

Avertissements

La touche Échap est utilisée pour un certain nombre de mappages de touches par AwesomeWM. Je suggère plutôt d'essayer le verrouillage du défilement ou la pause, car il est moins susceptible d'avoir des conflits étendus. En fait, AwesomeWM semble supposer que Esc est réservé pour annuler l'opération en cours.

Scroll Lock semble être traité comme par magie comme une clé de verrouillage, tout comme Caps Lock. La différence est que le comportement de verrouillage de Caps Lock est relativement simple à désactiver, tandis que Scroll Lock ne peut pas désactiver ce comportement pour autant que je sache.

Je suggère d'essayer cela avec une clé comme la touche 0 du pavé numérique, ou quelque chose qui n'est normalement pas conçu pour être une clé de verrouillage d'état, confirmez que cela fonctionne, puis essayez de passer à la clé souhaitée.

mtalexan
la source
0

Je sais que j'ai 3 ans de retard, mais si cela aide quelqu'un, changez

modkey = "Mod4"

avec

modkey = "Mod1"
TuxForLife
la source
C'est le concept de base, mais les clés spécifiques qu'il a énumérées ne peuvent pas être utilisées avec une simple modification comme celle du rc.lua. Le paramètre modkey dans rc.lua ne peut apparemment être défini que sur des clés que xmodmap considère comme des touches de modification (comme shift ou ctrl), et ne peut pas être défini sur quelque chose comme 'x'.
mtalexan