由于在 Windows 上使用 Agent 体验不佳(Powershell 对 Agent 不友好,没啥好用终端等)而且发现 WSL2 也存在一些问题,同时我也比较喜欢使用 CLI,于是我打算转到 Linux,在朋友推荐下也是选择了 CachyOS。
目前从 Windows 转到 CachyOS 已经一个多月了,体验下来挺不错的,目前我还没有遇到过崩溃的情况,现在我的 Windows 只用来打游戏了。最近在 L 站也看到了不少 linux 的帖子,于是我打算写下这篇教程,也算是对自己折腾的总结吧。
[!attention] 注意
Cachy OS 基于 ArchLiunx,滚动更新,追求性能,面向游戏和生产力
其安装过程还挺简单的,主要是后面的各种美化和配置需要折腾不少,如果不想折腾还是不太推荐安装的;如果你想要美化桌面、紧跟最新软件版本还是比较推荐的
CachyOS 安装
首先要准备一个 U 盘和 CachyOS 的系统镜像,先去 CachyOS 官网安装桌面版的 iso,然后将其写入 U 盘制作启动盘,这里推荐一个制作可启动 U 盘的工具 Ventoy,具体介绍可以看官网的描述。
准备好后就可以开始安装了,下面我会在虚拟机中做演示,因为虚拟机的原因图片中分辨率可能有些问题
[!attention] 注意
如果要安装双系统,要提前进入 BIOS 关闭安全启动
用 U 盘启动安装系统后调整语言然后启动安装程序

选使用的语言

选时区

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

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

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

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

接下来用剩余的空间创建系统分区,只设置挂载点为 / 就可以了,其他用的是默认的,如果有需要可以自己修改大小,文件系统推荐默认的 btrfs,CachyOS 会自动分配子卷,如果想分配 swap 分区也可以自行尝试,不过 CachyOS 默认是使用 zram 的,而且 swap 也可以不用单独的分区,用 swap 文件,所以不推荐给 swap 分区,这里推荐一个本站的教程:服务器与网站的开荒入坑(这篇文章我调优服务器必看,哈哈,也是感谢 @huan 的教程了),虽然是服务器的,但应该也适配物理机,或者自行搜索教程

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

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

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

