Функциональные клавиши Apple Aluminium в Linux

Apple Aluminium работала в GNU/Linux вполне адекватно до релиза ядра 3.0.9 даже в OpenBox без всякого Desktop Environment по типу KDE или GNOME. Но как я уже отмечал в этой статье в ядрах >= 3.0.9 немного изменили код в hid_apple.c вследствие чего функционал F — клавиш могла быть получена только комбинацией Fn + F(n). Немного разобравшись в теме оказалось что девелоперы оставили пути для отступления в коде и можно изменить поведение клавиатуры очень простым способом.

Если посмотреть информацию о модуле hid_apple, то увидим, что модуль hid_apple может работать в нескольких режимах, по умолчанию fkeyslast

modinfo hid_apple
vermagic:       3.6.2-ck-KVM SMP preempt mod_unload
parm:           fnmode:Mode of fn key on Apple keyboards (0 = disabled, [1] = fkeyslast, 2 = fkeysfirst) (uint)
parm:           iso_layout:Enable/Disable hardcoded ISO-layout of the keyboard. (0 = disabled, [1] = enabled) (uint)

Параметр fkeyslast (1) передающийся по умолчанию модулю при загрузке заставляет обрабатывать нажатие клавиш F(n) только в сочетании с клавишей Fn. Нам же нужен fkeysfirst (2) который даст возможность использовать F — клавиши без обязательного нажатия Fn. То есть все, что нам нужно сделать — это лишь поменять режим в котором будет работать модуль hid_apple. Дальше открывается широкое многообразие способов которым это можно сделать.
Для себя в Gentoo я сделал это, как мне кажется самым простым способом, а именно добавил строку

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

В принципе данный способ будет работать в абсолютно любом дистрибутиве где hid_apple будет собран модулем, остается лишь найти дистроспецифичное решение о том, как заставить этот код автоматически выполняться при запуске системы. ЕМНИП в Ubuntu такой код можно добавить в

/etc/rc.local

Оцените статью