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


17

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

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

如何FnUbuntu Linux 上映射自定义键盘快捷键?


1
绑定多媒体密钥的可能重复。它可能不是问题描述中的精确副本,但可以通过相同的基础过程来解决。
丹尼尔·安德森

是否有人在使用像HP Spectre x360这样的现代(2018)笔记本电脑(尽管它具有单独的PgUp等键)和Dell XPS是否知道是否像其他键一样检测到功能键?
MycrofD

1
我正在使用带Fn按键的Lenovo Thinkpad X1 Carbon ,该按键被识别为按键代码151 xev。虽然FnLeftRight键不产生事件。Fn+F2不产生任何事件,但按预期工作-降低音量。
Suor

Answers:


16

与Alt和Ctrl等修饰符不同,按Fn键绝不会与操作系统通信。该键仅修改其他键的扫描代码,因此按Fn+ Right会模拟结束键,即使它实际上可能并不存在,但也无法由操作系统区分。此行为仅由键盘电子设备控制,因此在不干扰电路或微控制器的情况下无法更改。


2
有一个操作系统和计算机绝对是该规则的例外,这就是mac笔记本电脑。您实际上可以使用Karabiner修改此密钥。另外,ThinkPad将此键发送给操作系统,但它不是Mac上的修饰键。
威廉

2
这不是真的。xev显示Fn按键。
Suor

1
好吧,在装有Debian 10的戴尔机器上,xev按Fn键不会显示任何内容。
Pierre

12

在大多数系统上,无法检测到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是,没有像其他修饰键那样直接发送按键。如果是这样的话,我们将拥有更多通过软件来配置其含义的能力。


不幸的是,我的笔记本电脑上的fn不会通过保持键修改和键正常工作的方式来注册键上和键下事件。您可以将其重新映射到其他一个按键。
威廉

5

xev在航站楼开了。当我按下它可以检测ShiftCtrlAlt,和WinSuper),但是当我按下Fn键它不检测它。

因此,该软件与Fn密钥无关。由硬件决定将什么密钥发送到软件(例如HomeEnd密钥)。

因此,您的键盘必须已经具有它才能执行此操作。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.