我有一台 MacBook Pro,并在上面安装了 Archlinux。我读过他们的文章苹果键盘,并设法使功能键正常工作(意味着按 F5 实际上会触发 F5),修复了一些使用交换的键isolayout
,并希望交换 opt 和 cmd 键。
所以我创建了一个名为 的文件/etc/modprobe.d/apple_keyboard.conf
,并将以下内容放入其中:
options hid_apple fnmode=2 isolayout=0 swap_opt_cmd=1
这适用于 MacBook 的内置键盘,但我还有一个苹果蓝牙键盘,这些选项似乎不适用于它。特别是 opt 和 cmd 键不会与蓝牙键盘互换。我不知道我可以检查什么,所以如果能提供任何提示我将不胜感激。
更新:
刚刚意识到我已经写了isolayout
而不是iso_layout
.如果我更改它,< 和 ^ 键将在内部键盘上切换。我没有蓝牙键盘,但我会在周一更新,看看它是否至少与其他键盘兼容。但是,如果是这种情况,我需要一种方法来区分两个键盘......
更新
蓝牙键盘仍然不受设置影响iso_layout
...
更新
我被告知dmesg
在插入键盘后添加 , 的输出(我通过将其关闭然后再次打开来完成此操作),这就是出现的内容:
[56929.073859] hid-generic 0005:004C:026C.000B: unknown main item tag 0x0
[56929.073921] input: Magic Keyboard with Numeric Keypad as /devices/pci0000:00/0000:00:14.0/usb1/1-8/1-8.3/1-8.3:1.0/bluetooth/hci0/hci0:11/0005:004C:026C.000B/input/input24
[56929.074084] hid-generic 0005:004C:026C.000B: input,hidraw2: BLUETOOTH HID v0.80 Keyboard [Magic Keyboard with Numeric Keypad] on 34:36:3b:ca:dd:71
答案1
当蓝牙连接加载hid_generic
但 USB 连接加载正确的hid_apple
.
对我来说修复的是安装修补hid_apple
模块free5lot/hid-苹果补丁。维护人员经常向上游同步内核的最新更改。就我而言,在带有内核的 Ubuntu 20.04 上安装修补版本5.4.0-88-generic
解决了问题,现在蓝牙和 USB 都在使用,hid_apple
因此您设置的所有选项(/etc/modprobe.d/hid_apple.conf
例如swap_opt_cmd
我正在努力解决的选项)都可以正常工作。
下面是 USB 和蓝牙输出dmesg -w
。两者都带有前缀apple
,这意味着hid_apple
加载的修补模块实际上解决了问题。此外,最后一张展示了在应用修补版本之前它是如何加载的,使用hid-generic
.
[70447.039634] apple 0003:05AC:024F.0029: input,hidraw2: USB HID v1.11 Keyboard [Keychron Keychron K8] on usb-0000:00:14.0-2/input0
[70447.039919] apple 0003:05AC:024F.002A: Fn key not found (Apple Wireless Keyboard clone?), disabling Fn key handling
[70457.404925] input: Keychron K8 as /devices/pci0000:00/0000:00:1d.0/usb1/1-1/1-1.3/1-1.3:1.0/bluetooth/hci0/hci0:256/0005:05AC:024F.002B/input/input155
[70457.405245] apple 0005:05AC:024F.002B: input,hidraw2: BLUETOOTH HID v1.05 Keyboard [Keychron K8] on 48:45:20:82:6c:33
安装补丁模块之前:
[69784.281885] input: Keychron K8 Keyboard as /devices/pci0000:00/0000:00:1d.0/usb1/1-1/1-1.3/1-1.3:1.0/bluetooth/hci0/hci0:256/0005:05AC:024F.0028/input/input147
[69784.282213] input: Keychron K8 Consumer Control as /devices/pci0000:00/0000:00:1d.0/usb1/1-1/1-1.3/1-1.3:1.0/bluetooth/hci0/hci0:256/0005:05AC:024F.0028/input/input148
[69784.282345] input: Keychron K8 System Control as /devices/pci0000:00/0000:00:1d.0/usb1/1-1/1-1.3/1-1.3:1.0/bluetooth/hci0/hci0:256/0005:05AC:024F.0028/input/input149
[69784.282481] hid-generic 0005:05AC:024F.0028: input,hidraw2: BLUETOOTH HID v1.05 Keyboard [Keychron K8] on 48:45:20:82:6c:33