Как сделать активацию функциональных клавиш постоянной в Arch

Как сделать активацию функциональных клавиш постоянной в Arch

Поискав, я нашелЭтот вопростам объясняется, как активировать функциональные клавиши, только изменения, похоже, не являются постоянными.

при каждом запуске содержимое файла /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

Это не оптимальное решение, но на данный момент я сделал так:

  1. Создание файла службы systemd:Используйте nanoтекстовый редактор с правами суперпользователя для создания нового файла службы systemd. Команда для запуска:sudo nano /etc/systemd/system/fnmode.service.

  2. Заполнение файла службы:Файл службы необходимо заполнить следующими директивами 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
    
  3. Включение службы systemd:Службу systemd необходимо включить для запуска при загрузке системы. Это можно сделать с помощью команды sudo systemctl enable fnmode.

  4. Запуск службы systemd:Наконец, службу systemd можно запустить немедленно, без необходимости перезагрузки системы. Это можно сделать с помощью команды sudo systemctl start fnmode.

Связанный контент