由于在 Windows 上使用 Agent 体验不佳(Powershell 对 Agent 不友好,没啥好用终端等)而且发现 WSL2 也存在一些问题,同时我也比较喜欢使用 CLI,于是我打算转到 Linux,在朋友推荐下也是选择了 CachyOS。

目前从 Windows 转到 CachyOS 已经一个多月了,体验下来挺不错的,我还没有遇到过崩溃的情况,现在我的 Windows 只用来打游戏了。最近也看到了不少 Linux 的帖子,于是我打算写下这篇教程,也算是对自己折腾的总结吧。

注意
CachyOS 基于 ArchLinux,滚动更新,追求性能,面向游戏和生产力
其安装过程还挺简单的,主要是后面的各种美化和配置需要折腾不少,如果不想折腾还是不太推荐安装的;如果你想要美化桌面、紧跟最新软件版本还是比较推荐的

CachyOS 安装

首先要准备一个 U 盘和 CachyOS 的系统镜像,先去 CachyOS 官网安装桌面版的 iso,然后将其写入 U 盘制作启动盘,这里推荐一个制作可启动 U 盘的工具 Ventoy,具体介绍可以看官网的描述。

准备好后就可以开始安装了,下面我会在虚拟机中做演示,因为虚拟机的原因图片中分辨率可能有些问题

注意
如果要安装双系统,要提前进入 BIOS 关闭安全启动

用 U 盘启动安装系统后调整语言然后启动安装程序

cachyos-installation-1.png

选使用的语言

cachyos-installation-2.png

选时区

cachyos-installation-3.png

键盘这里直接下一步,选启动引导程序,这里默认推荐的是 Limine,这个需要在后面分区的时候至少给 EFI 分区分 4 GB,而且挂载点是 /boot,因为我当时装的是双系统,给 CachyOS 分配的空间不大,所以我选的是 grub,可以实际搜索区别后根据需要选择

cachyos-installation-4.png

开始分区,如果你装的是双系统的话,推荐选择手动分区

cachyos-installation-5.png

然后选择你预留的空闲空间创建分区

cachyos-installation-6.png

先创建 EFI 分区,grub 推荐分配 1 GB,文件系统选 fat32,挂载点为 /boot/efi,标记勾选 boot

cachyos-installation-7.png

接下来用剩余的空间创建系统分区,只设置挂载点为 / 就可以了,其他用的是默认的,如果有需要可以自己修改大小,文件系统推荐默认的 btrfs,CachyOS 会自动分配子卷,如果想分配 swap 分区也可以自行搜索教程尝试,不过 CachyOS 默认是使用 zram 的,而且 swap 也可以不用单独的分区,用 swap 文件,所以不推荐给 swap 分区

cachyos-installation-8.png

下面选桌面,我了解的就只有 KDE(默认这个)、GNOME、Niri 和 Hyprland,因为我喜欢平铺式的(Niri、Hyprland)同时听说 Niri 比 Hyprland 还稳定点,于是我选择了 Niri,这里根据自己的喜好选择即可

cachyos-installation-9.png

软件包根据自己的需要选择(一般不需要调整),因为我想要用 Chrome 所以我把下面的 Firefox 取消勾选了

cachyos-installation-10.png

最后设置账户密码等,开始安装

cachyos-installation-11.png

配置调优

因为已经将近 1 个月了,所以有的配置都忘了,想起啥写啥吧,后面也会补充。

有什么配置问题可以去翻 ArchWiki,或者装完 Agent 工具让 AI 来帮你配置,但是一定要注意不要让 AI 瞎搞,防止搞崩溃,你可以让 AI 给你配置步骤,自己手动走一遍。

CachyOS 默认 Shell 用的是 fish,想用其他的可以自己更换,我比较习惯 zsh 就换去 zsh 了。

第一个命令,更新包命令

1
sudo pacman -Syu

快照

当文件系统选择 btrfs 时 CachyOS 默认会装 btrfs 助手和 snapper(用于系统快照),你可以打开 btrfs 助手自己调整快照设置,默认只会在安装、升级、删除包时创建快照

