2021-02-17 | 研究与探索 | UNLOCK

Arch Linux 配置细节

Arch Linux 作为桌面版使用时和 Windows 有一点很不同,你会强烈地察觉到自己在使用一个多用户系 统,/home 目录外的文件由 pacman 和 systemd 管理,神圣不可侵犯,而家目录下的 .config.local 目录则复杂得令人生畏。以下记录了一些个人经验。

Vim

vim 是 “Vi IMproved”,顾名思义还有一个出现时间更早,功能更少的 vi 编辑器,而 core 源里还真有 一个 vi,这个 vi 的操作手感仅比 ed 好一点点……

在编辑 /etc/sudoers 时如果想要用 visudo 命令进行检查,在没设置 SUDO_EDITOREDITORVISUAL 环境变量的情况下默认会使用 vi,当然是没有默认安装的。现在也不兴设置这些环境变量,以及在安装 vim 后 还安装一个 vi 了,所以我选择将 vi 作为 vim 的别名,建立一个软链接:

1
# ln -s /usr/bin/vim /usr/bin/vi

安装桌面环境

我选择安装 KDE 作为 Arch Linux 的桌面环境,因此除了安装指南上的步骤外,还要安装诸 KDE 包:

1
2
# pacman -S plasma
# pacman -S kde-utilities kde-system kde-network kde-multimedia kde-graphics

如果不在意体积,可以直接安装 kde-applications 全家桶,它包含了上面全部的 kde-*

在这其中 kde-network 包含 plasma-nm,而这个软件包依赖 networkmanager,所以网络的问题自然就解决了, 还带了面板组件。

以上还会顺带安装 SDDM。需要手动启用 sddmNetworkManager 两个 systemd 单元。

如果是 xfce4 环境,就需要再安装 network-manager-applet 以使用网络,这个包的坑点在于它既不在 xfce4-goodies 里,也不能通过搜 networkmanagernm 搜到。另外还要安装显示管理器(如 lightdm)或 配置 xinit 以进入图形界面。

baloo

有一个困扰了我好几天,让我重装了十几遍系统的问题,当我挂载原来的 /home 目录时电脑会很卡顿。元凶是用来 检索文件的 baloo 服务,用 balooctl 禁用 baloo 或配置排除文件夹就行了。

输入法

安装 fcitx5-imfcitx5-rimefcitx5-chinese-addons,很简单,可以按需在 AUR 上安装词库和 Qt4 支持。

为了启用输入法,Wiki 里建议把环境变量设置写入 /etc/environment 里,我也是这么做的,不过后来发现 KDE 有用户级的环境变量设置方式:https://userbase.kde.org/Session_Environment_Variables,有兴趣的可以尝试一下。

fcitx5 的可定制性很强,用户界面是作为附加组件配置的,要设置候选列表的字体需要在 配置附加组件——经典用户界面 里设置。

简体中文输入法下存在标点符号的映射,比如 <,而 " 则是 交替,这是由 /usr/share/fcitx5/punctuation/punc.mb.zh_CN 配置的,我不喜欢一些默认映射如将 [ 映射到 ·,里面还不提 供 【】 的输入,经实验发现可以在 ~/.local/share/fcitx5/punctuation/punc.mb.zh_CN 里写自定义映射:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
. 。
, ,
? ?
" “ ”
: :
; ;
' ‘ ’
< 《
> 》
\ 、
! !
$ ¥
^ ……
* ·
_ ——
( (
) )
[ 【 】
] 「 」
~ ~

快捷键

桌面快捷键

KDE 虚拟桌面的设置都可以在 GUI 上完成,只是有时候需要仔细找,比如我想用 Ctrl + Alt + 切换虚拟桌面,需要在快捷键设置的 KWin 里设置。

鼠标功能键

我将鼠标的侧键绑定为双击动作,使用的 xbindkeys + xte,为了家目录的整洁,将 xbindkeys 配置放在 ~/.config/xbindkeysrc

1
2
3
# button 9 => left double click
"xte 'mouseclick 1' 'mouseclick 1'"
b:9 + release

使 xbindkeys 自启动的脚本 ~/.config/autostart-scripts/start-xbindkeys.sh 内容:

1
2
#!/bin/bash
xbindkeys -f $HOME/.config/xbindkeysrc

记得给它可执行权限。

键盘快捷键

追随潮流将 CapsLock 改为 Ctrl,添加自启动脚 本 ~/.config/autostart-scripts/turn-capslock-to-ctrl.sh

1
2
3
4
5
6
#!/bin/bash
sleep 10
xmodmap -e "clear lock"\
-e "clear control"\
-e "keycode 66 = Control_L"\
-e "add control = Control_L Control_R"

一开始等待 10 秒是为了等待 setxkbmap 执行完成,否则设置会被覆盖。

关闭蜂鸣

尽管 Konsole 不会像字符界面那样直接放出蜂鸣,但蜂鸣声还是会在意想不到的地方出现,比如 FireFox 页面搜索没找到 匹配字符串时。添加自动脚本 ~/.config/autostart-scripts/turn-off-beep.sh 以关闭蜂鸣:

1
2
#!/usr/bin/sh
xset b off

字体

fontconfig 的配置让我十分头疼,本来默认配置不需要变,只需要在 KDE 设置里改改字体就行了,但我把 Windows 的字体 引进来后系统显示就有点混乱,比如 Konsole 开始用某种宋体显示中文。

经查阅,fontconfig 默认配置用 /etc/fonts/conf.d/65-nonlatin.conf 来设置非拉丁字符的字体,于是 复制一份到 ~/.config/fontconfig/conf.d/65-nonlatin.conf,并把各风格的第一位都设置成 Noto 字体, 比如 serif 是 Noto Serif CJK SC,monospace 是 Noto Sans Mono CJK SC。不知道为什么不设置 system-ui 会使右下角乱码,所以设置成 Noto Sans CJK SC

百度百科用宋体显示页面挺难看的。