Wie kann ich auf einer Apple-Tastatur unter Linux die Funktionstasten ohne die Modifizierertaste fn aktivieren?

18

Ich verwende eine Apple-Tastatur mit Kabel unter Linux. Standardmäßig müssen die Funktionstasten (F1, F2, F3 usw.) fngedrückt werden, damit sie funktionieren. Ohne die fnTaste steuern diese Tasten die Funktionen wie Bildschirmhelligkeit, Lautstärke und Musikspursteuerung.

Gibt es eine Möglichkeit, diese zu vertauschen, sodass die Funktionstasten nicht den fnModifikator erfordern , sondern die anderen Funktionen (Helligkeit usw.)?

Ryanlerch
quelle

Antworten:

22

Sie müssen hinzufügen 0oder 2in /sys/module/hid_apple/parameters/fnmode.

dh:

echo 2 > /sys/module/hid_apple/parameters/fnmode

Es scheint einige Verwirrung darüber zu geben, wie groß der Unterschied zwischen den beiden Werten sein könnte. Zitieren der Ubuntu-Dokumentation :

  1. 0 = deaktiviert: Deaktiviert die 'fn'-Taste. Drücken von 'fn' + 'F8' verhält sich so, als ob Sie nur 'F8' drücken.
  2. 1 = fkeyslast: Funktionstasten werden als letzte Taste verwendet. Das Drücken der Taste 'F8' fungiert als Sondertaste. Das Drücken von 'fn' + 'F8' verhält sich wie ein F8.
  3. 2 = fkeysfirst: Funktionstasten werden als erste Taste verwendet. Das Drücken der Taste 'F8' verhält sich wie ein F8. Das Drücken von 'fn' + 'F8' fungiert als Sondertaste (Wiedergabe / Pause).

Beachten Sie, dass dies auch für Fedora funktioniert.

volljährig
quelle
Es ist FnMode = kein Unterstrich
Yauhen Yakimovich
Danke vielmals!!!
Shivam
3

Ich fand heraus, dass es ziemlich einfach ist, das Verhalten dieses Modifikators zu ändern. Ändern Sie als root den Wert in der Datei /sys/module/hid_apple/parameters/fnmodevon 1nach 0. Beispielsweise:

# echo 0> / sys / module / hid_apple / parameters / fnmode

Beachten Sie, dass sich diese Datei in einigen älteren Linux-Versionen in befand /sys/module/apple/parameters/fnmode. Diese Änderung wird auch beim Neustart nicht beibehalten.

Ryanlerch
quelle
2

Für diejenigen, denen der Zugriff verweigert wurde und die nicht einfach das Präfix "sudo" verwenden konnten:

sudo nano /sys/module/hid_apple/parameters/fnmode

Ändere es auf 2oder was auch immer und Ctrl+Xspeichere es dann.

Marc
quelle
besserer Weg ist zu echo 2| sudo tee /sys/module/hid_apple/parameters/fnmode, aber alle diese Lösungen sind vergänglich .... Eine Möglichkeit , dauerhaft zu machen (auf systemdUmgebungen wie Fedora zum Beispiel): echo "w /sys/module/hid_apple/parameters/fnmode - - - - 2" | sudo tee /etc/tmpfiles.d/rev_fn_key.conf
nhed
2

Wenn Sie über diesen Thread mit einem der neueren MacBook Pros (2016 und höher) stolpern , für die der AppleSpi- Treiber erforderlich ist , damit Tastatur und Touchpad funktionieren, lesen Sie die folgenden Schritte , da ich keinen anderen Thread gefunden habe, der dies erklärt neuere Macs.

Soweit ich weiß, ersetzt der Treiber die Rolle des Moduls hid_apple. Die zu bearbeitenden Dateien unterscheiden sich daher geringfügig.

Um zu überprüfen, ob Sie den applespi-Treiber und nicht den hid_apple-Treiber verwenden, überprüfen Sie zunächst, welcher dieser Befehle (mit dem Terminal) etwas zurückgibt. Welcher Treiber auch immer verwendet wird, zeigt an, welchen Treiber Sie gerade verwenden:

# If this returns "applespi", you are using applespi
ls /sys/module | grep applespi

# If this returns "hid_apple", you are using hid_apple
ls /sys/module | grep hid_apple

So testen Sie Einstellungen vorübergehend (Einstellungen werden nach einem Neustart zurückgesetzt):

echo 2 | sudo tee -a /sys/module/applespi/parameters/fnmode

So wenden Sie die Änderungen dauerhaft an (bleiben bei Neustarts erhalten):

# Add the option for the fn key
echo options applespi fnmode=2 | sudo tee -a /etc/modprobe.d/applespi.conf
# Update initramfs bootfile
sudo update-initramfs -u -k all
# Reboot to test (optional)
sudo reboot

Verwenden Sie für ältere MacBook Pros, die das Modul hid_apple verwenden, in den Befehlen "hid_apple" anstelle von "applespi".

Mischa
quelle
1

In einer älteren Diskussion wird eine Lösung mit einem Kernel-Boot-Parameter angegeben, der möglicherweise vorzuziehen ist (systemweite Anwendung, Änderung nur einer Zeile in /etc/default/grubusw.).

Nur nach dieser Lösung fnmodewird auf 2statt gesetzt 0. Ich habe gerade versucht zu setzen hid_apple/parameters/fnmodezu 2, und es hat die gewünschte Wirkung zu. Vielleicht ist die Logik einfach `1 →„erfordern , Fnum Zugang F1, F2, F3, ...“vs. alle anderen Werte?

RJVB
quelle
Hallo RJVB, willkommen bei unix.SE. Ich habe Ihre Antwort bearbeitet, um die Formatierung zu verbessern. Schauen Sie sich die Quelle an, um einige der Tricks zu lernen.
drs