Definieren von Tastaturkürzeln mit der Taste Fn

17

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

Auf einer Tastatur mit physischen Tasten Homeund EndTasten Fnfunktioniert die Verwendung dieser Tastaturkürzel nicht.

Wie kann ich Fnunter Ubuntu Linux benutzerdefinierte Tastaturkürzel zuordnen ?

Mox
quelle
1
Mögliches Duplikat der Multimedia-Schlüssel binden . Es ist vielleicht kein genaues Duplikat in der Problembeschreibung, aber es wird durch denselben zugrunde liegenden Prozess gelöst.
Daniel Andersson
Kennt jemand moderne (2018) Laptops wie HP Spectre x360 (obwohl es separate PgUp-Tasten usw. hat) und Dell XPS, ob die Funktionstaste wie die anderen Tasten erkannt wird?
MycrofD
1
Ich verwende Lenovo Thinkpad X1 Carbon mit FnSchlüssel, der von als Schlüsselcode 151 erkannt wird xev. Während Fngedrückt wird Leftund RightTasten keine Ereignisse erzeugen. Fn+F2erzeugt keine Ereignisse, funktioniert aber wie erwartet - verringert die Lautstärke.
Suor

Antworten:

16

Im Gegensatz zu Modifikatoren wie Alt und Strg wird das Drücken der Taste Fn niemals an das Betriebssystem übertragen. Die Taste ändert lediglich die Scancodes anderer Tasten, sodass durch Drücken von Fn+ Righteine End-Taste emuliert wird, obwohl diese möglicherweise nicht physisch vorhanden ist, sie jedoch vom Betriebssystem nicht unterschieden werden können. Dieses Verhalten wird ausschließlich von der Tastaturelektronik gesteuert und kann daher nicht geändert werden, ohne die Schaltung oder den Mikrocontroller zu beschädigen.

Marcks Thomas
quelle
2
Es gibt ein Betriebssystem und einen Computer, die definitiv eine Ausnahme von dieser Regel darstellen, nämlich Mac-Laptops. Sie können diesen Schlüssel tatsächlich mit Karabiner ändern. Auch Thinkpads senden diesen Schlüssel an das Betriebssystem, aber es ist kein Modifikatorschlüssel wie auf Macs.
William
2
Das ist nicht wahr. xevzeigt FnTastendrücke.
Suor
1
Nun, auf meinem Dell-Computer mit einem Debian 10 wird xevnichts angezeigt, wenn die Fn-Taste gedrückt wird.
Pierre
12

Auf den meisten Systemen ist es nicht möglich, den FnSchlüssel selbst zu erkennen. Sie können jedoch Folgendes verwenden:

$ xev | grep --line-buffered keysym

um herauszufinden, welche Schlüssel Fn-Leftund Fn-Rightsenden. (Das grepreduziert nur 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 angezeigt , xevdass mein Fn-LeftTastendruck tatsächlich ein XF86AudioPrevEreignis sendet :

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 End, PageUp und PageDown tun.

Wenn xev beim Drücken nichts Einzigartiges erhält, haben Sie leider kein Fn-LeftGlück.

Es ist wirklich schade, dass FnTastendrücke nicht direkt gesendet werden wie die anderen Modifikatortasten. Wenn sie es wären, hätten wir viel mehr Macht, ihre Bedeutung durch Software zu konfigurieren.

joeytwiddle
quelle
Leider registriert sich fn auf meinem Laptop nicht auf die gleiche Weise wie andere Schlüssel dort bei Ereignissen zum Hoch- und Herunterfahren von Schlüsseln, da dies für einen Modifikatorschlüssel nicht richtig funktioniert. Sie können es jedoch auch anderen Tasten zuordnen.
William
5

Ich öffnete xevin einem Terminal. Es erkennt , wenn ich die Taste Shift, Ctrl, Alt, und Win( Super), aber wenn ich die gedrückte FnTaste , um sie es nicht erkennt.

Die Software hat also nichts mit dem FnSchlüssel zu tun . Es liegt an der Hardware zu entscheiden, welcher Schlüssel an die Software gesendet wird (z. B. der Homeoder EndSchlüssel).

Ihre Tastatur muss es also bereits haben, um dies tun zu können.

biggles5107
quelle