archlinuxcn 源

CachyOS 默认会自动选用适合本地的镜像源,但是默认是没有 archlinuxcn 源的,推荐加入该源

1
sudo vim /etc/pacman.conf

在最后加上

1
2
3
4
5
6
[archlinuxcn]
Server = https://mirrors.ustc.edu.cn/archlinuxcn/$arch
Server = https://mirrors.tuna.tsinghua.edu.cn/archlinuxcn/$arch
Server = https://mirrors.hit.edu.cn/archlinuxcn/$arch
Server = https://repo.huaweicloud.com/archlinuxcn/$arch
Server = https://repo.archlinuxcn.org/$arch

Server 一个就行,自选,然后安装 archlinuxcn-keyring,并同步更新软件源数据库

1
2
sudo pacman -S archlinuxcn-keyring
sudo pacman -Syu

yay

推荐安装 yay(AUR 助手),具体介绍可以自行搜索

1
sudo pacman -S yay

注意使用 yay 时不用在前面加 sudo,安装 yay 后基本没再手动用过 pacman

每日更新变为

1
yay -Syu

这里说一下软件包后啥也不带、带 -bin 或带 -git 三者在一般情况下的区别,推荐安装带 -bin 的版本:

  • 啥也不带会下载软件正式版的源码压缩包进行本地编译构建
  • -bin 的是下载软件正式版的预编译程序,不用本地编译构建
  • -git 的是下载软件 git 仓库最新源码进行本地编译构建

有的包不带 -bin 也是安装的软件正式版的预编译程序,比如未开源的软件(如 linuxqq)

网络问题

一个比较折磨的问题就是 AUR 下载慢甚至下载不下来,这是因为源码包/预编译程序要从 GitHub 下载。这里就不展开讲了,有需要可以自行研究。

CachyOS Hello

首次开机默认会自动启动该应用,其有些实用的功能,点击 应用/调整

cachyos-hello-1.png

调整部分我就不详细介绍了,可以用 AI 自己搜索下,然后根据需要启用

实用工具一般常用前三个

cachyos-hello-2.png

QQ

安装命令

1
yay -S linuxqq

因为用的 Electron,所以在 linux 上存在一些问题,默认是以 XWayland 启动的,我用时如果输入法输入太快就会导致输入法漏字符,修复方法就是用 Wayland 启动,配置 ~/.config/qq-flags.conf,添加以下内容

1
2
3
--ozone-platform=wayland
--enable-wayland-ime
--wayland-text-input-version=3

VS Code

安装命令

1
yay -S visual-studio-code-bin

在我 niri 的桌面环境下存在密钥环服务无法自动识别的问题(其他应用貌似也有),修改 ~/.vscode/argv.jsonpassword-store 手动设置为 gnome-libsecret 就没问题了

剪贴板

安装 wl-clip-persist 解决复制完内容,把源程序一关,复制内容失效无法再粘贴的问题

安装 comalot-clipsync-git 解决在 X11 应用复制完内容无法同步到 Wayland 上的问题

1
yay -S wl-clip-persist comalot-clipsync-git

记得设置自动启动,wl-clip-persist 我用的是 niri 桌面的自动启动,配置 spawn-at-startup "wl-clip-persist" "--clipboard" "regular"comalot-clipsync-git 用命令 systemctl --user enable --now clipsync

输入法

我用的 fcitx5 + fcitx5‑rime + rime‑ice

1
yay -S fcitx5 fcitx5-rime fcitx5-configtool fcitx5-gtk fcitx5-qt rime-ice-git

我的 ~/.local/share/fcitx5/rime/default.custom.yaml 配置如下

1
2
3
4
5
6
7
8
9
10
11
12
patch:
# 仅使用「雾凇拼音」的默认配置,配置此行即可
__include: rime_ice_suggestion:/
# 以下根据自己所需自行定义,仅做参考。
# 针对对应处方的定制条目,请使用 <recipe>.custom.yaml 中配置,例如 rime_ice.custom.yaml
__patch:
menu/page_size: 8
key_binder/select_first_character: "comma"
key_binder/select_last_character: "period"
key_binder/bindings/+:
- { when: paging, accept: bracketleft, send: Page_Up }
- { when: has_menu, accept: bracketright, send: Page_Down }

