Em um teclado Apple no Linux, como faço para que as teclas de função funcionem sem a tecla modificadora fn?

18

Eu uso um teclado com fio da Apple no Linux. Por padrão, as teclas de função (F1, F2, F3, etc) exigem que a fntecla seja pressionada para que funcionem. Sem a fntecla, essas teclas controlam recursos como Brilho da tela, Volume e Controle da faixa de música.

Existe alguma maneira de trocá-las, para que as teclas de função não exijam o fnmodificador, mas as outras funções (brilho etc.)?

ryanlerch
fonte

Respostas:

23

Você precisa adicionar 0ou 2inserir /sys/module/hid_apple/parameters/fnmode.

ou seja:

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

Parece haver alguma confusão quanto à diferença entre os dois valores. Citando a documentação do Ubuntu :

  1. 0 = desabilitado: desabilite a tecla 'fn'. Pressionar 'fn' + 'F8' se comportará como se você apenas pressionasse 'F8'
  2. 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.
  3. 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).

Note que isso também funciona para mim no Fedora.

briguento
fonte
-lo de fnmode = sem sublinhado
Yauhen Yakimovich
Muito obrigado!!!
Shivam
3

Eu descobri que é muito simples alterar o comportamento desse modificador, como root altere o valor no arquivo /sys/module/hid_apple/parameters/fnmodede 1para 0. Por exemplo:

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

Observe que em algumas versões mais antigas do linux, esse arquivo estava localizado em /sys/module/apple/parameters/fnmode. Além disso, essa alteração não persistirá quando você reiniciar.

ryanlerch
fonte
2

Para aqueles que têm acesso negado e não podem simplesmente usar o prefixo "sudo", use:

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

Altere para 2ou o que for e, em seguida, Ctrl+Xsalve.

Marc
fonte
melhor maneira é echo 2| sudo tee /sys/module/hid_apple/parameters/fnmode, mas todas estas soluções são transitórias .... Uma maneira de tornar persistente (em systemdambientes como Fedora, por exemplo): echo "w /sys/module/hid_apple/parameters/fnmode - - - - 2" | sudo tee /etc/tmpfiles.d/rev_fn_key.conf
nhed
2

Para quem se deparar com esse tópico usando um dos MacBook Pros (2016 e posteriores) mais recentes que precisam do driver maçãspi para fazer o teclado e o touchpad funcionarem, veja como fazê-lo funcionar, pois não encontrei nenhum outro tópico explicando isso para Macs mais recentes.

Pelo que entendi, o driver efetivamente substitui a função do módulo hid_apple, portanto os arquivos a serem editados são um pouco diferentes.

Primeiro, para verificar se você está usando o driver maçãspi e não o driver hid_apple, verifique qual desses comandos (usando o terminal) retorna algo. O que quer que seja, informará qual driver você está usando no momento:

# 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

Para testar as configurações temporariamente (as configurações serão redefinidas após uma reinicialização):

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

Para aplicar as alterações permanentemente (persista com reinicializações):

# 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

Para profissionais mais antigos do MacBook que usam o módulo hid_apple, use "hid_apple" em vez de "applespi" nos comandos.

Misha
fonte
1

Em uma discussão mais antiga, uma solução é fornecida com um parâmetro de inicialização do kernel que pode ser preferível (aplicação em todo o sistema, modificação de apenas uma linha /etc/default/grub, etc).

Somente de acordo com essa solução, fnmodeé definido como em 2vez de 0. Eu apenas tentei definir hid_apple/parameters/fnmodecomo 2, e tem o efeito desejado também. Talvez a lógica é simplesmente `1 → "exigem Fnacesso F1, F2, F3, ..." vs. todos os outros valores?

RJVB
fonte
Oi RJVB, bem-vindo ao unix.SE. Editei sua resposta para melhorar a formatação. Dê uma olhada na fonte para aprender alguns dos truques.
DRS