Как поменять «fn» использование функциональных клавиш на клавиатуре Apple в Linux

43

У меня есть клавиатура Apple Slim (USB), и если я хочу использовать одну из функциональных клавиш как есть, я также должен сначала нажать клавишу «fn». В противном случае он попытается выполнить другую функцию клавиши, например, увеличить или уменьшить интенсивность дисплея, изменить громкость / отключение звука и т. Д.

Кроме того, клавиша fn фактически находится в положении клавиши «вставить» для обычных клавиатур. Как я могу все это исправить?

Мне очень нравится эта клавиатура, так как она делает мой набор текста намного проще и намного тише. Но некоторые из тех отображений, которые отличаются, иногда меня беспокоят.

Спасибо :-)

jfmessier
источник

Ответы:

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

Или, в случае выдачи разрешения:

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

Это избавит вас от необходимости перезагрузки. Добавление опции - хорошая идея, поэтому изменение сохраняется после перезагрузки.

  • 0 = клавиша Fn отключена
  • 1 = клавиша Fn нажата по умолчанию
  • 2 = клавиша Fn выпущена по умолчанию

Из /drivers/hid/hid-apple.c строки 42 :

Режим клавиши fn на клавиатурах Apple (0 = отключен, [1] = fkeyslast, 2 = fkeysfirst)

Cynyr
источник
1
Кажется, я не использую драйвер Apple, так что это не работает для меня. У меня есть неординарная яблочная клавиатура (Razor Black Widow).
Kieveli
1
@Kieveli, когда люди произносят клавиатуру «яблоко», они не имеют в виду это в общем, они имеют в виду, как в оборудовании Apple. если аппарат не Apple, то вы не будете использовать драйвер Apple. ты должен выяснить, какой водитель ты первый
DallaRosa
4
Для Ubuntu 14.04.3 ответ @cynyr не работает. Вы получаете «разрешение отказано». Рабочий один здесь: эхо 2 | sudo tee / sys / module / hid_apple / параметры / fnmode
akikara
по вопросам, связанным с разрешением, см. [ askubuntu.com/questions/103643/…
Diogo
34

Ответ выше о том, какую опцию установить /etc/modprobe.d, немного устарел. К счастью, есть подробная документация по поддержке Apple Keyboard :

  1. Отредактируйте или создайте файл /etc/modprobe.d/hid_apple.conf, например:

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

  2. Добавьте эту строку в ранее открытый файл.

    options hid_apple fnmode=2

  3. Сохраните файл и выполните следующую команду, чтобы уведомить модуль hid_apple о перезагрузке его конфигурации.

    sudo update-initramfs -u

  4. перезагружать

Я лично рекомендую sudo update-initramfs -u -k allобновить его для всех ваших ядер (если вы уверены, что настройка работает как положено).

Установка под fnmode /sysвсе еще работает так же:

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

Значения в обоих методах следующие:

  • 0 = отключено: отключить клавишу «FN». Нажатие «FN» + «F8» будет вести себя так же, как вы нажимаете «F8»
  • 1 = fkeyslast: функциональные клавиши используются в качестве последней клавиши. Нажатие клавиши «F8» будет действовать как специальная клавиша. Нажатие «FN» + «F8» будет вести себя как F8.
  • 2 = fkeysfirst: функциональные клавиши используются в качестве первой клавиши. Нажатие клавиши «F8» будет вести себя как F8. Нажатие «fn» + «F8» будет действовать как специальная клавиша (воспроизведение / пауза)
wuputah
источник
Спасибо - я добавил этот метод в свои скрипты установки Linux Mint по адресу github.com/duncan-bayne/mint-setup
Дункан Бэйн,
Все, что вам нужно, это запустить от имени пользователя root (по крайней мере в дистрибутиве Fedora), echo 2 > /sys/module/hid_apple/parameters/fnmodeчтобы сделать FN основным и Mac-контроллерами второстепенным. О да!! Спасибо, Вупута!
Илья Ростовцев
Бонус: если вы хотите, чтобы ваш ключ работал, вы также должны установить iso_layout = 0. Мой hid_apple.conf выглядит следующим образом: options hid_apple fnmode = 2 iso_layout = 0
Фалес Кеолин,
5

Из Здесь

как поменять местами функцию клавиши Fn?

Сначала отредактируйте /etc/modprobe.d/options

sudo nano /etc/modprobe.d/options

и убедитесь, что он имеет линию

параметры скрыты pb_fnmode = 2

Затем сохраните и выйдите. Наконец, нам нужно обновить ramfs:

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

Тогда просто перезагрузись!

Джо
источник
0
sudo add-apt-repository ppa:daniel.pavel/solaar
sudo apt-get update
sudo apt-get install solaar
solaar

с клавиатурой Mac вы получите переключатель toggle fn

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

user2167582
источник
0

Это сработало для меня на Fedora 24

  1. Создайте новый файл для запуска SystemD.

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

    Убедитесь, что файл содержит следующее

    [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. Перезагрузите SystemD, чтобы прочитать ваш новый файл

    systemctl --system daemon-reload

  3. Запустите службу SystemD.

    systemctl start mac-keyboard.service

  4. Включите службу для запуска при загрузке.

    systemctl enable mac-keyboard.service

Ссылка: https://www.dalemacartney.com/2013/06/14/changing-the-default-function-key-behaviour-in-fedora/

FDisk
источник