Comment échanger l'utilisation «fn» des touches de fonction sur un clavier Apple sous Linux

43

J'ai un clavier Apple slim (USB) et si je veux utiliser une des touches de fonction en l'état, je dois aussi appuyer sur la touche "fn" en premier. Sinon, il essaiera d’exécuter l’autre fonction de la touche, telle que l’augmentation ou la diminution de l’intensité de l’affichage, la modification du volume / muet, etc.

De plus, la touche fn est en fait dans la position de la touche "insérer" pour les claviers standard. Comment puis-je régler tout ça?

J'aime beaucoup ce clavier, car il me permet de taper beaucoup plus facilement et beaucoup plus silencieusement. Mais certains de ces mappages qui sont différents me dérangent parfois.

Merci :-)

jfmessier
la source

Réponses:

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

Ou, en cas de problème d'autorisation:

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

Cela vous évitera de devoir redémarrer. L'ajout de l'option est une bonne idée, de sorte que le changement persiste lors des redémarrages.

  • 0 = clé Fn désactivée
  • 1 = touche Fn enfoncée par défaut
  • 2 = touche Fn libérée par défaut

De la /drivers/hid/hid-apple.c ligne 42 :

Mode de la touche fn sur les claviers Apple (0 = désactivé, [1] = fkeyslast, 2 = fkeysfirst)

Cynyr
la source
1
Il semble que je n'utilise pas de pilote Apple, donc cela ne fonctionne pas pour moi. J'ai un clavier Apple sans marque (Razor Black Widow).
Kieveli
1
@Kieveli quand les gens disent clavier Apple, ils ne veulent pas dire génériquement, ils veulent dire comme dans le matériel Apple. Si le matériel n'est pas Apple, vous n'utiliserez pas le pilote Apple. tu dois savoir quel pilote tu es le premier
DallaRosa
4
Pour Ubuntu 14.04.3, répondre par @cynyr ne fonctionne pas. Vous obtenez "permission refusée". On travaille ici: echo 2 | sudo tee / sys / module / hid_apple / parameters / fnmode
akikara
pour les problèmes avec permission, voir [ askubuntu.com/questions/103643/…
Diogo
35

La réponse ci-dessus concernant l'option à paramétrer /etc/modprobe.dest un peu dépassée. Heureusement, il existe une documentation détaillée sur le support Apple Keyboard :

  1. Editez ou créez le fichier /etc/modprobe.d/hid_apple.conf, par exemple:

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

  2. Ajoutez cette ligne au fichier précédemment ouvert.

    options hid_apple fnmode=2

  3. Enregistrez le fichier et exécutez la commande suivante pour informer le module hid_apple de recharger sa configuration.

    sudo update-initramfs -u

  4. Redémarrage

Je recommanderais personnellement sudo update-initramfs -u -k allde le mettre à jour pour tous vos noyaux (une fois que vous êtes sûr que le réglage fonctionne comme prévu).

Le réglage du mode fn /sysfonctionne toujours de la même manière:

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

Les valeurs dans les deux méthodes sont les suivantes:

  • 0 = désactivé: désactive la touche 'fn'. Appuyez sur 'fn' + 'F8' pour vous comporter comme si vous n'aviez appuyé que sur 'F8'
  • 1 = fkeyslast: les touches de fonction sont utilisées en dernier lieu. En appuyant sur la touche 'F8' agira comme une touche spéciale. Appuyer sur 'fn' + 'F8' se comportera comme un F8.
  • 2 = fkeysfirst: les touches de fonction sont utilisées en tant que première touche. Appuyer sur la touche 'F8' se comportera comme un F8. Appuyez sur 'fn' + 'F8' agira comme touche spéciale (lecture / pause)
Wuputah
la source
Merci - j'ai ajouté cette méthode à mes scripts d'installation de Linux Mint à l' adresse github.com/duncan-bayne/mint-setup
Duncan Bayne le
Tout ce dont vous avez besoin est de s’exécuter en tant que root (du moins sur Fedora) echo 2 > /sys/module/hid_apple/parameters/fnmodepour que FN devienne primaire et que les contrôles Mac soient secondaires. Oh oui!! Merci, wuputah !!
Ilia Rostovtsev
Bonus: Si vous voulez que votre ~ clé fonctionne, vous devez également définir iso_layout = 0. Mon fichier hid_apple.conf se présente comme suit: options hid_apple fnmode = 2 iso_layout = 0
Thales Ceolin
5

D' ici

Comment échange-t-on la fonction de la touche Fn?

Commencez par éditer /etc/modprobe.d/options

sudo nano /etc/modprobe.d/options

et assurez-vous qu'il a la ligne

options masquées pb_fnmode = 2

Puis enregistrez et quittez. Enfin, nous devons mettre à jour ramfs:

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

Ensuite, redémarrez!

Joe
la source
1

Cela a fonctionné pour moi sur Fedora 24

  1. Créez un nouveau fichier pour que SystemD puisse démarrer.

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

    Assurez-vous que le fichier contient les éléments suivants

    [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. Rechargez SystemD pour lire votre nouveau fichier

    systemctl --system daemon-reload

  3. Démarrez le service SystemD.

    systemctl start mac-keyboard.service

  4. Activer le service pour démarrer au démarrage.

    systemctl enable mac-keyboard.service

Référence: https://www.dalemacartney.com/2013/06/14/changing-the-default-function-key-behaviour-in-fedora/

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

avec un clavier mac, vous aurez un bouton radio pour toggle fn

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

utilisateur2167582
la source