Ich besitze ein MacBook Pro, auf dem Ubuntu 13.10 mit FluxBox ausgeführt wird. Leider befindet sich der Ein- / Ausschalter physisch über der Rücktaste, in der sich der Löschschlüssel befinden sollte . Unter OS X kann das PowerKey-Programm verwendet werden, um den zu löschenden Ein- / Ausschalter neu zuzuordnen. Wie kann ich unter X Windows etwas Ähnliches tun?
Ich habe den Netzschalter durch Bearbeiten /etc/systemd/logind.conf
und Einstellen deaktiviert. HandlePowerKey = ignore
Danach kann ich den Netzschalter drücken, ohne den Laptop herunterzufahren.
Beim Ausführen wird xev -event keyboard
angezeigt, dass der Tastendruck für die Einschalttaste normalerweise von einem anderen Prozess verarbeitet wird:
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
Indem ich jedoch nur xterm direkt von der Konsole aus ausführte, konnte ich den Schlüsselcode erfolgreich abrufen und den Schlüssel neu zuordnen.
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
Zu diesem Zeitpunkt war es auch möglich, den Schlüssel mit xmodmap zuzuordnen. Ich habe es einem Backslash zugeordnet, der einfacher zu sehen ist als zu löschen:
xmodmap -e "keycode 124 = backslash bar"
Ich könnte ein kaum funktionierendes Äquivalent zum Laufen bekommen, wenn ich dies hinzufüge, ~/.fluxbox/keys
aber dies ist sowohl hässlich als auch langsam genug, um unbrauchbar zu werden.
# Remap the power off to a delete key...
XF86PowerOff :Exec xdotool key Delete
Wie kann ich xmodmap oder setxkbmap verwenden, um den Netzschalter gleichzeitig mit einem normalen Fenstermanager zu verwenden?