Як змусити функціональні клавіші працювати на клавіатурі Apple під Linux, що працює без клавіші модифікатора fn?


20

Я використовую дротову клавіатуру Apple в Linux. За замовчуванням функціональні клавіші (F1, F2, F3 тощо) вимагають fnнатискання клавіші, щоб вони працювали. Без fnклавіші ці клавіші керують такими функціями, як яскравість екрана, гучність та контроль музичної доріжки.

Чи є спосіб змінити їх навколо, тому функціональні клавіші не потребують fnмодифікатора, а інші функції (яскравість тощо) роблять?

Відповіді:


25

Вам потрібно додати 0або 2в /sys/module/hid_apple/parameters/fnmode.

тобто:

echo 2 > /sys/module/hid_apple/parameters/fnmode

Здається, є деяка плутанина щодо того, яка може бути різниця між цими двома значеннями. Цитуючи документацію на Ubuntu :

  1. 0 = вимкнено: вимкнути клавішу 'fn'. Натискання 'fn' + 'F8' поводиться так, що ви лише натискаєте "F8"
  2. 1 = fkeyslast: функціональні клавіші використовуються як остання клавіша. Натискання клавіші "F8" діятиме як спеціальна клавіша. Натискання 'fn' + 'F8' буде вести себе як F8.
  3. 2 = fkeysfirst: Функціональні клавіші використовуються як перша клавіша. Натискання клавіші "F8" буде вести себе як F8. Натискання 'fn' + 'F8' буде діяти як спеціальна клавіша (відтворення / пауза).

Зауважте, що це також працює для мене у Fedora.


це fnmode = немає підкреслення
Яуген Якимович,

Дуже дякую!!!
Шиви

3

Я зрозумів, що змінити поведінку цього модифікатора досить просто, оскільки root змінить значення у файлі /sys/module/hid_apple/parameters/fnmodeз 1на 0. Наприклад:

# echo 0> / sys / module / hid_apple / parametri / fnmode

Зауважте, що в деяких старих версіях Linux цей файл знаходився в /sys/module/apple/parameters/fnmode. Крім того, ця зміна не збережеться при перезавантаженні.


3

Для тих, хто натрапляє на цей потік, використовуючи один із нових MacBook Pro (2016 та новіших версій), яким потрібен драйвер яблука, щоб клавіатура та тачпад працювали, ось як зробити цю роботу, тому що я не зміг знайти жодну іншу тему, що пояснювала б це новіші Маки.

Наскільки я розумію, драйвер ефективно замінює роль модуля hid_apple, тому файли для редагування дещо відрізняються.

По-перше, щоб переконатися, що ви використовуєте драйвер яблука, а не драйвер hid_apple, перевірте, яка з цих команд (за допомогою терміналу) щось повертає. Залежно від того, хто вам каже, який драйвер ви зараз використовуєте:

# If this returns "applespi", you are using applespi
ls /sys/module | grep applespi

# If this returns "hid_apple", you are using hid_apple
ls /sys/module | grep hid_apple

Щоб тимчасово перевірити налаштування (налаштування будуть скинуті після перезавантаження):

echo 2 | sudo tee -a /sys/module/applespi/parameters/fnmode

Щоб застосувати зміни постійно (зберігати перезавантаження):

# Add the option for the fn key
echo options applespi fnmode=2 | sudo tee -a /etc/modprobe.d/applespi.conf
# Update initramfs bootfile
sudo update-initramfs -u -k all
# Reboot to test (optional)
sudo reboot

Для старих MacBook Pro, що використовують модуль hid_apple, використовуйте в командах "hid_apple", а не "яблучні".


2

Для тих, хто отримує відмову в доступі і не може просто використовувати префікс "sudo", використовуйте:

sudo nano /sys/module/hid_apple/parameters/fnmode

Змініть його на 2або що завгодно, а потім Ctrl+Xзбережіть.


кращий спосіб - echo 2| sudo tee /sys/module/hid_apple/parameters/fnmodeале всі ці рішення тимчасові .... Один із способів зробити стійкими (наприклад, у systemdтаких середовищах, як Fedora): echo "w /sys/module/hid_apple/parameters/fnmode - - - - 2" | sudo tee /etc/tmpfiles.d/rev_fn_key.conf
nhed

1

У більш старій дискусії пропонується рішення з параметром завантаження ядра, який може бути кращим (загальносистемне застосування, модифікація лише рядка в /etc/default/grubтощо).

Тільки згідно з цим рішенням fnmodeвстановлюється 2замість 0. Я просто спробував встановити hid_apple/parameters/fnmodeв 2, і він має бажаний ефект теж. Може бути , логіка просто `1 →« вимагають Fnдоступу F1, F2, F3, ... »проти всіх інших цінностей?


Привіт RJVB, ласкаво просимо до unix.SE. Я відредагував вашу відповідь, щоб покращити форматування. Погляньте на джерело, щоб дізнатися деякі хитрощі.
вр
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.