
Поискав, я нашелЭтот вопростам объясняется, как активировать функциональные клавиши, только изменения, похоже, не являются постоянными.
при каждом запуске содержимое файла /sys/module/hid_apple/parameters/fnmode
возвращается к3.
Почему3? разве допустимые параметры не находятся только в диапазоне0-2?
Как сделать изменения в /sys/module/hid_apple/parameters/fnmode
файле постоянными?
решение1
Почему 3? Разве допустимые параметры не находятся только в диапазоне 0-2?
Нет, опция 3
была добавлена в 2022 году для Linux 5.18, тогда как документация, которую вы читаете, по-видимому, последний раз обновлялась примерно в 2012 году.
$ modinfo hid-apple
parm: fnmode:Mode of fn key on Apple keyboards (0 = disabled,
1 = fkeyslast, 2 = fkeysfirst, [3] = auto) (uint)
Как сделать изменения в файле /sys/module/hid_apple/parameters/fnmode постоянными?
Это параметр модуля, поэтому вы можете настроить его а) через modprobe или б) через командную строку ядра.
При загрузке модулей через modprobe их параметры считываются из файлов
/etc/modprobe.d
(см.man modprobe.d
страницу руководства):options hid-apple fnmode=2
Не забудьте перезапустить программу
mkinitcpio -P
, чтобы скопировать файл в initramfs (скорее всего, именно в этот момент модуль действительно загрузится).Параметры по умолчанию также можно указать через командную строку ядра (через GRUB или что-то подобное):
linux root=... rw hid_apple.fnmode=2
(По крайней мере, я думаю, что это должно сработать.)
решение2
Это не оптимальное решение, но на данный момент я сделал так:
Создание файла службы systemd:Используйте
nano
текстовый редактор с правами суперпользователя для создания нового файла службы systemd. Команда для запуска:sudo nano /etc/systemd/system/fnmode.service.
Заполнение файла службы:Файл службы необходимо заполнить следующими директивами systemd:
[Unit] Description=Set hid_apple fnmode [Service] Type=oneshot ExecStart=/bin/bash -c 'echo 2 > /sys/module/hid_apple/parameters/fnmode' [Install] WantedBy=multi-user.target
Включение службы systemd:Службу systemd необходимо включить для запуска при загрузке системы. Это можно сделать с помощью команды
sudo systemctl enable fnmode
.Запуск службы systemd:Наконец, службу systemd можно запустить немедленно, без необходимости перезагрузки системы. Это можно сделать с помощью команды
sudo systemctl start fnmode
.