Cómo intercambiar el uso "fn" de las teclas de función en un teclado Apple en Linux

43

Tengo un teclado delgado de Apple (USB) y si quiero usar una de las teclas de función tal como está, también tengo que presionar primero la tecla "fn". De lo contrario, intentará realizar la otra función de la tecla, como aumentar o disminuir la intensidad de la pantalla, cambiar el volumen / silenciar, etc.

Además, la tecla fn está realmente en la posición de la tecla "insertar" para teclados normales. ¿Cómo puedo arreglar todo eso?

Realmente me gusta este teclado, ya que hace que mi escritura sea mucho más fácil y mucho más silenciosa también. Pero algunas de esas asignaciones que son diferentes a veces me molestan.

Gracias :-)

jfmessier
fuente

Respuestas:

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

O, en caso de problema de permiso:

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

Esto evitará que tengas que reiniciar. Agregar la opción es una buena idea, por lo que el cambio persiste durante los reinicios.

  • 0 = tecla Fn deshabilitada
  • 1 = tecla Fn presionada por defecto
  • 2 = tecla Fn liberada por defecto

Desde la /drivers/hid/hid-apple.c línea 42 :

Modo de tecla fn en teclados Apple (0 = deshabilitado, [1] = fkeyslast, 2 = fkeysfirst)

Cynyr
fuente
1
Parece que no estoy usando un controlador de Apple, así que esto no funciona para mí. Tengo un teclado de manzana fuera de marca (Razor Black Widow).
Kieveli
1
@Kieveli cuando las personas dicen que el teclado de Apple no lo dicen genéricamente, sino como en el hardware de Apple. Si el hardware no es Apple, entonces no utilizará el controlador de Apple. tienes que averiguar qué conductor eres primero
DallaRosa
44
Para Ubuntu 14.04.3, la respuesta de @cynyr no funciona. Obtienes "permiso denegado". Trabajando uno está aquí: echo 2 | sudo tee / sys / module / hid_apple / parameters / fnmode
akikara
para problemas con permiso, consulte [ askubuntu.com/questions/103643/…
Diogo el
35

La respuesta anterior sobre qué opción configurar /etc/modprobe.destá un poco desactualizada. Afortunadamente, hay documentación detallada sobre el soporte del teclado Apple :

  1. Edite o cree el archivo /etc/modprobe.d/hid_apple.conf, por ejemplo:

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

  2. Agregue esta línea al archivo abierto anteriormente.

    options hid_apple fnmode=2

  3. Guarde el archivo y ejecute el siguiente comando para notificar al módulo hid_apple para volver a cargar su configuración.

    sudo update-initramfs -u

  4. Reiniciar

Yo personalmente recomendaría sudo update-initramfs -u -k allactualizarlo para todos sus núcleos (una vez que esté seguro de que la configuración funciona como se esperaba).

La configuración de fnmode en /systodavía funciona de la misma manera:

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

Los valores en ambos métodos son los siguientes:

  • 0 = deshabilitado: deshabilita la tecla 'fn'. Al presionar 'fn' + 'F8' se comportará como si solo presionaras 'F8'
  • 1 = fkeyslast: las teclas de función se utilizan como última tecla. Presionar la tecla 'F8' actuará como una tecla especial. Al presionar 'fn' + 'F8' se comportará como un F8.
  • 2 = fkeysfirst: las teclas de función se utilizan como primera tecla. Al presionar la tecla 'F8' se comportará como un F8. Presionando 'fn' + 'F8' actuará como tecla especial (reproducción / pausa)
wuputah
fuente
Gracias. He agregado este método a mis scripts de configuración de Linux Mint en github.com/duncan-bayne/mint-setup
Duncan Bayne
Todo lo que necesita es ejecutar como root (al menos en la distribución de Fedora) echo 2 > /sys/module/hid_apple/parameters/fnmodepara que FN sea primario y los controles de Mac secundarios. ¡¡Oh si!! Gracias wuputah !!
Ilia Rostovtsev
Bonificación: si desea que su clave ~ funcione, también debe establecer iso_layout = 0. Mi hid_apple.conf se ve así: opciones hid_apple fnmode = 2 iso_layout = 0
Thales Ceolin
5

Desde aquí

¿Cómo intercambiamos la función de la tecla Fn?

Primero edite /etc/modprobe.d/options

sudo nano /etc/modprobe.d/options

y asegúrese de que tenga la línea

opciones ocultas pb_fnmode = 2

Luego guardar y salir. Por último, necesitamos actualizar ramfs:

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

¡Entonces solo reinicie!

joe
fuente
1

Esto funcionó para mí en Fedora 24

  1. Cree un nuevo archivo para que se inicie SystemD.

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

    Asegúrese de que el archivo contenga lo siguiente

    [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. Vuelva a cargar SystemD para leer su nuevo archivo

    systemctl --system daemon-reload

  3. Inicie el servicio SystemD.

    systemctl start mac-keyboard.service

  4. Habilite el servicio para comenzar en el arranque.

    systemctl enable mac-keyboard.service

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

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

con un teclado mac obtendrá un botón de radio para toggle fn

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

usuario2167582
fuente