刚开箱先插上了电脑,启动了windows,没有问题。下载了驱动程序,也没有问题。
但当我进入linux时发现F1F2……F12工作不正常,不带Fn时这些键变成了多媒体键,功能和说明书上摁了Fn一样的效果。但是此时摁了Fn再摁这些键就会有其他奇怪的多媒体键。

解决办法

1. 刷入官方兼容驱动

刷入后windows和macos上的驱动会有问题
这个解决办法是在百度时候就在CSDN找到的GANSS 87C键盘在Linux无法正常使用的解决办法,那篇文章博主问了客服,得到了驱动,使用windows刷进去了
我也去问了客服,大差不差。
但问题在于:刷入后的后患是什么? 严重吗?
客服还说能刷回来,但有风险。倘若满足基本使用是能接受的,但是他们都没有说清问题是什么。

2. 更改为非“苹果”键盘模式

F1~ F12是多媒体键
我还是想linux这么自由,必然有办法自己动手解决。
在一位热心的群友发来的链接里得到了答案。ubuntu使用双模机械师K7机械键盘遇到的问题
本人电脑Arch Linux,最后一条命令执行不了。而事实上我没有那句话也成功了,重启后也是正常的。

echo 2 | sudo tee /sys/module/hid_apple/parameters/fnmode
echo options hid_apple fnmode=2 | sudo tee -a /etc/modprobe.d/hid_apple.conf
sudo update-initramfs -u -k all

得到更加确切的关键词后,我在Google搜索一通,找到了问题的正解
How to swap the “fn” use of Function keys on an Apple Keyboard in Linux
摘自里面的简短说明:

  • 0 = Fn key disabled
  • 1 = Fn key pressed by default
  • 2 = Fn key released by default
    From /drivers/hid/hid-apple.c line 42:

Mode of fn key on Apple keyboards (0 = disabled, [1] = fkeyslast, 2 = fkeysfirst)

Fn + F1~ F12出现其他奇怪的多媒体键

先前的单摁F1~ F12我在

$ evtest

里找不到MSC_SCAN值,没有办法使用udev修改键映射,但现在Fn+F1~ F12里面是有的。于是可以使用udev方式修改键映射。具体做法不赘述。实际使用中,其实但凡有MSC_SCAN值,就能改键盘映射,无论是键盘。当然这个方法这里也能使用
Xmodemap等的工具,但我更加推荐使用这个办法从底层修改映射。

udev hwdb 改映射

可以直接看/lib/udev/hwdb.d/60-keyboard.hwdb文件,里面讲的够详细了。
Linux keymapping with udev hwdb
keyboard hard remap keys?
吐槽一句:搞不懂为什么这么蠢,说了支持Windows、macos不带linux真就不支持呗……

Logo

更多推荐