寝室里新买了一台迷你主机,想要安装 Kali 和 Windows 双系统。之前只在 macOS 里跑过 Kali 的虚拟机,从来没有当作主力来使用,所以很少考虑个性化的配置问题,但是这次装了 Kali 作为宿主系统打算长期使用才感觉,配置一个舒适的 Linux 环境真的很折腾……

(头图是 Kali 默认壁纸,很好看!)

Keychron 键盘蓝牙连接问题

我使用的京东京造键盘(其实是 Keychron 贴牌)习惯使用蓝牙无线连接,但是在装好的 Kali 上蓝牙连接之后,虽然可以正常使用,但是只要断开一次,之后就没法自动重连,必须重新配对。键盘尝试自动重连的时候,一直连不上,蓝牙连接按钮一直闪;而在右上角蓝牙连接面板点击设备重连,则会弹出一个「Connected」通知后立马弹出「Disconnected」的通知。
记得之前用这个蓝牙键盘连接树霉派 Raspbian 也有一样的问题。而 macOS、Windows 蓝牙连接都没有问题。

上网搜了一圈,似乎是 Keychron 用了独特的蓝牙连接方式。根据这篇帖子中的方法,只需要如下操作:

按照如上步骤操作,之后如果键盘断连就可以自动重连。

中文拼音输入法配置

Fcitx vs iBus

Fcitx 和 iBus 是 Linux 下比较常见的两个输入法框架。在安装输入法之前,我们需要先安装二者其一。

这两者有何区别呢?咨询了 new bing,大概的比较是:

面对 iBus 好几百个包依赖(new bing 说的),我毅然决然选择了简洁的 Fcitx。

顺便好奇搜了一下这个奇怪的名字 Fcitx 是怎么来的:Free Chinese Input Tool of X,但也可以有其他的解释。中文名叫做“小企鹅输入法”。详情可以看看这段历史

安装配置 Fcitx

Fcitx 本身只是一个输入法框架,但是它有自带的名为 pinyin 的拼音输入法。安装非常容易:

sudo apt-get install fcitx
sudo apt-get install fcitx-pinyin

安装完成之后在 Kali 的设置里就能看到输入法的选项,这时候点进设置里「Fcitx 输入法」选项,会发现什么输入法都没有。此时需要重启设备,才能正常配置。

重启之后,进入设置选项就可以看到默认添加了拼音和双拼的输入法,默认是按 Ctrl + Space 切换。虽然这个输入法配色有点像搜狗,但是不用担心,这就是 Fcitx 自带的开源拼音输入法。

除了这个输入法之外,如果你爱好折腾、定制化,或者要求各个平台极致的统一,可以试试跨平台的 RIME 中州韵输入法引擎

(如果去网上找教程,大部分都会让我们全装 Google 拼音输入法,这是个最后更新于 2013 年的古董产品,个人觉得实在没有必要继续用了(虽然体验过 Android 上的 Google 拼音,n 年前的词频算法吊打如今的搜狗百度,确实很强))

配置 Mac 风格输入符号映射

使用 Macbook 的同学都知道,Macbook 的键盘和一般笔记本是有些不一样的,我用起来感觉差别最大的就是右上角 P 按键右边的两个按键,在中文模式下,Macbook 键盘上标的是 【】「」。实际上 「」 是台湾和日语风格的引号,我个人特别喜欢用这个,但是 Fcitx 默认并没有这样的配置。

/usr/share/fcitx/data/punc.mb.zh_CN 这个文件规定了中文输入法的符号映射,直接修改这个文件并重启 Fcitx 即可。值得一提的是,在修改这个文件之前我们是没法直接在键盘上输入 【】 这种符号的,所以编辑这个文件的时候也没法输入……可以使用 Ctrl + Shift + Alt + U 打开 Fcitx 自带的 Unicode 输入面板,搜索 LEFT/RIGHT BLACK LENTICULAR BRACKET,就是这俩符号。

更改用户目录文件夹名

如果安装 Kali 的时候选择中文,会有个非常雷人的设置:用户主目录 下的各个文件夹,名称全都是中文:“桌面”、“下载”……这导致没安装输入法的时候甚至在终端里没法直接 cd 进入“下载”目录。(发现这个情况的时候血压高了)

要改这个也很简单,先创建好想要的文件夹,然后编辑 ~/.config/user-dirs.dirs 文件,将中文目录改为想要的英文目录即可。注意一定要先创建好文件夹,如果直接改这个配置文件就重启,所有文件夹路径都会变成 $HOME……网上许多抄來抄去的资料都没说清楚这一点。

# This file is written by xdg-user-dirs-update
# If you want to change or add directories, just edit the line you're
# interested in. All local changes will be retained on the next run.
# Format is XDG_xxx_DIR="$HOME/yyy", where yyy is a shell-escaped
# homedir-relative path, or XDG_xxx_DIR="/yyy", where /yyy is an
# absolute path. No other format is supported.
# 
XDG_DESKTOP_DIR="$HOME/Desktop"
XDG_DOWNLOAD_DIR="$HOME/Downloads"
XDG_TEMPLATES_DIR="$HOME/Templates"
XDG_PUBLICSHARE_DIR="$HOME/Public"
XDG_DOCUMENTS_DIR="$HOME/Documents"
XDG_MUSIC_DIR="$HOME/Music"
XDG_PICTURES_DIR="$HOME/Pictures"
XDG_VIDEOS_DIR="$HOME/Videos"

网卡问题

// 2023-04-06 更新。

在不同的两个磁盘分区里安装好 Windows 和 Kali 的双系统后,Kali 知道 Windows 的存在,但是 Windows 是不知道 Kali 的存在的。所以我在 BIOS 里设置了从 Kali 启动系统,Kali 的启动界面会让我选择进入 Kali 还是 Windows。

然而,有时候进入 Kali 后会无法使用无线网卡(但是能检测到设备),而在 Windows 里可以正常使用。我的迷你主机网卡是 Intel AX200,Kali 中的驱动程序一切完备。上网查了很多资料(参考),这个情况大概的原因是 Windows 由于一些关于 fastboot 的技术,在关机前把网卡设置成了一个 Kali 不认识的模式。但是不知道这个模式开关在哪里,毕竟我的 BIOS 里 Fastboot 和 Secure Boot 都关掉了。

目前的解决方法是,Windows 关机前关闭 WiFi 开关。

macOS 风格键盘快捷键

// 2023-04-18 更新

如果用习惯了 macOS,转到其他主流操作系统使用快捷键会很不习惯。众所周知,macOS 里的 Command 按键相当于一般的 Control,而使用终端时 Control 又就是 Control。这意味着,这个键盘映射规则并不是简单的。
还好,有开源的方案可以在 Linux / Windows 上实现 macOS 风格快捷键:kinto.sh。使用官网的脚本即可一键安装,非常方便。具体可以查看它的文档。

美中不足的是 macOS 国行版使用 Caps Lock 按钮切换输入法的设定,似乎在其他操作系统里没有找到替代方案。

还有一大堆问题……

其实现在这个 Kali 的使用体验上还有不少问题,比如这个应用程序菜单的管理,比如屏幕字体显示的问题……不过对整体的使用而言影响不大,都是一些细节上的问题。相比 macOS、Windows 这样的商业操作系统,可能这就是「集市与大教堂」的差异吧。慢慢折腾了。