Synetech дає дуже читабельне пояснення щодо Fnключів тут
Технічні деталі
Коли ви натискаєте клавішу на клавіатурі, контролер клавіатури (невеликий
мікросхеми всередині клавіатури) виявляє електричну ланцюг і обробляє її для розшифровки, яку клавішу натискали, а потім відправляє
код сканування на материнську плату . Операційна система отримує код сканування від BIOS, а потім виконує всі необхідні дії для обробки цього натискання клавіші.
З більшості клавіш це досить просто. Якщо натиснути A
клавішу, контролер клавіатури надсилає код сканування на материнську плату, після чого передає її в ОС, яка, в свою чергу, зазвичай друкує "A". (Якщо ОС виявить, що одна з клавіш модифікатора в даний час утримується, то вона може зробити щось інше. Насправді ви можете налаштувати її, щоб робити все, що завгодно, коли Aклавіша натискається з модифікаторами або без них.)
Тепер Fnключ особливий. Коли ви натискаєте його самостійно, нічого не відбувається, тому що це виключно модифікаційна клавіша і не (в цілому) не означає нічого робити самостійно. Коли ви утримуєте його і натискаєте іншу клавішу, контролер клавіатури виявляє це і дивиться у вбудовану таблицю, щоб побачити, чи це відома комбінація. Якщо комбо немає в таблиці, він просто ігнорує його, але якщо комбо в таблиці, то він шукає пов'язаний код сканування і надсилає це.
Що в результаті бачить ОС? Він не бачить код сканування для Fnключа та код сканування для іншого ключа. Натомість він бачить єдиний код сканування, пов'язаний з будь-якою функцією, для якої було встановлено Fn-combo. Наприклад, якщо виробник ноутбука встановив
Fn+ Down Arrowкомбо для зменшення гучності, тоді ОС бачить код сканування, пов’язаний із Volume Down, яким є деякі клавіатури.
Також зауважте, що Fnключ працює незалежно від операційної системи.
Більше того, ця стаття може допомогти вам направити в правильному напрямку:
Ядро має свій власний scancode
для
keycode
відображення таблиці, тому він відображає певну скан до клавіатурним. Ви можете заглянути в /usr/include/linux/input.h, щоб побачити, яке ваше ядро використовує для сканування коду для відображення ключового коду - воно називається a
keymap
.
Постскрипт
Мені, можливо, доведеться дещо заперечувати попередні твердження, що Fnклавіші працюють повністю незалежно від ОС; не вникаючи тут більше технічних деталей, здається, що ваша ОС може не "підтримувати" всі або деякі Fnклавіші вашої клавіатури , див., наприклад:
scancode
пов’язано з, наприклад, "keycode 238".