Fn 키와 관련된 키보드 단축키 정의

Fn 키와 관련된 키보드 단축키 정의

나는 키를 시뮬레이션하기 위해 Fn+를 누르고 에 대해 +를 누르는 데 익숙합니다 .LeftHomeFnRightEnd

Home실제 키 와 키가 있는 키보드에서는 End이러한 Fn키보드 단축키를 사용할 수 없습니다.

Fn사용자 정의 키보드 단축키를 어떻게 매핑합니까 ?우분투리눅스?

답변1

Alt 및 Ctrl과 같은 수정자와 달리 Fn 키를 누르는 것은 운영 체제에 전달되지 않습니다. 키는 단지 다른 키의 스캔코드를 수정하므로 Fn+를 누르면 RightEnd 키가 물리적으로 존재하지 않더라도 OS에서는 구별할 수 없는 End 키를 에뮬레이트합니다. 이 동작은 키보드 전자 장치에 의해서만 제어되므로 회로나 마이크로컨트롤러를 건드리지 않고는 변경할 수 없습니다.

답변2

대부분의 시스템에서는 키 자체를 감지하는 것이 불가능 Fn하지만 다음을 사용해 볼 수 있습니다.

$ xev | grep --line-buffered keysym

어떤 키를 찾아 보내 Fn-Left려면 Fn-Right. ( grep단지 소음이 줄어듭니다.)

운이 좋다면 키를 누를 때 중요하지 않은 키 입력이 컴퓨터로 전송되어 다시 매핑할 수 있습니다.

예를 들어, 내 시스템에서는 키 누르기가 실제로 이벤트를 보내는 xev것을 보여줍니다 .Fn-LeftXF86AudioPrev

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. 어떤 키가 소프트웨어로 전송되는지 결정하는 것은 하드웨어에 달려 있습니다(예: Home또는 End키).

따라서 이 작업을 수행하려면 키보드에 이미 해당 기능이 있어야 합니다.

관련 정보