如何在 Linux 中的 Apple 键盘上交换“fn”功能键的使用

jfm*_*ier 48 keyboard keymap ubuntu

我有一个苹果超薄键盘 (USB),如果我想按原样使用其中一个功能键,我还必须先按“fn”键。否则,它会尝试执行按键的其他功能,例如增加或减少显示强度、更改音量/静音等......

同样,对于普通键盘,fn 键实际上位于“插入”键的位置。我该如何解决所有这些问题?

我真的很喜欢这个键盘,因为它让我的打字更轻松,也更安静。但是其中一些不同的映射有时会困扰我。

谢谢 :-)

小智 68

echo 0 > /sys/module/hid_apple/parameters/fnmode
Run Code Online (Sandbox Code Playgroud)

或者,在权限问题的情况下:

echo 0 | sudo tee /sys/module/hid_apple/parameters/fnmode
Run Code Online (Sandbox Code Playgroud)

这将防止您必须重新启动。添加该选项是个好主意,因此更改会在重新启动后持续存在。

  • 0 = Fn 键禁用
  • 1 = 默认按下 Fn 键
  • 2 = 默认释放 Fn 键

/drivers/hid/hid-apple.c 第 42 行

Apple 键盘上的 fn 键模式(0 = 禁用,[1] = fkeyslast,2 = fkeysfirst)

  • 对于 Ubuntu 14.04.3,@cynyr 的回答不起作用。你得到“权限被拒绝”。工作之一在这里:echo 2 | 须藤三通/sys/module/hid_apple/parameters/fnmode (5认同)

小智 35

上面关于设置什么选项的答案/etc/modprobe.d有点过时了。幸运的是,有关于 Apple 键盘支持的详细文档

  1. 编辑或创建文件 /etc/modprobe.d/hid_apple.conf,例如:

    gksudo gedit /etc/modprobe.d/hid_apple.conf

  2. 将此行添加到先前打开的文件中。

    options hid_apple fnmode=2

  3. 保存文件并执行以下命令以通知 hid_apple 模块重新加载其配置。

    sudo update-initramfs -u

  4. 重启

我个人建议sudo update-initramfs -u -k all为您的所有内核更新它(一旦您确信设置按预期工作)。

在下设置 fnmode/sys仍然以相同的方式工作:

sudo -s 'echo 2 > /sys/module/hid_apple/parameters/fnmode'
Run Code Online (Sandbox Code Playgroud)

两种方法中的值如下:

  • 0 = 禁用:禁用“fn”键。按“fn”+“F8”的行为就像你只按“F8”一样
  • 1 = fkeyslast :功能键用作最后一个键。按“F8”键将用作特殊键。按 'fn'+'F8' 将表现得像 F8。
  • 2 = fkeysfirst :功能键用作第一个键。按“F8”键的行为类似于 F8。按“fn”+“F8”将作为特殊键(播放/暂停)


joe*_*joe 5

这里

我们如何交换Fn键的功能?

首先编辑/etc/modprobe.d/options

须藤纳米 /etc/modprobe.d/options

并确保它有这条线

选项隐藏 pb_fnmode=2

然后保存退出。最后,我们需要更新 ramfs:

须藤更新initramfs -u -v -k uname -r

然后只需重新启动!