同时配置环境变量,编辑 ~/.config/environment.d/ime-env.conf 并保存

1
2
3
4
QT_IM_MODULES="wayland;fcitx;ibus"
QT_IM_MODULE="fcitx"
XMODIFIERS="@im=fcitx"
SDL_IM_MODULE="fcitx"

配置 ~/.config/gtk-3.0/settings.ini~/.config/gtk-4.0/settings.ini 并保存

1
2
[Settings]
gtk-im-module=fcitx

可以用命令 fcitx5-diagnose 自查输入法问题

配置打字时按 shift 提交原始字符串,打开 fcitx5-configtool,选择中州韵,点开配置,将切换输入法时的行为改成提交原始字符串

fcitx5-configtool.png

字体

我用的以下字体及配置,仅作参考,可以自己调整

1
yay -S inter-font noto-fonts-cjk noto-fonts-emoji ttf-sarasa-gothic ttf-lxgw-wenkai ttf-jetbrains-mono-nerd ttf-caladea

配置 ~/.config/fontconfig/fonts.conf

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "urn:fontconfig:fonts.dtd">
<fontconfig>

<match target="font">
<edit name="antialias" mode="assign"><bool>true</bool></edit>
</match>

<alias binding="strong">
<family>sans-serif</family>
<prefer>
<family>Inter</family>
<family>更纱黑体 UI SC</family>
<family>更纱黑体 SC</family>
<family>思源黑体 CN</family>
<family>Noto Sans CJK SC</family>
</prefer>
</alias>

<alias binding="strong">
<family>serif</family>
<prefer>
<family>霞鹜文楷</family>
<family>Noto Serif CJK SC</family>
</prefer>
</alias>

<alias binding="strong">
<family>monospace</family>
<prefer>
<family>JetBrainsMonoNL Nerd Font</family>
<family>JetBrainsMonoNL Nerd Font Mono</family>
<family>Sarasa Term SC</family>
<family>等距更纱黑体 SC</family>
<family>Sarasa Fixed SC</family>
</prefer>
</alias>

<match target="pattern">
<test name="lang" compare="contains"><string>zh</string></test>
<edit name="family" mode="append" binding="strong"><string>更纱黑体 SC</string></edit>
</match>

</fontconfig>

配置 /etc/fonts/conf.d,其中文件都是软链接,默认应该有链接到 /usr/share/fontconfig/conf.default 中的 41 个,我自己又添加了 /usr/share/fontconfig/conf.avail 中的 2 个,命令如下:

1
2
3
4
sudo ln -s \
/usr/share/fontconfig/conf.avail/10-sub-pixel-rgb.conf \
/usr/share/fontconfig/conf.avail/70-no-bitmaps-except-emoji.conf \
/etc/fonts/conf.d/

