我在 Linux 上使用 Apple 有线键盘。默认情况下,功能键(F1、F2、F3 等)需要fn
按下该键才能工作。如果没有该fn
键,这些键可以控制屏幕亮度、音量和音乐曲目控制等功能。
有什么方法可以交换这些功能,这样功能键不需要修饰符fn
,但其他功能(亮度等)需要修饰符?
答案1
您需要将0
或2
添加到/sys/module/hid_apple/parameters/fnmode
.
IE:
echo 2 > /sys/module/hid_apple/parameters/fnmode
关于这两个值之间的差异似乎存在一些混乱。引用Ubuntu 文档:
- 0 = 禁用:禁用“fn”键。按“fn”+“F8”就像只按“F8”
- 1 = fkeyslast :功能键用作最后一个键。按“F8”键将充当特殊键。按“fn”+“F8”将表现得像 F8。
- 2 = fkeysfirst :功能键用作第一个键。按“F8”键将表现得像 F8。按“fn”+“F8”将充当特殊键(播放/暂停)。
请注意,这也适用于我在 Fedora 上的情况。
正如一些人评论的那样,这种变化是暂时的。您可以将其粘贴到登录 shell 的 RC 文件或 cron 中,这样您就不必担心它。
您还可以更改驱动程序设置以使此更改永久生效,如下所示:
echo options hid_apple fnmode=2 | sudo tee -a /etc/modprobe.d/hid_apple.conf
sudo update-initramfs -u -k all
# reboot when convenient
答案2
对于任何使用较新的 MacBook Pro(2016 及更高版本)的人偶然发现此线程,并且需要苹果斯皮驱动程序使键盘和触摸板工作,以下是如何使其工作,因为我找不到任何其他线程为较新的 Mac 解释这一点。
据我了解,驱动程序有效地取代了 hid_apple 模块的角色,因此要编辑的文件略有不同。
首先,要验证您使用的是 applespi 驱动程序而不是 hid_apple 驱动程序,请检查此命令返回的内容(使用终端)。它会告诉您当前正在使用哪个驱动程序:
# If this returns "applespi", you are using applespi
ls /sys/module | grep -e applespi -e hid_apple
测试设置暂时地(重启后设置将被重置):
echo 2 | sudo tee -a /sys/module/applespi/parameters/fnmode
应用更改永久(重启后仍然存在):
# Add the option for the fn key
echo options applespi fnmode=2 | sudo tee -a /etc/modprobe.d/applespi.conf
# Update initramfs bootfile
sudo update-initramfs -u -k all
# Reboot to test (optional)
sudo reboot
对于使用 hid_apple 模块的较旧 MacBook Pro,请在命令中使用“hid_apple”而不是“applespi”。
答案3
我发现更改此修改器的行为非常简单,作为 root 将文件中的值/sys/module/hid_apple/parameters/fnmode
从更改1
为0
。例如:
# echo 0 > /sys/module/hid_apple/parameters/fnmode
请注意,在某些旧版本的 Linux 中,此文件位于/sys/module/apple/parameters/fnmode
。此外,重新启动后此更改不会保留。
答案4
此外,我建议使用以下命令更新内核配置:
sudo update-initramfs -u