Come scambiare l'uso "fn" dei tasti funzione su una tastiera Apple in Linux


43

Ho una tastiera Apple Slim (USB) e se voglio usare uno dei tasti funzione così com'è, devo anche premere prima il tasto "fn". Altrimenti, proverà ad eseguire l'altra funzione del tasto, come aumentare o diminuire l'intensità del display, cambiare il volume / muto, ecc ....

Inoltre, il tasto fn è in realtà nella posizione del tasto "Inserisci" per tastiere normali. Come posso risolvere tutto ciò?

Mi piace molto questa tastiera, poiché rende la mia digitazione molto più semplice e anche molto più silenziosa. Ma alcune di quelle mappature che a volte sono diverse mi infastidiscono.

Grazie :-)

Risposte:


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

Oppure, in caso di rilascio dell'autorizzazione:

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

Questo ti impedirà di dover riavviare. L'aggiunta dell'opzione è una buona idea, quindi la modifica persiste attraverso i riavvii.

  • 0 = tasto Fn disabilitato
  • 1 = tasto Fn premuto per impostazione predefinita
  • 2 = Tasto Fn rilasciato per impostazione predefinita

Dalla /drivers/hid/hid-apple.c linea 42 :

Modalità del tasto fn sulle tastiere Apple (0 = disabilitato, [1] = fkeyslast, 2 = fkeysfirst)


1
Sembra che non sto usando un driver Apple, quindi questo non funziona per me. Ho una tastiera Apple fuori marchio (Razor Black Widow).
Kieveli,

1
@Kieveli quando le persone dicono che la tastiera della mela non la intendono genericamente, intendono come nell'hardware della mela. se l'hardware non è Apple, non utilizzerai il driver Apple. devi scoprire quale autista sei il primo
DallaRosa,

4
Per Ubuntu 14.04.3, la risposta di @cynyr non funziona. Ottieni "permesso negato". Il lavoro è qui: echo 2 | sudo tee / sys / module / hid_apple / parametri / fnmode
akikara

per problemi con autorizzazione, consultare [ askubuntu.com/questions/103643/…
Diogo

35

La risposta sopra su quale opzione impostare /etc/modprobe.dè un po 'obsoleta. Fortunatamente c'è una documentazione dettagliata sul supporto della tastiera Apple :

  1. Modifica o crea il file /etc/modprobe.d/hid_apple.conf, ad esempio:

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

  2. Aggiungi questa riga al file precedentemente aperto.

    options hid_apple fnmode=2

  3. Salvare il file ed eseguire il comando seguente per notificare al modulo hid_apple di ricaricare la sua configurazione.

    sudo update-initramfs -u

  4. Reboot

Raccomanderei personalmente sudo update-initramfs -u -k alldi aggiornarlo per tutti i tuoi kernel (una volta che sei sicuro che l'impostazione funzioni come previsto).

L'impostazione della modalità fn sotto /sysfunziona ancora allo stesso modo:

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

I valori in entrambi i metodi sono i seguenti:

  • 0 = disabilitato: disabilita il tasto 'fn'. Premendo 'fn' + 'F8' si comporterà come se si premesse solo 'F8'
  • 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.
  • 2 = prima chiave: 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)

Grazie - Ho aggiunto questo metodo ai miei script di installazione di Linux Mint su github.com/duncan-bayne/mint-setup
Duncan Bayne,

Tutto ciò che serve è eseguire come root (almeno su Fedora distro) echo 2 > /sys/module/hid_apple/parameters/fnmodeper rendere FN primario e controlli Mac secondari. O si!! Grazie, wuputah !!
Ilia Rostovtsev,

Bonus: se vuoi far funzionare la tua chiave ~, dovresti anche impostare iso_layout = 0. Il mio hid_apple.conf è simile al seguente: opzioni hid_apple fnmode = 2 iso_layout = 0
Thales Ceolin

5

Da qui

come scambiamo la funzione del tasto Fn?

Prima modifica /etc/modprobe.d/options

sudo nano /etc/modprobe.d/options

e assicurati che abbia la linea

opzioni nascoste pb_fnmode = 2

Quindi salva ed esci. Infine, dobbiamo aggiornare ramfs:

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

Quindi riavvia!


1

Questo ha funzionato per me su Fedora 24

  1. Creare un nuovo file per l'avvio di SystemD.

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

    Assicurarsi che il file contenga quanto segue

    [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. Ricarica SystemD per leggere il tuo nuovo file

    systemctl --system daemon-reload

  3. Avviare il servizio SystemD.

    systemctl start mac-keyboard.service

  4. Abilita il servizio per l'avvio all'avvio.

    systemctl enable mac-keyboard.service

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


0
sudo add-apt-repository ppa:daniel.pavel/solaar
sudo apt-get update
sudo apt-get install solaar
solaar

con una tastiera mac otterrai un pulsante di opzione per toggle fn

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

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.