Ho un macbook pro con Ubuntu 13.10 con FluxBox. Sfortunatamente, il pulsante di accensione è fisicamente al di sopra del backspace in cui mi aspetterei che si trovasse la chiave di eliminazione. In OS X, il programma PowerKey può essere utilizzato per rimappare la chiave di accensione per eliminare. Come posso fare qualcosa di simile in X Windows?
Ho disabilitato il tasto di accensione modificando /etc/systemd/logind.conf
e impostando HandlePowerKey = ignore
Dopo questo, posso premere il pulsante di accensione senza spegnere il laptop.
L'esecuzione xev -event keyboard
rivela che il KeyPress per il tasto di accensione viene normalmente utilizzato da un altro processo:
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
Tuttavia, eseguendo solo xterm direttamente dalla console, sono stato in grado di ottenere correttamente il codice chiave e rimappare la chiave.
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
A questo punto, era anche possibile mappare la chiave usando xmodmap. L'ho mappato su una barra rovesciata che è più facile da vedere che eliminare:
xmodmap -e "keycode 124 = backslash bar"
Potrei ottenere un equivalente a malapena funzionale da eseguire aggiungendolo a ~/.fluxbox/keys
ma questo è sia brutto che abbastanza lento da essere inutilizzabile.
# Remap the power off to a delete key...
XF86PowerOff :Exec xdotool key Delete
Come posso usare xmodmap o setxkbmap per usare il pulsante di accensione contemporaneamente a un normale gestore di finestre?