Tengo un macbook pro con Ubuntu 13.10 con FluxBox. Desafortunadamente, el botón de encendido está físicamente sobre el espacio de retroceso donde esperaría que se encuentre la tecla de eliminación. En OS X, el programa PowerKey se puede usar para reasignar la tecla de encendido para eliminar. ¿Cómo puedo hacer algo similar en X Windows?
Desactivé la tecla de encendido editando /etc/systemd/logind.conf
y configurando HandlePowerKey = ignore
Después de esto, puedo presionar el botón de encendido sin apagar la computadora portátil.
La ejecución xev -event keyboard
revela que KeyPress para la tecla de encendido normalmente está siendo consumido por otro proceso:
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
Sin embargo, al ejecutar solo xterm directamente desde la consola, pude obtener con éxito el código clave y reasignar la clave.
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
En este punto, también era posible asignar la clave usando xmodmap. Lo asigné a la barra diagonal inversa, que es más fácil de ver que eliminar:
xmodmap -e "keycode 124 = backslash bar"
Podría obtener un equivalente apenas funcional para ejecutar agregando esto, ~/.fluxbox/keys
pero esto es lo suficientemente feo y lento como para ser inutilizable.
# Remap the power off to a delete key...
XF86PowerOff :Exec xdotool key Delete
¿Cómo puedo usar xmodmap o setxkbmap para usar el botón de encendido al mismo tiempo que un administrador de ventanas normal?