Su una tastiera Apple sotto Linux, come faccio a far funzionare i tasti funzione senza il tasto modificatore fn?


19

Uso una tastiera cablata Apple su Linux. Per impostazione predefinita, i tasti funzione (F1, F2, F3, ecc.) Richiedono che il fntasto sia premuto per funzionare. Senza il fntasto, questi tasti controllano funzionalità come Luminosità schermo, Volume e Controllo traccia musicale.

Esiste un modo per scambiarli, quindi i tasti funzione non richiedono il fnmodificatore, ma le altre funzioni (luminosità ecc.) Lo fanno?

Risposte:


24

Devi aggiungere 0o 2in /sys/module/hid_apple/parameters/fnmode.

vale a dire:

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

Sembra esserci un po 'di confusione riguardo a quale potrebbe essere la differenza tra i due valori. Citando la documentazione di Ubuntu :

  1. 0 = disabilitato: disabilita il tasto 'fn'. Premendo 'fn' + 'F8' si comporterà come se si premesse solo 'F8'
  2. 1 = fkeyslast: i tasti funzione sono usati come ultimo tasto. Premendo il tasto 'F8' funzionerà come un tasto speciale. Premendo 'fn' + 'F8' si comporterà come un F8.
  3. 2 = prima: i tasti funzione sono usati come primo tasto. Premendo il tasto 'F8' si comporterà come un F8. Premere 'fn' + 'F8' fungerà da tasto speciale (riproduzione / pausa).

Nota che questo funziona anche per me su Fedora.


è fnmode = nessun carattere di sottolineatura
Yauhen Yakimovich,

Molte grazie!!!
Shivam,

3

Ho capito che è abbastanza semplice cambiare il comportamento di questo modificatore, poiché root cambia il valore nel file /sys/module/hid_apple/parameters/fnmodeda 1a 0. Per esempio:

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

Nota che in alcune versioni precedenti di Linux, questo file si trovava in /sys/module/apple/parameters/fnmode. Inoltre, questa modifica non persisterà al riavvio.


2

Per coloro a cui viene negato l'accesso e non possono semplicemente aggiungere il prefisso "sudo" utilizzare:

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

Modificalo su 2o qualsiasi altra cosa e poi Ctrl+Xper salvare.


il modo migliore è farlo echo 2| sudo tee /sys/module/hid_apple/parameters/fnmode, ma tutte queste soluzioni sono transitorie .... Un modo per rendere persistente (su systemdambienti come Fedora per esempio): echo "w /sys/module/hid_apple/parameters/fnmode - - - - 2" | sudo tee /etc/tmpfiles.d/rev_fn_key.conf
nhed

2

Per chiunque si imbatta in questo thread usando uno dei più recenti MacBook Pro (2016 e successivi) che hanno bisogno del driver applepi per far funzionare la tastiera e il touchpad, ecco come farlo funzionare, poiché non sono riuscito a trovare nessun altro thread che spieghi questo per Mac più recenti.

A quanto ho capito, il driver sostituisce efficacemente il ruolo del modulo hid_apple, quindi i file da modificare sono leggermente diversi.

Innanzitutto, per verificare che stai utilizzando il driver applepi e non il driver hid_apple, controlla quale di questi comandi (usando il terminale) restituisce qualcosa. Qualunque cosa ti dirà quale driver stai attualmente utilizzando:

# 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

Per testare temporaneamente le impostazioni (le impostazioni verranno ripristinate dopo il riavvio):

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

Per applicare le modifiche in modo permanente (persistere con i riavvii):

# 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

Per i MacBook Pro più anziani che usano il modulo hid_apple, usa "hid_apple" anziché "apple" nei comandi.


1

In una discussione precedente viene fornita una soluzione con un parametro di avvio del kernel che potrebbe essere preferibile (applicazione a livello di sistema, modifica di una sola riga in /etc/default/grub, ecc.).

Solo in base a tale soluzione, fnmodeè impostato su 2anziché 0. Ho solo cercato di impostare hid_apple/parameters/fnmodea 2, e ha l'effetto desiderato anche. Forse la logica è semplicemente `1 → "richiedono Fnper l'accesso F1, F2, F3, ..." contro tutti gli altri valori?


Ciao RJVB, benvenuto su unix.SE. Ho modificato la tua risposta per migliorare la formattazione. Dai un'occhiata alla fonte per imparare alcuni dei trucchi.
drs
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.