Ich habe eine Apple-Tastatur und musste die Tasten neu zuordnen, damit die mod-4
Taste die erste Taste links in der SpaceLeiste ist, wenn ich mit Emacs arbeite. Das folgende Skript hat gut funktioniert, als ich den dwm-Fenstermanager verwendet habe, aber nach dem Wechsel zu Openbox habe ich festgestellt, dass beide Tasten dasselbe tun, anstatt die Schlüsselcodes zwischen den Options- und Befehlstasten zu tauschen.
Eine seltsame Sache, die mir aufgefallen ist, war das neue Setup, als ich auf "Ausführen" geklickt showkey
und die Options- und Befehlstasten gedrückt habe, die mir 56 bzw. 125 angezeigt werden. Diese Tasten funktionieren jedoch überhaupt nicht, wenn sie in das folgende Skript anstelle der Tasten "64" und "125" eingefügt werden 133.
Ich muss zugeben, dass ich das folgende Skript erstellt habe, indem ich es kontinuierlich optimierte, bis es funktionierte, sodass es eine viel bessere Möglichkeit geben könnte, dies zu tun.
.xmodmap
# switch alt and command...the switch is not being done properly
xmodmap -e "keycode 64 = Alt_L"
xmodmap -e "keycode 133 = Meta_L"
# remap of mod 4
xmodmap -e "clear Mod4"
xmodmap -e "add Mod4 = Super_L"
Aktualisieren
Ich habe mich an das vorherige Tastatur-Setup gewöhnt und aufgehört, es zu optimieren. Leider ist nach einem letzten Neustart der CapsLockauf Ctrlnicht mehr funktionierte so hier bin ich wieder.
Dieses Mal habe ich anstelle des oben verwendeten Mappings xmodmap -pke > ~/.xmod
die Tasten dort ausgeführt und optimiert (was viel einfacher ist).
Die Dinge sind jedoch noch nicht ganz richtig. Das CapsLockStandbild funktioniert wie xev
gewohnt, außer wenn der Befehl ausgeführt wird. Dann wird Folgendes zurückgegeben, das die richtige Zuordnung zu zeigen scheint:
# caplock
KeyRelease event, serial 40, synthetic NO, window 0x2200001,
root 0x156, subw 0x0, time 4858000, (57,-31), root:(426,402),
state 0x2, keycode 66 (keysym 0xffe3, Control_L), same_screen YES,
XKeysymToKeycode returns keycode: 37
XLookupString gives 0 bytes:
XFilterEvent returns: False
# ctrl-L
KeyRelease event, serial 40, synthetic NO, window 0x2200001,
root 0x156, subw 0x0, time 4805947, (686,148), root:(1055,581),
state 0x4, keycode 37 (keysym 0xffe3, Control_L), same_screen YES,
XLookupString gives 0 bytes:
XFilterEvent returns: False
# Alt-L
KeyPress event, serial 40, synthetic NO, window 0x2200001,
root 0x156, subw 0x0, time 4555825, (-158,-649), root:(959,133),
state 0x0, keycode 64 (keysym 0xffeb, Super_L), same_screen YES,
XLookupString gives 0 bytes:
XmbLookupString gives 0 bytes:
XFilterEvent returns: False
# Super-L
KeyRelease event, serial 40, synthetic NO, window 0x2200001,
root 0x156, subw 0x0, time 4920564, (-63,169), root:(306,602),
state 0x40, keycode 133 (keysym 0xffe9, Alt_L), same_screen YES,
XLookupString gives 0 bytes:
XFilterEvent returns: False
~/.config/openbox/rc.xml
das Problem.
showkey
nicht die gleichen Schlüsselcodes angezeigt, die X verwendet. Führenxev
Sie den Befehl aus, um die X-Schlüsselcodes und ihre Aktionen anzuzeigen. Zeigen Sie uns die Ausgabe vonxmodmap -pm
und die Ausgabe von,xev
wenn Sie jede der beteiligten Tasten drücken.