Визначення комбінацій клавіш за допомогою клавіші 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.