Como trocar o uso “fn” de teclas de função em um teclado da Apple no Linux

40

Eu tenho um teclado fino da Apple (USB) e, se eu quiser usar uma das teclas de função como estão, também preciso pressionar a tecla "fn" primeiro. Caso contrário, ele tentará executar a outra função da tecla, como aumentar ou diminuir a intensidade da exibição, alterar o volume / mudo, etc ....

Além disso, a tecla fn está na posição da tecla "inserir" para teclados normais. Como posso consertar tudo isso?

Eu realmente gosto deste teclado, pois facilita muito a minha digitação e muito mais silencioso também. Mas alguns desses mapeamentos que são diferentes me incomodam.

Obrigado: -)

    
por jfmessier 07.12.2009 / 14:01

5 respostas

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

Ou, em caso de problema de permissão:

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

Isso impedirá que você tenha que reinicializar. Adicionar a opção é uma boa ideia, por isso a alteração persiste durante as reinicializações.

  • 0 = tecla Fn desativada
  • 1 = tecla Fn pressionada por padrão
  • 2 = tecla Fn liberada por padrão

De /drivers/hid/hid-apple.c linha 42 :

Mode of fn key on Apple keyboards (0 = disabled, [1] = fkeyslast, 2 = fkeysfirst)

    
por 18.12.2010 / 19:27
32

A resposta acima sobre qual opção definir em /etc/modprobe.d está um pouco desatualizada. Felizmente, há documentação detalhada sobre o suporte do Apple Keyboard :

  1. Edit or create the file /etc/modprobe.d/hid_apple.conf, e.g.:

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

  2. Add this line to the previously open file.

    options hid_apple fnmode=2

  3. Save the file and execute the following command to notify hid_apple module to reload it's configuration.

    sudo update-initramfs -u

  4. Reboot

Eu pessoalmente recomendo sudo update-initramfs -u -k all para atualizá-lo para todos os seus kernels (uma vez que você esteja confiante de que a configuração funciona como esperado).

Configurar o fnmode em /sys ainda funciona da mesma maneira:

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

Os valores em ambos os métodos são os seguintes:

  • 0 = disabled : Disable the 'fn' key. Pressing 'fn'+'F8' will behave like you only press 'F8'
  • 1 = fkeyslast : Function keys are used as last key. Pressing 'F8' key will act as a special key. Pressing 'fn'+'F8' will behave like a F8.
  • 2 = fkeysfirst : Function keys are used as first key. Pressing 'F8' key will behave like a F8. Pressing 'fn'+'F8' will act as special key (play/pause)
    
por 18.03.2011 / 20:33
5

De aqui

como trocamos a função da tecla Fn?

Primeiro edite o /etc/modprobe.d/options

sudo nano /etc/modprobe.d/options

e verifique se ele tem a linha

options hid pb_fnmode=2

Em seguida, salve e saia. Por fim, precisamos atualizar os ramfs:

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

Depois é só reiniciar!

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

com um teclado mac, você receberá um botão de opção para toggle fn

    
por 02.11.2016 / 18:23
0

Isso funcionou para mim no Fedora 24

  1. Crie um novo arquivo para o SystemD iniciar.

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

    Verifique se o arquivo contém o seguinte

    [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. Recarregue o SystemD para ler seu novo arquivo

    systemctl --system daemon-reload

  3. Inicie o serviço do SystemD.

    systemctl start mac-keyboard.service

  4. Ativar serviço para iniciar na inicialização.

    systemctl enable mac-keyboard.service

Referência: link

    
por 10.11.2016 / 13:49