Definieren von Tastaturkürzeln mit der Fn-Taste

Definieren von Tastaturkürzeln mit der Fn-Taste

Ich bin es gewohnt, Fn+ zu drücken Left, um die HomeTaste zu simulieren, und Fn+ Rightfür End.

Auf einer Tastatur mit physischen Homeund End-Tasten Fnfunktioniert die Verwendung dieser Tastenkombinationen nicht.

Wie kann ich benutzerdefinierte FnTastaturkürzel zuordnen aufUbuntuLinux?

Antwort1

Anders als bei Modifikatoren wie Alt und Strg wird das Drücken der Fn-Taste niemals an das Betriebssystem übermittelt. Die Taste ändert lediglich die Scancodes anderer Tasten. Das Drücken von Fn+ Rightwürde also eine Ende-Taste emulieren, obwohl diese physisch nicht vorhanden sein mag, aber vom Betriebssystem nicht unterschieden werden kann. Dieses Verhalten wird ausschließlich von der Tastaturelektronik gesteuert und kann daher nicht geändert werden, ohne die Schaltkreise oder den Mikrocontroller zu beeinträchtigen.

Antwort2

Auf den meisten Systemen ist es nicht möglich, den Schlüssel selbst zu erkennen Fn. Sie können es jedoch mit Folgendem versuchen:

$ xev | grep --line-buffered keysym

um herauszufinden, welche Tasten Fn-LeftSie Fn-Rightsenden. (Das grepreduziert einfach das Rauschen.)

Wenn Sie Glück haben, senden diese Tastendrücke unwichtige Tastenanschläge an die Maschine, die Sie dann neu zuordnen können.

Auf meinem System wird beispielsweise xevangezeigt, dass mein Tastendruck tatsächlich ein Ereignis Fn-Leftsendet :XF86AudioPrev

state 0x0, keycode 173 (keysym 0x1008ff16, XF86AudioPrev), same_screen YES,

Ich kann dies leicht neu zuordnen, um es in ein HomeSchlüsselereignis zu übersetzen:

$ xmodmap -e 'keysym XF86AudioPrev = Home'

Hoffentlich können Sie dasselbe für „Ende“, „Bild auf“ und „Bild ab“ tun.

Wenn xev beim Drücken nichts Einzigartiges erhält, Fn-Lefthaben Sie leider Pech gehabt.

Es ist wirklich schade, dass FnTastendrücke nicht direkt gesendet werden, wie dies bei den anderen Sondertasten der Fall ist. Wenn dies der Fall wäre, hätten wir viel mehr Möglichkeiten, ihre Bedeutung über die Software zu konfigurieren.

Antwort3

Ich habe es in einem Terminal geöffnet . Es erkennt, wenn ich , , , und ( ) xevdrücke , aber wenn ich die Taste drücke, erkennt es das nicht.ShiftCtrlAltWinSuperFn

Die Software hat also nichts mit dem FnSchlüssel zu tun; die Hardware entscheidet, welcher Schlüssel an die Software gesendet wird (z. B. der Homeoder End-Schlüssel).

Ihre Tastatur muss also bereits darüber verfügen, um dies tun zu können.

verwandte Informationen