Визначення комбінацій клавіш за допомогою клавіші Fn


17

Я звик натискати Fn+, Leftщоб імітувати Homeклавішу і Fn+ Rightдля End.

На клавіатурі з фізичними Homeта Endклавішами використання цих Fnкомбінацій клавіш не працює.

Як я можу зіставити спеціальні Fnкомбінації клавіш на Ubuntu Linux?


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

Хтось, хто використовує сучасні ноутбуки (2018), такі як HP Specter x360 (хоча він має окремі клавіші PgUp тощо) та Dell XPS знає, чи виявлена ​​функціональна клавіша, як і інші клавіші?
— MycrofD

1
Я використовую Lenovo Thinkpad X1 Carbon з Fnклавішею, який визначається як код коду 151 xev. Поки Fnклавіша натискається Leftі Rightклавіші не створюють подій. Fn+F2не створює подій, але працює як очікувалося - зменшує гучність.
— СУОР

Відповіді:


16

На відміну від модифікаторів, таких як Alt і Ctrl, натискання клавіші Fn ніколи не передається операційній системі. Ключ просто модифікує скан-коди інших клавіш, тому натискання клавіші Fn+ Rightбуде імітувати клавішу End, навіть якщо вона фізично не існує, але вони не відрізняються ОС. Така поведінка керується виключно електронікою клавіатури, і тому її неможливо змінити, не псуючи схему чи мікроконтролер.


2
Є одна операційна система та комп'ютер, які, безумовно, є винятком з цього правила, і це ноутбуки Mac. Ви можете змінити цей ключ, використовуючи фактично Карабінер. Також Thinkpads надсилають цей ключ в операційну систему, але це не ключ модифікатора, як у Mac.
— Вільям

2
Це не правда. xevпоказує Fnнатискання клавіш.
— СУОР

1
Ну, на моїй машині Dell з Debian 10 xevнічого не відображається при натисканні клавіші Fn.
— П’єр

12

У більшості систем неможливо виявити сам Fnключ, але ви можете спробувати скористатися:

$ xev | grep --line-buffered keysym

щоб дізнатися, які ключі Fn-Leftі Fn-Rightнадіслати. ( grepЩойно зменшує шум.)

Якщо вам пощастить, ці натискання клавіш надішлють на машину неважливі натискання клавіш, які ви потім зможете перезавантажити.

Наприклад, у моїй системі xevпоказано, що мій Fn-Leftнатискання клавіші насправді надсилає XF86AudioPrevподію:

state 0x0, keycode 173 (keysym 0x1008ff16, XF86AudioPrev), same_screen YES,

Я легко перероблю це, щоб перетворити його на Homeключову подію:

$ xmodmap -e 'keysym XF86AudioPrev = Home'

Сподіваємось, ви зможете зробити те ж саме для End, PageUp та PageDown.

На жаль, якщо xev не отримує нічого унікального при натисканні, Fn-Leftто вам не пощастить.

Дуже шкода, що Fnнатискання клавіш не надсилаються безпосередньо, як інші клавіші модифікатора. Якби вони були, у нас було б набагато більше можливостей налаштувати їх значення за допомогою програмного забезпечення.


На жаль, fn на моєму ноутбуці не реєструється при натисканні клавіш і натискання подій так само, як і в інших клавішах. Ви можете перезавантажити його на інші клавіші.
— Вільям

5

Я відкрився xevв терміналі. Він визначає , коли я натискаю Shift, Ctrl, Altі Win( Super), але коли я натиснув на Fnкнопку він не виявить.

Отже програмне забезпечення не має нічого спільного з Fnключем; вирішити, який ключ надсилатиметься до програмного забезпечення (наприклад, ключ Homeабо Endключ), залежить від апаратного забезпечення .

Тож ваша клавіатура повинна вже мати її, щоб мати можливість це робити.

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