Ich bin daran interessiert, einige Tasten auf meiner Tastatur neu zu belegen. Insbesondere möchte ich die Funktionstaste gedrückt halten, die F1-Taste drücken und dadurch ein Skript auslösen. Ich kenne das xev
ist nützlich, um herauszufinden, welcher Tastencode einem Tastendruck zugeordnet ist. Zum Beispiel, wenn ich das x
drücke Schlüssel erhalte ich:
KeyPress event, serial 41, synthetic NO, window 0x2600001,
root 0xae, subw 0x0, time 1597243, (-190,43), root:(910,336),
state 0x0, keycode 53 (keysym 0x78, x), same_screen YES,
XLookupString gives 1 bytes: (78) "x"
XmbLookupString gives 1 bytes: (78) "x"
XFilterEvent returns: False
KeyRelease event, serial 41, synthetic NO, window 0x2600001,
root 0xae, subw 0x0, time 1597363, (-190,43), root:(910,336),
state 0x0, keycode 53 (keysym 0x78, x), same_screen YES,
XLookupString gives 1 bytes: (78) "x"
XFilterEvent returns: False
Das ergibt für mich Sinn.
Wenn ich jedoch Funktion-F1 drücke, verstehe ich nicht, was passiert. Warum scheint sich das Drücken von Funktion-F1 so zu verhalten, als hätte ich auch die Windows-Taste gedrückt und den Buchstaben l
eingegeben ?
xev
Ausgabe, wenn ich Funktion-F1 drücke:
KeyPress event, serial 41, synthetic NO, window 0x2600001,
root 0xae, subw 0x0, time 1735349, (-157,221), root:(943,514),
state 0x0, keycode 133 (keysym 0xffeb, Super_L), same_screen YES,
XLookupString gives 0 bytes:
XmbLookupString gives 0 bytes:
XFilterEvent returns: False
KeyPress event, serial 41, synthetic NO, window 0x2600001,
root 0xae, subw 0x0, time 1735350, (-157,221), root:(943,514),
state 0x40, keycode 46 (keysym 0x6c, l), same_screen YES,
XLookupString gives 1 bytes: (6c) "l"
XmbLookupString gives 1 bytes: (6c) "l"
XFilterEvent returns: False
MappingNotify event, serial 41, synthetic NO, window 0x0,
request MappingKeyboard, first_keycode 8, count 248
KeyPress event, serial 41, synthetic NO, window 0x2600001,
root 0xae, subw 0x0, time 1735356, (-157,221), root:(943,514),
state 0x40, keycode 160 (keysym 0x1008ff2d, XF86ScreenSaver), same_screen YES,
XLookupString gives 0 bytes:
XmbLookupString gives 0 bytes:
XFilterEvent returns: False
KeyRelease event, serial 41, synthetic NO, window 0x2600001,
root 0xae, subw 0x0, time 1735357, (-157,221), root:(943,514),
state 0x40, keycode 160 (keysym 0x1008ff2d, XF86ScreenSaver), same_screen YES,
XLookupString gives 0 bytes:
XFilterEvent returns: False
MappingNotify event, serial 42, synthetic NO, window 0x0,
request MappingKeyboard, first_keycode 8, count 248
KeyRelease event, serial 42, synthetic NO, window 0x2600001,
root 0xae, subw 0x0, time 1735463, (-157,221), root:(943,514),
state 0x40, keycode 46 (keysym 0x6c, l), same_screen YES,
XLookupString gives 1 bytes: (6c) "l"
XFilterEvent returns: False
KeyRelease event, serial 43, synthetic NO, window 0x2600001,
root 0xae, subw 0x0, time 1735470, (-157,221), root:(943,514),
state 0x40, keycode 133 (keysym 0xffeb, Super_L), same_screen YES,
XLookupString gives 0 bytes:
XFilterEvent returns: False
Wenn ich bei einem fokussierten Textfenster Funktion-F1 drücke, wird der Buchstabe l
eingegeben .
Hintergrundinformationen:Laufendes Lubuntu 11.10 auf einem Toshiba r835. Gerne geben wir Ihnen weitere Details, die hilfreich sein könnten.
BEARBEITEN:
Zum Vergleich, wenn ich Funktion-F12 eingebe, bekomme ich:
KeyPress event, serial 41, synthetic NO, window 0x2200001,
root 0xae, subw 0x0, time 8369184, (-620,473), root:(480,766),
state 0x0, keycode 78 (keysym 0xff14, Scroll_Lock), same_screen YES,
XLookupString gives 0 bytes:
XmbLookupString gives 0 bytes:
XFilterEvent returns: False
KeyRelease event, serial 41, synthetic NO, window 0x2200001,
root 0xae, subw 0x0, time 8369344, (-620,473), root:(480,766),
state 0x0, keycode 78 (keysym 0xff14, Scroll_Lock), same_screen YES,
XLookupString gives 0 bytes:
XFilterEvent returns: False
Ich wollte überprüfen, ob die F1-F12-Tasten etwas Besonderes sind, aber es sieht so aus, als ob zumindest einige von ihnen so funktionieren, wie ich es erwarte.
Verwandter:„Dumthe Output“-Sound in Ubuntu 14.04?Akzeptierte Antwort:
Wenn Sie Funktion-F1 sagen, meinen Sie vermutlich das Drücken dieser lustigen kleinen Fn-Taste in der Ecke eines Laptops, gefolgt von der F1-Taste oben links auf der Tastatur. Und dass Sie versuchen, eine der zusätzlichen Tasten wie Sleep zuzuordnen, die einige Laptop-Tastaturen haben. Es sieht so aus, als würde diese Taste buchstäblich mehrere Tasten für Sie drücken. Zuerst sehe ich Win+L als eine Kombination. Unter Windows sperrt diese Verknüpfung den Bildschirm, startet aber nicht den Bildschirmschoner. Als nächstes sehe ich eine Zuordnung für XF86ScreenSaver, was bedeuten könnte, dass X eine Art Sleep-Keycode sieht. Ich vermute, dass diese Taste auf Ihrer Laptop-Tastatur diese drei Tastencodes von Win + L + Sleep physisch sendet, um Windows-Benutzern den Bildschirm schnell zu sperren und den Bildschirmschoner zu aktivieren. Ich bin mir nicht sicher, wie ich diese herausfiltern kann. Die Fn-Taste auf Tastaturen wird normalerweise nicht vom Linux-Kernel gesehen. Stattdessen ändert es, welche Codes die Tastatur dem Kernel mitteilt. Als ich versuchte, eine USB-RF-PowerPoint-Fernbedienung mit OOo unter Linux zu verwenden, entdeckte ich, dass die Schaltfläche zum Starten/Stoppen der Präsentation nur eine lahme Steuerung war, um abwechselnd F5- und ESC-Tastencodes zu senden. Andere Tasten waren genauso lahm wie das Senden von b, um den Bildschirm zu leeren.