Jak sprawić, by klawisze funkcyjne działały na klawiaturze Apple bez Linuksa?


20

Używam przewodowej klawiatury Apple w systemie Linux. Domyślnie klawisze funkcyjne (F1, F2, F3 itp.) Wymagają fnnaciśnięcia klawisza, aby działały. Bez fnklawisza klawisze te sterują funkcjami, takimi jak jasność ekranu, głośność i kontrola ścieżki muzycznej.

Czy istnieje sposób ich zamiany, więc klawisze funkcyjne nie wymagają fnmodyfikatora, ale inne funkcje (jasność itp.)?

Odpowiedzi:


25

Trzeba dodać 0lub 2pod /sys/module/hid_apple/parameters/fnmode.

to znaczy:

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

Wydaje się, że istnieje pewne zamieszanie dotyczące różnicy między tymi dwiema wartościami. Cytując dokumentację Ubuntu :

  1. 0 = wyłączone: wyłącz klawisz „fn”. Naciśnięcie „fn” + „F8” zachowuje się tak, jakbyś tylko naciskał „F8”
  2. 1 = fkeyslast: Klawisze funkcyjne są używane jako ostatni klawisz. Naciśnięcie klawisza „F8” będzie działało jak klawisz specjalny. Naciśnięcie „fn” + „F8” będzie zachowywać się jak F8.
  3. 2 = fkeysfirst: Klawisze funkcyjne są używane jako pierwszy klawisz. Naciśnięcie klawisza „F8” będzie zachowywać się jak F8. Naciśnięcie „fn” + „F8” będzie działało jako specjalny klawisz (odtwarzanie / pauza).

Zauważ, że działa to również dla mnie w Fedorze.


to fnmode = brak podkreślenia
Yauhen Yakimovich

Wielkie dzięki!!!
Shivam,

3

Doszedłem do wniosku, że zmiana zachowania tego modyfikatora jest dość prosta, ponieważ root zmienia wartość w pliku /sys/module/hid_apple/parameters/fnmodez 1na 0. Na przykład:

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

Zauważ, że w niektórych starszych wersjach systemu Linux ten plik był zlokalizowany /sys/module/apple/parameters/fnmode. Ponadto ta zmiana nie zostanie utrzymana po ponownym uruchomieniu.


3

Dla każdego, kto natknie się na ten wątek za pomocą jednego z nowszych MacBook Pro (2016 i nowszych), który potrzebuje sterownika applespi , aby klawiatura i touchpad działały, oto jak to zrobić, ponieważ nie mogłem znaleźć żadnego innego wątku wyjaśniającego to dla nowsze komputery Mac.

O ile rozumiem, sterownik skutecznie zastępuje rolę modułu hid_apple, więc pliki do edycji są nieco inne.

Po pierwsze, aby sprawdzić, czy używasz sterownika applespi, a nie sterownika hid_apple, sprawdź, które z tych poleceń (za pomocą terminala) coś zwraca. Cokolwiek zrobi, powie ci, którego sterownika używasz obecnie:

# 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

Aby tymczasowo przetestować ustawienia (ustawienia zostaną zresetowane po ponownym uruchomieniu):

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

Aby zastosować zmiany na stałe (utrzymuj przy ponownym uruchomieniu):

# 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

W przypadku starszych wersji MacBook Pro korzystających z modułu hid_apple, w poleceniach używaj „hid_apple” zamiast „applespi”.


2

Dla tych, którym odmówiono dostępu i nie mogli po prostu przedrostka „sudo” użyć:

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

Zmień na 2lub cokolwiek, a następnie, Ctrl+Xaby zapisać.


lepszym sposobem jest echo 2| sudo tee /sys/module/hid_apple/parameters/fnmode, ale wszystkie te rozwiązania są przejściowe ... Jednym ze sposobów na utrzymanie trwałości (na systemdprzykład w środowiskach takich jak Fedora): echo "w /sys/module/hid_apple/parameters/fnmode - - - - 2" | sudo tee /etc/tmpfiles.d/rev_fn_key.conf
nhed

1

W starszej dyskusji podano rozwiązanie z parametrem rozruchowym jądra, który może być preferowany (aplikacja ogólnosystemowa, modyfikacja tylko linii w /etc/default/grubitp.).

Tylko zgodnie z tym rozwiązaniem fnmodeustawiono na 2zamiast 0. Ja tylko starałem się ustawić hid_apple/parameters/fnmodesię 2i ma pożądany efekt zbyt. Może logika jest po prostu `1 →„wymagają Fndostępu F1, F2, F3, ...”w porównaniu z wszystkimi innymi wartościami?


Cześć RJVB, witamy na unix.SE. Zredagowałem twoją odpowiedź, aby poprawić formatowanie. Spójrz na źródło, aby nauczyć się niektórych sztuczek.
drs
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.