定义涉及 Fn 键的键盘快捷键

定义涉及 Fn 键的键盘快捷键

我习惯按Fn+Left来模拟Home键,按Fn+Right来模拟End

Home在具有物理和键的键盘上End,使用这些Fn键盘快捷键不起作用。

如何映射自定义Fn键盘快捷键UbuntuLinux?

答案1

与 Alt 和 Ctrl 等修饰键不同,按下 Fn 键不会传达给操作系统。该键仅会修改其他键的扫描码,因此按下Fn+Right会模拟 End 键,尽管它可能实际上不存在,但操作系统无法区分它们。此行为完全由键盘电子设备控制,因此无法在不干扰电路或微控制器的情况下进行更改。

答案2

在大多数系统上,无法检测Fn密钥本身,但您可以尝试使用:

$ xev | grep --line-buffered keysym

找出要发送的键Fn-LeftFn-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在终端中打开了。当我按下ShiftCtrlAltWin( Super) 时,它可以检测到,但当我按下Fn键时,它却检测不到。

因此,软件与密钥无关Fn;由硬件决定将哪个密钥发送给软件(例如HomeEnd密钥)。

所以你的键盘必须已经具备该功能才能够做到这一点。

相关内容