如题,很多客制化键盘只适配了 Windows/Mac 系统,在 Linux 下键盘会被识别为 Mac 系统,此时 F1~F12 不能发挥本身的功能。以下是网友提供的修复代码:
echo options hid_apple fnmode=2 | sudo tee -a /etc/modprobe.d/hid_apple.conf
sudo update-initramfs -u -k all
# 重新加载模块以应用更改
sudo modprobe -r hid_apple
sudo modprobe hid_apple
# 或者重启电脑
# sudo reboot
还原等操作参考 CSDN:ubuntu的键盘F1~F12没有反应/出现问题(被系统强制为功能键了)。
键盘测试:https://keyboard.bmcx.com/
知识盲区:
/etc/modprobe.d/hid_apple.conf
是一个配置文件,用于在 Linux 系统中配置 hid_apple 驱动程序的选项。hid_apple 驱动程序主要用于支持 Apple 设备上的键盘和其他输入设备。在这个文件中,你可以设置驱动程序的参数,以便对 Apple 设备进行更细粒度的控制。例如,你可以设置某些键的行为,或者启用/禁用特定功能。- 在 hid_apple 配置文件中,
options hid_apple fnmode=2
用于控制 Apple 键盘的功能键 (F1-F12) 的行为。fnmode=0
:功能键 (F1-F12) 的默认行为,通常是媒体控制功能(如音量调节、亮度调整等)。fnmode=1
:功能键的行为与 Mac 上的默认设置一致,即按下功能键时默认执行 F1-F12 的功能。fnmode=2
:功能键的行为设置为与 Windows 上的默认行为一致,即按下功能键时默认执行 F1-F12 的功能,而使用 Fn 键时才执行媒体控制功能。
tee
命令用于将标准输入中的内容复制到标准输出,并且将内容同时保存到文件中(同时将输出发送到终端和文件)。tee -a
代表 append,将内容追加到已经存在的文件中(而不是清空文件,文件不存在时会创建文件)。
update-initramfs
是一个在类 Unix 系统中用来创建或更新 initramfs 镜像的工具。initramfs 是 Linux 启动过程中使用的临时文件系统,它通常包含了许多启动时可能需要的驱动程序、模块和工具,用以帮助系统挂载真正的根文件系统。(Init RAM File System)-u
:更新现有的 initramfs,而不是创建新的。-k
:制定要更新或者创建的内核版本。-k all
:指定更新所有内核版本的 initramfs 文件。如果只想更新特定版本的内核,可以将 all 替换为内核版本号,比如 5.15.0-46-generic。
modprobe
是一个在 Linux 系统中用来管理内核模块的命令。它可以用于加载(插入)、卸载(移除)和查询内核模块,并处理模块之间的依赖关系。modprobe <module_name>
: 加载指定的模块及其所有依赖模块。modprobe -r <module_name>
: 卸载指定的模块及其所有不再需要的依赖模块。
评论区