Jak zamienić użycie „fn” klawiszy funkcyjnych na klawiaturze Apple w systemie Linux

43

Mam cienką klawiaturę Apple (USB) i jeśli chcę korzystać z jednego z klawiszy funkcyjnych w obecnej postaci, najpierw muszę również nacisnąć klawisz „fn”. W przeciwnym razie spróbuje wykonać inną funkcję klawisza, taką jak zwiększenie lub zmniejszenie intensywności wyświetlania, zmiana głośności / wyciszenia itp.

Również klawisz fn znajduje się w pozycji klawisza „insert” w przypadku zwykłych klawiatur. Jak mogę to naprawić?

Naprawdę podoba mi się ta klawiatura, ponieważ sprawia, że ​​pisanie jest znacznie łatwiejsze i cichsze. Ale niektóre z tych mapowań, które są różne, czasami mnie mylą.

Dzięki :-)

jfmessier
źródło

Odpowiedzi:

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

Lub w przypadku wydania pozwolenia:

echo 0 | sudo tee /sys/module/hid_apple/parameters/fnmode

Zapobiegnie to ponownemu uruchomieniu. Dodanie opcji jest dobrym pomysłem, więc zmiana będzie się powtarzać po ponownym uruchomieniu komputera.

  • 0 = Klawisz Fn wyłączony
  • 1 = domyślnie wciśnięty klawisz Fn
  • 2 = Domyślnie zwolniony klawisz Fn

Z /drivers/hid/hid-apple.c linii 42 :

Tryb klawisza fn na klawiaturach Apple (0 = wyłączony, [1] = fkeyslast, 2 = fkeysfirst)

Cynyr
źródło
1
Wygląda na to, że nie używam sterownika Apple, więc to nie działa dla mnie. Mam klawiaturę jabłkową off-brand (Razor Black Widow).
Kieveli
1
@Kieveli, gdy ludzie mówią, że klawiatura Apple nie ma na myśli tego ogólnie, mają na myśli, jak w sprzęcie Apple. jeśli sprzęt nie jest jabłkiem, nie będziesz używać sterownika Apple. musisz dowiedzieć się, który kierowca jesteś pierwszy
DallaRosa
4
W systemie Ubuntu 14.04.3 odpowiedź @cynyr nie działa. Otrzymujesz „odmowę dostępu”. Działający jest tutaj: echo 2 | sudo tee / sys / module / hid_apple / parameters / fnmode
akikara
do problemów z pozwoleniem, patrz [ askubuntu.com/questions/103643/...
Diogo
35

Powyższa odpowiedź na temat tego, która opcja jest ustawiona, /etc/modprobe.djest nieco nieaktualna. Na szczęście istnieje szczegółowa dokumentacja dotycząca obsługi klawiatury Apple :

  1. Edytuj lub utwórz plik /etc/modprobe.d/hid_apple.conf, np .:

    gksudo gedit /etc/modprobe.d/hid_apple.conf

  2. Dodaj ten wiersz do poprzednio otwartego pliku.

    options hid_apple fnmode=2

  3. Zapisz plik i wykonaj następujące polecenie, aby powiadomić moduł hid_apple o ponownym załadowaniu konfiguracji.

    sudo update-initramfs -u

  4. Restart

Osobiście polecam sudo update-initramfs -u -k allzaktualizować go dla wszystkich jąder (gdy masz pewność, że ustawienie działa zgodnie z oczekiwaniami).

Ustawienie trybu fn poniżej /sysnadal działa w ten sam sposób:

sudo -s 'echo 2 > /sys/module/hid_apple/parameters/fnmode'

Wartości w obu metodach są następujące:

  • 0 = wyłączony: wyłącz klawisz „fn”. Naciśnięcie „fn” + „F8” zachowuje się tak, jakbyś tylko naciskał „F8”
  • 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.
  • 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 jak klawisz specjalny (odtwarzanie / pauza)
wuputah
źródło
Dzięki - dodałem tę metodę do moich skryptów instalacyjnych Linux Mint na github.com/duncan-bayne/mint-setup
Duncan Bayne,
Wszystko, czego potrzebujesz, to uruchomić jako root (przynajmniej na dystrybucji Fedory), echo 2 > /sys/module/hid_apple/parameters/fnmodeaby ustawić FN jako główny, a kontrolki Maca jako drugorzędne. O tak!! Dzięki Wuputah !!
Ilia Rostovtsev
Bonus: Jeśli chcesz, aby twój ~ klucz działał, powinieneś również ustawić iso_layout = 0. Mój plik hid_apple.conf wygląda następująco: options hid_apple fnmode = 2 iso_layout = 0
Thales Ceolin
5

od Tutaj

jak zamienimy funkcję klawisza Fn?

Najpierw edytuj /etc/modprobe.d/options

sudo nano /etc/modprobe.d/options

i upewnij się, że ma linię

opcje ukrył pb_fnmode = 2

Następnie zapisz i wyjdź. Na koniec musimy zaktualizować ramfs:

sudo update-initramfs -u -v -k uname -r

Następnie uruchom ponownie!

Joe
źródło
1

To działało dla mnie w Fedorze 24

  1. Utwórz nowy plik, aby uruchomić SystemD.

    gedit /usr/lib/systemd/system/mac-keyboard.service

    Upewnij się, że plik zawiera następujące elementy

    [Unit]
     Description=mac-keyboard
    [Service]
     Type=oneshot
     ExecStart=/bin/sh -c "echo 2 > /sys/module/hid_apple/parameters/fnmode"
     ExecStop=/bin/sh -c "echo 1 > /sys/module/hid_apple/parameters/fnmode"
     RemainAfterExit=yes
    [Install]
     WantedBy=multi-user.target
    
  2. Załaduj ponownie SystemD, aby odczytać nowy plik

    systemctl --system daemon-reload

  3. Uruchom usługę SystemD.

    systemctl start mac-keyboard.service

  4. Włącz usługę, aby uruchomić przy rozruchu.

    systemctl enable mac-keyboard.service

Odniesienie: https://www.dalemacartney.com/2013/06/14/changing-the-default-function-key-behaviour-in-fedora/

FDisk
źródło
0
sudo add-apt-repository ppa:daniel.pavel/solaar
sudo apt-get update
sudo apt-get install solaar
solaar

z klawiaturą Mac dostaniesz przycisk opcji toggle fn

http://i.stack.imgur.com/9omc6.png

użytkownik2167582
źródło