Como trocar o uso "fn" das teclas de função em um teclado Apple no Linux

43

Eu tenho um teclado slim da Apple (USB) e, se quiser usar uma das teclas de função como está, 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 tela, alterar o volume / silenciar, etc.

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

Eu realmente gosto deste teclado, pois torna minha digitação muito mais fácil e muito mais silenciosa também. Mas alguns desses mapeamentos diferentes às vezes me incomodam.

Obrigado :-)

jfmessier
fonte

Respostas:

58
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ê precise reiniciar. Adicionar a opção é uma boa ideia, para que a alteração persista durante as reinicializações.

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

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

Modo da tecla fn nos teclados da Apple (0 = desativado, [1] = último teclado, 2 = primeiro teclado)

Cynyr
fonte
11
Parece que não estou usando um driver da apple, então isso não está funcionando para mim. Eu tenho um teclado Apple fora da marca (Razor Black Widow).
Kieveli
11
@Kieveli Quando as pessoas dizem que o teclado da Apple não o falam de maneira genérica, são como no hardware da Apple. se o hardware não for apple, você não usará o driver da apple. Você tem que descobrir qual driver que você está em primeiro lugar
Dallarosa
4
Para o Ubuntu 14.04.3, a resposta por @cynyr não funciona. Você recebe "permissão negada". Um trabalho está aqui: eco 2 | sudo tee / sys / module / hid_apple / parameters / fnmode
akikara
para problemas com permissão, consulte [ askubuntu.com/questions/103643/…
Diogo
35

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

  1. Edite ou crie o arquivo /etc/modprobe.d/hid_apple.conf, por exemplo:

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

  2. Adicione esta linha ao arquivo aberto anteriormente.

    options hid_apple fnmode=2

  3. Salve o arquivo e execute o seguinte comando para notificar o módulo hid_apple para recarregar sua configuração.

    sudo update-initramfs -u

  4. Reiniciar

Eu pessoalmente recomendo sudo update-initramfs -u -k allatualizá-lo para todos os seus kernels (quando você estiver confiante de que a configuração funcionará conforme o esperado).

Definir o modo fnmode /sysainda funciona da mesma maneira:

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

Os valores nos dois métodos são os seguintes:

  • 0 = desabilitado: desabilite a tecla 'fn'. Pressionar 'fn' + 'F8' se comportará como se você apenas pressionasse 'F8'
  • 1 = última tecla: as teclas de função são usadas como última tecla. Pressionar a tecla 'F8' atuará como uma tecla especial. Pressionar 'fn' + 'F8' se comportará como um F8.
  • 2 = fkeysfirst: As teclas de função são usadas como primeira tecla. Pressionar a tecla 'F8' se comportará como um F8. Pressionar 'fn' + 'F8' atuará como tecla especial (reproduzir / pausar)
wuputah
fonte
Graças - Eu adicionei este método para meus scripts de configuração do Linux Mint em github.com/duncan-bayne/mint-setup
Duncan Bayne
Tudo o que você precisa é executar como root (pelo menos na distro do Fedora) echo 2 > /sys/module/hid_apple/parameters/fnmodepara tornar o FN como primário e os controles do Mac secundários. Oh sim!! Obrigado, wuputah !!
Ilia Rostovtsev
Bônus: Se você quiser fazer sua ~ chave funcionar, você também deve definir iso_layout = 0. Meus hid_apple.conf parecido com este: opções hid_apple fnmode = 2 iso_layout = 0
Thales Ceolin
5

A partir daqui

como trocamos a função da tecla Fn?

Primeiro edite o /etc/modprobe.d/options

sudo nano /etc/modprobe.d/options

e verifique se tem a linha

opções ocultadas pb_fnmode = 2

Salve e saia. Por fim, precisamos atualizar o ramfs:

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

Depois é só reiniciar!

Joe
fonte
1

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 SystemD.

    systemctl start mac-keyboard.service

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

    systemctl enable mac-keyboard.service

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

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

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

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

user2167582
fonte