Linux 配置 Apple Magic Keyboard

发布于 2021-02-06

因为疫情原因,最近都是在家办公。在家用的一直都是自己的笔记本(荣耀 MagicBook), 笔记本用的时间也蛮久了,感觉 Ctrl 键按着有点不太对劲,为防本子上的键盘真的坏掉, 吓的我赶紧拿出闲置很久的苹果蓝牙键盘给它接上。

我用的 Manjaro 系统,桌面环境 Xfce ,蓝牙 GUI 管理器 Blueman

配对和连接

因为都是图形界面操作,蓝牙设备的配对和连接倒没什么好说的。 提一点就是,一定要先配对(pair),再连接(connect)。 我一开始就是没有配对,直接连接了,而且还连接成功了。 出现的问题就是,键盘时而工作,时而不工作,甚至会把系统卡住完全无响应。反正就是一团浆糊。

当然如果你想,也可以在终端使用 bluetoothctl 进行配对和连接的操作。 具体命令参考 Arch Wiki 即可。

设置开机自启

只需要修改蓝牙的配置文件 /etc/bluetooth/main.conf ,在 [Policy] 部分找到或添加 AutoEnable=true 即可.

修改键位

重要的来了,苹果键盘的键位和我本子上键盘的键位布局是有一点差异的。 主要是 Ctrl, Fn, Win(Command), Alt 四个键位。 苹果键盘的键位顺序是 Fn, Ctrl, Alt, Command 。 键位不改的话,在两个键盘上切换的时候,因为肌肉记忆,特别容易按错。

要调整苹果键盘跟本子上的键盘键位一致,要做的就是将 FnCtrl 键位互换, AltCommand 键位互换。

根据 Arch Wiki 描述,要实现这种键位互换,可以使用 hid_apple 模块配置选项。 但是官方的 hid_apple 模块仅支持 Alt 和 Command 互换,为了实现 Fn 和 Ctrl 的互换,还需要重新安装 hid-apple-patched 补丁包。 根据该补丁包文档描述,我直接使用的 Arch 三方包 hid-apple-patched-git-dkms 。 不过该包目前已经没人维护了,该包原作者 2021-01-10 说自己已经不在 Macbook Pro 上使用 archlinux 了。 有同学介意的话,也可以自己编译安装。 要注意的就是,hid_apple 属于内核模块,自己编译安装之后,需要重新创建内核镜像。

sudo mkinitcpio -P

安装好 hid-apple 补丁包之后,将配置文件 /usr/lib/modprobe.d/hid_apple.conf 复制到 /etc/modprobe.d/hid_apple.conf 。 然后按需修改配置项:

# Enable PC-like layout by default.
# To override, copy this file to /etc/modprobe.d/hid_apple.conf and make
# desired changes. Note that /etc/modprobe.d/hid_apple.conf will completely
# replace this file, and the content is NOT merged.
#
# Option reference: https://github.com/free5lot/hid-apple-patched#configuration
options hid_apple fnmode=1
options hid_apple swap_fn_leftctrl=1
options hid_apple swap_opt_cmd=1
options hid_apple rightalt_as_rightctrl=1
options hid_apple ejectcd_as_delete=1

配置文件修改之后也要重新创建内核镜像。 然后重新加载 hid_apple 模块。

sudo modprobe -r hid_apple
sudo modprobe hid_apple

至此,苹果键盘改键完成。 再也不用担心切换键盘时犯错了。

参考