Як поміняти "fn" використання функціональних клавіш на клавіатурі Apple в Linux


43

У мене яблучна струнка клавіатура (USB), і якщо я хочу використати одну з функціональних клавіш як є, мені також потрібно спочатку натиснути клавішу "fn". В іншому випадку він спробує виконати іншу функцію клавіші, наприклад збільшення або зменшення інтенсивності дисплея, зміну гучності / відключення звуку тощо.

Крім того, клавіша fn фактично знаходиться в положенні клавіші "вставити" для звичайних клавіатур. Як я можу все це виправити?

Мені дуже подобається ця клавіатура, оскільки вона значно полегшує моє введення тексту, а також набагато мовчить. Але деякі з цих відображень, які колись різні, помиляють мене.

Спасибі :-)

Відповіді:


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)


1
Здається, я не використовую драйвер яблук, тому це не працює для мене. У мене позабрендова яблучна клавіатура (Razor Black Widow).
Ківелі

1
@Kieveli, коли люди кажуть, що яблучна клавіатура не означає це загалом, вони мають на увазі, як у яблучному обладнання. якщо обладнання не є яблучним, ви не будете використовувати драйвер Apple. ви повинні дізнатися, який водій ви перший
DallaRosa

4
Для Ubuntu 14.04.3 відповідь @cynyr не працює. Вам отримують "відмову в дозволі". Тут працює один: echo 2 | sudo tee / sys / module / hid_apple / parametri / fnmode
akikara

Про проблеми з дозволом див. у [ askubuntu.com/questions/103643/…
Diogo

35

Відповідь вище про те, який варіант встановити /etc/modprobe.d, трохи застаріла. На щастя, існує детальна документація на підтримку клавіатури Apple :

  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' буде діяти як спеціальна клавіша (відтворення / пауза)

Дякую - я додав цей метод до моїх сценаріїв налаштування Linux Mint за адресою github.com/duncan-bayne/mint-setup
Duncan Bayne

Все, що вам потрібно, це запустити як root (хоча б у дистрибутиві Fedora), echo 2 > /sys/module/hid_apple/parameters/fnmodeщоб зробити FN як основний, а керування Mac вторинними. О так!! Дякую, вупутах !!
Ілля Ростовцев

Бонус: Якщо ви хочете змусити роботу клавіші ~, також слід встановити iso_layout = 0. Мій hid_apple.conf виглядає приблизно так: параметри hid_apple fnmode = 2 iso_layout = 0
Thales Ceolin

5

з Тут

як ми поміняємо функцію клавіші Fn?

Спочатку редагуйте /etc/modprobe.d/options

sudo nano /etc/modprobe.d/options

і переконайтеся, що в ньому є лінія

параметри приховано pb_fnmode = 2

Потім збережіть і вийдіть. Нарешті, нам потрібно оновити ramfs:

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

Тоді просто перезавантажте!


1

Це працювало для мене на 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/


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

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