在 Linux 下的 Apple 键盘上,如何在没有 fn 修饰键的情况下使功能键工作?

rya*_*rch 46 linux keyboard keyboard-layout apple

我在 Linux 上使用 Apple 有线键盘。默认情况下,功能键(F1、F2、F3 等)需要fn按下该键才能工作。如果没有fn按键,这些按键可以控制屏幕亮度、音量和音乐曲目控制等功能。

有什么办法可以交换这些,所以功能键不需要fn修饰符,但其他功能(亮度等)需要?

ffl*_*ing 64

您需要添加02/sys/module/hid_apple/parameters/fnmode.

IE:

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

关于这两个值之间的差异似乎有些混乱。引用Ubuntu 文档

  1. 0 = 禁用:禁用“fn”键。按“fn”+“F8”的行为就像你只按“F8”一样
  2. 1 = fkeyslast :功能键用作最后一个键。按“F8”键将用作特殊键。按 'fn'+'F8' 将表现得像 F8。
  3. 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
Run Code Online (Sandbox Code Playgroud)

归功于https://askubuntu.com/a/7553

  • 要使此更改永久化(重新启动后,该值已为我自动重置),请参阅 https://askubuntu.com/a/7553/197712 (2认同)

Mis*_*sha 7

对于任何使用较新的 MacBook Pro(2016 年及更高版本)需要Applespi驱动程序来使键盘和触摸板工作的人在此线程上绊倒,这里是如何使其工作,因为我找不到任何其他线程来解释这一点较新的 Mac。

据我了解,驱动有效地替代了 hid_apple 模块的作用,所以要编辑的文件略有不同。

首先,要验证您使用的是 applespi 驱动程序而不是 hid_apple 驱动程序,请检查这些命令中的哪些(使用终端)返回了一些东西。无论哪种方式都会告诉您当前使用的是哪个驱动程序:

# If this returns "applespi", you are using applespi
ls /sys/module | grep applespi

# If this returns "hid_apple", you are using hid_apple
ls /sys/module | grep hid_apple
Run Code Online (Sandbox Code Playgroud)

临时测试设置(重启后设置将被重置):

echo 2 | sudo tee -a /sys/module/applespi/parameters/fnmode
Run Code Online (Sandbox Code Playgroud)

永久应用更改(坚持重新启动):

# 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
Run Code Online (Sandbox Code Playgroud)

对于使用 hid_apple 模块的较旧 MacBook Pro,请在命令中使用“hid_apple”而不是“applespi”。