J'ai un macbook pro exécutant Ubuntu 13.10 avec FluxBox. Malheureusement, le bouton d'alimentation est physiquement au-dessus du retour arrière où je m'attendrais à ce que la clé de suppression soit. Dans OS X, le programme PowerKey peut être utilisé pour remapper la clé d'alimentation à supprimer. Comment puis-je faire quelque chose de similaire dans X Windows?
J'ai désactivé la touche d'alimentation en modifiant /etc/systemd/logind.conf
et en définissantHandlePowerKey = ignore
Après cela, je peux appuyer sur le bouton d'alimentation sans éteindre l'ordinateur portable.
L'exécution xev -event keyboard
révèle que le KeyPress pour la touche d'alimentation est normalement mangé par un autre processus:
MappingNotify event, serial 36, synthetic NO, window 0x0,
request MappingKeyboard, first_keycode 8, count 248
KeymapNotify event, serial 36, synthetic NO, window 0x0,
keys: 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
KeymapNotify event, serial 37, synthetic NO, window 0x0,
keys: 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Cependant, en exécutant uniquement xterm directement à partir de la console, j'ai réussi à obtenir le code clé et à remapper la clé.
xinit /usr/bin/xterm -- :1
xev -event keyboard | tee /tmp/junk.txt
tail -n ???? /tmp/junk.txt
MappingNotify event, serial 28, synthetic NO, window 0x0,
request MappingKeyboard, first_keycode 8, count 248
KeyPress event, serial 28, synthetic NO, window 0x600001,
root 0xa1, subw 0x0, time 720369, (146,89), root:(148,91),
state 0x0, keycode 124 (keysym 0x1008ff2a, XF86PowerOff), same_screen YES,
XLookupString gives 0 bytes:
XmbLookupString gives 0 bytes:
XFilterEvent returns: False
KeyRelease event, serial 28, synthetic NO, window 0x600001,
root 0xa1, subw 0x0, time 720369, (146,89), root:(148,91),
state 0x0, keycode 124 (keysym 0x1008ff2a, XF86PowerOff), same_screen YES,
XLookupString gives 0 bytes:
XFilterEvent returns: False
MappingNotify event, serial 29, synthetic NO, window 0x0,
request MappingKeyboard, first_keycode 8, count 248
À ce stade, il était également possible de mapper la clé à l'aide de xmodmap. Je l'ai mappé à une barre oblique inverse qui est plus facile à voir qu'à supprimer:
xmodmap -e "keycode 124 = backslash bar"
Je pourrais obtenir un équivalent à peine fonctionnel à exécuter en l'ajoutant à ~/.fluxbox/keys
mais c'est à la fois laid et assez lent pour être inutilisable.
# Remap the power off to a delete key...
XF86PowerOff :Exec xdotool key Delete
Comment puis-je utiliser xmodmap ou setxkbmap pour utiliser le bouton d'alimentation en même temps qu'un gestionnaire de fenêtres normal?