Определение сочетаний клавиш с использованием клавиши Fn

Определение сочетаний клавиш с использованием клавиши Fn

Я привык нажимать Fn+ Leftдля имитации Homeклавиши и Fn+ Rightдля End.

На клавиатуре с физическими клавишами Homeи Endэти Fnсочетания клавиш не работают.

Как можно назначить пользовательские сочетания Fnклавиш наУбунтуЛинукс?

решение1

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

решение2

В большинстве систем невозможно определить 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нажатия клавиш не отправляются напрямую, как другие клавиши-модификаторы. Если бы они были, у нас было бы гораздо больше возможностей для настройки их значения через программное обеспечение.

решение3

Я открыл xevв терминале. Он определяет, когда я нажимаю Shift, Ctrl, Alt, и Win( Super), но когда я нажимаю Fnклавишу, он ее не определяет.

Таким образом, программное обеспечение не имеет никакого отношения к ключу; решение о том, какой ключ отправить программному обеспечению (например, ключ или ) Fn, принимается аппаратным обеспечением .HomeEnd

Поэтому на вашей клавиатуре уже должна быть эта функция, чтобы вы могли это сделать.

Связанный контент