Linux 下外接键盘的功能键 F1-F12 映射模式设定修复
2024/10/9大约 2 分钟
前情
最近将办公用的 ThinkPad X1 Carbon 6th 系统重装为了 Linux,但是在使用时发现,键盘的功能键区 (F1~F12) 的默认行为是多媒体功能,即控制屏幕亮度、音量等功能。
当我尝试按 F2 ,使用重命名时,结果却是控制了屏幕亮度。在正常情况下,这些功能键应该是要配合 Fn 键一起才能触发的。
最初,我以为是键盘的问题,因为笔记本本身键盘的功能键区使用正常,而且可以通过 Fn+Esc 切换锁定状态,但是外接键盘并没有此功能,且尝试其他按键也没有恢复正常。
经过多番搜索查询,在 Linux 上,适配 MacOS 的多模键盘不会将任何 F1-F12 功能键映射为实际的 F 键值,而是默认将它们视为多媒体键。 Fn+F1-12 的组合也不会起作用。
但是可以通过如下操作,切换 Fn 模式,来控制功能键默认的映射模式。
配置
在 shell 输入:
echo 2 | sudo tee /sys/module/hid_apple/parameters/fnmode
通过向 /sys/module/hid_apple/parameters/fnmode
文件中写入不同的值,可切换不同的模式:
- 0 禁用功能键,按 ‘Fn’ + ‘F8’ 等同于 F8
- 1 默认功能键,按 ‘F8’ 触发功能键 (play/pause),按 ‘Fn’ + ‘F8’ 触发 F8 键
- 2 默认非功能键,按‘F8’触发 F8 键,按‘Fn’ + ‘F8’触发多媒体功能 (play/pause)
此时,键盘应该已经可以正常使用。
不过,以上配置重启后即失效,可通过将设置写入配置文件使配置永久生效:
echo "options hid_apple fnmode=2" | sudo tee -a /etc/modprobe.d/hid_apple.conf
重启(已尝试,单纯重启并无变化)或者 执行如下命令:
sudo update-initramfs -u //Ubuntu、Debian
mkinitcpio -P //ArchLinux
End.
🎉🎉🎉