配置调优
因为已经将近 1 个月了,所以有的配置都忘了,想起啥写啥吧,后面也会补充,也欢迎各位来补充。
有什么配置问题可以去翻 ArchWiki,或者装完 Agent 工具让 AI 来帮你配置,但是一定要注意不要让 AI 瞎搞,防止搞崩溃,你可以让 AI 给你配置步骤,自己手动走一遍。
CachyOS 默认 Shell 用的是 fish,想用其他的可以自己更换,我比较习惯 zsh 就换去 zsh 了。
第一个命令,更新包命令
sudo pacman -Syu
快照
当文件系统选择 btrfs 时 CachyOS 默认会装 btrfs 助手和 snapper(用于系统快照),你可以打开 btrfs 助手自己调整快照设置,默认只会在安装、升级、删除包时创建快照
archlinuxcn 源
CachyOS 默认会自动选用适合本地的镜像源,但是默认是没有 archlinuxcn 源的,推荐加入该源
sudo vim /etc/pacman.conf
在最后加上
[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,并同步更新软件源数据库
sudo pacman -S archlinuxcn-keyring
sudo pacman -Syu
yay
推荐安装 yay(AUR 助手),具体介绍可以自行搜索
sudo pacman -S yay
注意使用 yay 时不用在前面加 sudo,安装 yay 后基本没再手动用过 pacman 了
每日更新变为
yay -Syu
网络代理
一个比较折磨的问题就是 aur 下载慢甚至下载不下来,此时就需要用到代理软件了,archlinuxcn 源里有打包好的 clash 系软件,用 yay -Ss clash 搜索,然后安装自己想用的
yay -S clash-verge-rev
# 或者
yay -S flclash
[!attention] 注意
archlinuxcn 源的 clash-verge-rev 可能存在 bug,我当时安装完打开安装虚拟网卡时一直循环输入密码认证,最后还用不了,临时解决方法是循环完手动在命令行执行 sudo clash-verge-service-uninstall 和 sudo clash-verge-service-install,但是下次打开软件仍出现循环问题还是桌面环境的问题,不知道是不是我当时安装的那个版本的问题,后面我就去用 aur 上安装的了
安装命令为 yay -S clash-verge-rev-bin,不用代理应该会卡住
v2rayn 只在 aur 中有,下载下来感觉在 linux 上不太好用,就没用过
yay -S v2rayn-bin
这里说一下软件包后啥也不带、带 -bin 或带 -git 三者在一般情况下的区别,推荐安装带 -bin 的版本:
- 啥也不带会下载软件正式版的源码压缩包进行本地编译构建
- 带
-bin 的是下载软件正式版的预编译程序,不用本地编译构建
- 带
-git 的是下载软件 git 仓库最新源码进行本地编译构建
有的包不带 -bin 也是安装的软件正式版的预编译程序,比如未开源的软件
CachyOS Hello
首次开机默认会自动启动该应用,其有些实用的功能,点击 应用/调整

调整部分我就不详细介绍了,可以用 AI 自己搜索下,然后根据需要启用
实用工具一般常用前三个

QQ
安装命令
yay -S linuxqq
因为用的 Electron,所以在 linux 上存在一些问题,默认是以 XWayland 启动的,我用时如果输入法输入太快就会导致输入法漏字符,修复方法就是用 Wayland 启动,配置 ~/.config/qq-flags.conf,添加以下内容
--ozone-platform=wayland
--enable-wayland-ime
--wayland-text-input-version=3
VS Code
安装命令
yay -S visual-studio-code-bin
在我 niri 的桌面环境下存在密钥环服务无法自动识别的问题(其他应用貌似也有),修改 ~/.vscode/argv.json 将 password-store 手动设置为 gnome-libsecret 就没问题了
剪贴板
安装 wl-clip-persist 解决复制完内容,把源程序一关,复制内容失效无法再粘贴的问题
安装 comalot-clipsync-git 解决在 X11 应用复制完内容无法同步到 Wayland 上的问题
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
yay -S fcitx5 fcitx5-rime fcitx5-configtool fcitx5-gtk fcitx5-qt rime-ice-git
我的 ~/.local/share/fcitx5/rime/default.custom.yaml 配置如下
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 }
同时配置环境变量,我 niri 桌面是在 ~/.config/niri/cfg/misc.kdl 中加入以下内容,不同桌面根据实际调整
environment {
GTK_IM_MODULE "fcitx"
QT_IM_MODULE "fcitx"
XMODIFIERS "@im=fcitx"
SDL_IM_MODULE "fcitx"
INPUT_METHOD "fcitx"
}
配置打字时按 shift 提交原始字符串,打开 fcitx5-configtool,选择中州韵,点开配置,将切换输入法时的行为改成提交原始字符串

字体
我用的以下字体及配置,仅作参考,可以自己调整
yay -S inter-font noto-fonts-cjk noto-fonts-emoji ttf-sarasa-gothic ttf-lxgw-wenkai ttf-jetbrains-mono-nerd
配置 ~/.config/fontconfig/fonts.conf
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "urn:fontconfig:fonts.dtd">
<fontconfig>
<!-- 渲染优化 -->
<match target="font">
<edit name="antialias" mode="assign"><bool>true</bool></edit>
<edit name="hinting" mode="assign"><bool>true</bool></edit>
<edit name="autohint" mode="assign"><bool>false</bool></edit>
<edit name="hintstyle" mode="assign"><const>hintslight</const></edit>
<edit name="rgba" mode="assign"><const>rgb</const></edit>
<edit name="lcdfilter" mode="assign"><const>lcddefault</const></edit>
<edit name="embeddedbitmap" mode="assign"><bool>false</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>
<match target="pattern">
<test name="lang" compare="contains"><string>zh</string></test>
<test qual="any" name="family"><string>serif</string></test>
<edit name="family" mode="prepend" binding="strong"><string>霞鹜文楷</string></edit>
</match>
<match target="pattern">
<test qual="any" name="family"><string>emoji</string></test>
<edit name="family" mode="prepend" binding="strong">
<string>Noto Color Emoji</string>
</edit>
</match>
</fontconfig>
配置完用 fc-cache -fv 刷新字体缓存
结语
写了得有好几个小时,大致只想到了这些,其他一些配置,比如 niri 桌面美化、noctalia v5、终端(我用的 ghostty)还有各种 cli 工具等我没有说,这些都是看自己的喜好了,可以参考官方文档结合 AI 进行配置。
也欢迎各位佬友讨论各自的配置。
展示张自己的桌面