最后全部软链接文件如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
10-hinting-slight.conf -> /usr/share/fontconfig/conf.default/10-hinting-slight.conf
10-powerline-symbols.conf -> /usr/share/fontconfig/conf.default/10-powerline-symbols.conf
10-scale-bitmap-fonts.conf -> /usr/share/fontconfig/conf.default/10-scale-bitmap-fonts.conf
10-sub-pixel-rgb.conf -> /usr/share/fontconfig/conf.avail/10-sub-pixel-rgb.conf
10-symbols.conf -> /usr/share/fontconfig/conf.default/10-symbols.conf
10-yes-antialias.conf -> /usr/share/fontconfig/conf.default/10-yes-antialias.conf
11-lcdfilter-default.conf -> /usr/share/fontconfig/conf.default/11-lcdfilter-default.conf
20-unhint-small-dejavu-lgc-sans.conf -> /usr/share/fontconfig/conf.default/20-unhint-small-dejavu-lgc-sans.conf
20-unhint-small-dejavu-lgc-sans-mono.conf -> /usr/share/fontconfig/conf.default/20-unhint-small-dejavu-lgc-sans-mono.conf
20-unhint-small-dejavu-lgc-serif.conf -> /usr/share/fontconfig/conf.default/20-unhint-small-dejavu-lgc-serif.conf
20-unhint-small-dejavu-sans.conf -> /usr/share/fontconfig/conf.default/20-unhint-small-dejavu-sans.conf
20-unhint-small-dejavu-sans-mono.conf -> /usr/share/fontconfig/conf.default/20-unhint-small-dejavu-sans-mono.conf
20-unhint-small-dejavu-serif.conf -> /usr/share/fontconfig/conf.default/20-unhint-small-dejavu-serif.conf
20-unhint-small-vera.conf -> /usr/share/fontconfig/conf.default/20-unhint-small-vera.conf
30-metric-aliases.conf -> /usr/share/fontconfig/conf.default/30-metric-aliases.conf
40-nonlatin.conf -> /usr/share/fontconfig/conf.default/40-nonlatin.conf
45-generic.conf -> /usr/share/fontconfig/conf.default/45-generic.conf
45-latin.conf -> /usr/share/fontconfig/conf.default/45-latin.conf
46-noto-sans.conf -> /usr/share/fontconfig/conf.default/46-noto-sans.conf
46-noto-serif.conf -> /usr/share/fontconfig/conf.default/46-noto-serif.conf
48-guessfamily.conf -> /usr/share/fontconfig/conf.default/48-guessfamily.conf
48-spacing.conf -> /usr/share/fontconfig/conf.default/48-spacing.conf
49-sansserif.conf -> /usr/share/fontconfig/conf.default/49-sansserif.conf
50-user.conf -> /usr/share/fontconfig/conf.default/50-user.conf
51-local.conf -> /usr/share/fontconfig/conf.default/51-local.conf
57-dejavu-sans.conf -> /usr/share/fontconfig/conf.default/57-dejavu-sans.conf
57-dejavu-sans-mono.conf -> /usr/share/fontconfig/conf.default/57-dejavu-sans-mono.conf
57-dejavu-serif.conf -> /usr/share/fontconfig/conf.default/57-dejavu-serif.conf
58-dejavu-lgc-sans.conf -> /usr/share/fontconfig/conf.default/58-dejavu-lgc-sans.conf
58-dejavu-lgc-sans-mono.conf -> /usr/share/fontconfig/conf.default/58-dejavu-lgc-sans-mono.conf
58-dejavu-lgc-serif.conf -> /usr/share/fontconfig/conf.default/58-dejavu-lgc-serif.conf
60-generic.conf -> /usr/share/fontconfig/conf.default/60-generic.conf
60-latin.conf -> /usr/share/fontconfig/conf.default/60-latin.conf
62-caladea.conf -> /usr/share/fontconfig/conf.default/62-caladea.conf
62-carlito.conf -> /usr/share/fontconfig/conf.default/62-carlito.conf
65-fonts-persian.conf -> /usr/share/fontconfig/conf.default/65-fonts-persian.conf
65-nonlatin.conf -> /usr/share/fontconfig/conf.default/65-nonlatin.conf
66-noto-sans.conf -> /usr/share/fontconfig/conf.default/66-noto-sans.conf
66-noto-serif.conf -> /usr/share/fontconfig/conf.default/66-noto-serif.conf
69-unifont.conf -> /usr/share/fontconfig/conf.default/69-unifont.conf
70-no-bitmaps-except-emoji.conf -> /usr/share/fontconfig/conf.avail/70-no-bitmaps-except-emoji.conf
80-delicious.conf -> /usr/share/fontconfig/conf.default/80-delicious.conf
90-synthetic.conf -> /usr/share/fontconfig/conf.default/90-synthetic.conf

配置完用 fc-cache -fv 刷新字体缓存

结语

大致只想到了这些,其他一些配置,比如 niri 桌面美化、noctalia v5、终端(我用的 ghostty)还有各种 cli 工具等我没有说,这些都是看自己的喜好了,可以参考官方文档结合 AI 进行配置。

最后展示张自己的桌面

cachyos-desktop.png