Как поменять "fn" использование функциональных клавиш на клавиатуре Apple в Linux
У меня есть клавиатура Apple Slim (USB), и если я хочу использовать одну из функциональных клавиш как есть, я также должен сначала нажать клавишу "fn ". В противном случае он попытается выполнить другую функцию клавиши, например, увеличить или уменьшить интенсивность дисплея, изменить громкость / отключение звука и т. Д.
Кроме того, клавиша fn фактически находится в положении клавиши "вставить" для обычных клавиатур. Как я могу все это исправить?
Мне очень нравится эта клавиатура, так как она делает мой набор текста намного проще и намного тише. Но некоторые из тех отображений, которые отличаются, иногда меня беспокоят.
Спасибо:-)
6 ответов
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)
Ответ выше о том, какую опцию установить в /etc/modprobe.d
немного устарела. К счастью, есть подробная документация по поддержке Apple Keyboard:
Отредактируйте или создайте файл /etc/modprobe.d/hid_apple.conf, например:
gksudo gedit /etc/modprobe.d/hid_apple.conf
Добавьте эту строку в ранее открытый файл.
options hid_apple fnmode=2
Сохраните файл и выполните следующую команду, чтобы уведомить модуль hid_apple о перезагрузке его конфигурации.
sudo update-initramfs -u
- перезагружать
Я лично рекомендую 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" будет действовать как специальная клавиша (воспроизведение / пауза)
Отсюда
как поменять местами функцию клавиши Fn?
Сначала отредактируйте /etc/modprobe.d/options
sudo nano /etc/modprobe.d/options
и убедитесь, что он имеет линию
параметры скрыты pb_fnmode=2
Затем сохраните и выйдите. Наконец, нам нужно обновить ramfs:
sudo update-initramfs -u -v -k
uname -r
Тогда просто перезагрузись!
Это сработало для меня на Fedora 24
Создайте новый файл для запуска 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
Перезагрузите SystemD, чтобы прочитать ваш новый файл
systemctl --system daemon-reload
Запустите службу SystemD.
systemctl start mac-keyboard.service
Включите службу для запуска при загрузке.
systemctl enable mac-keyboard.service
Ссылка: https://www.dalemacartney.com/2013/06/14/changing-the-default-function-key-behaviour-in-fedora/
В Ubuntu 22.04 :
echo 1 > /sys/module/hid_apple/parameters/swap_fn_leftctrl
Или добавьте эту строку в /etc/modprobe.d/hid_apple.conf :
options hid_apple swap_fn_leftctrl=1
sudo add-apt-repository ppa:daniel.pavel/solaar
sudo apt-get update
sudo apt-get install solaar
solaar
с клавиатурой Mac вы получите переключатель toggle fn