
今年 10 月底,我选择了 Windows 11 IoT LTSC 作为操作系统,几个月以来,基本没什么大问题。但是:
几乎没有什么应用程序对我来说是非 Windows 不可了,所以!是时候拥抱 Linux Desktop 了。
先花了半天时间,按照 Arch Wiki 一步步完成了 Arch Linux 2025.12.01 的安装,桌面环境选择了 KDE Plasma。
体验了大半天,我的总结是:
回顾之前使用 Fedora Workstation 的体验,虽然它和 GNOME 的组合并非完美,但就目前的情况来看,它应该是最适合我的选择。或许,我值得再试一试?
制作镜像和启动方式再此略过,Fedora 默认支持安全启动(可能要打开允许第三方 CA 导入)。此外,我不喜欢默认的 Btrfs 文件系统,因为没有快照需求(当然,这是很不健康的实践),分区方案如下:
nvme0n1 953.9G 0 disk
└─nvme0n1p1 953.9G 0 part /data ext4
nvme1n1 931.5G 0 disk
├─nvme1n1p1 2G 0 part /boot vfat
├─nvme1n1p2 1G 0 part /boot/efi ext4
└─nvme1n1p3 928.5G 0 part / ext4
图形化安装和其他 Linux 发行版没什么区别,很快就安装完成了。
安装完成启动后进入初始化向导,询问启用第三方软件源,直接跳过,否则系统界面会失去响应(此前在 Fedora 42 上也是这样)
使用 USTC(或 TUNA)的 Fedora 镜像源、Flathub 缓存镜像源:
sudo sed -e 's|^metalink=|#metalink=|g' \
-e 's|^#baseurl=http://download.example/pub/fedora/linux|baseurl=https://mirrors.ustc.edu.cn/fedora|g' \
-i.bak \
/etc/yum.repos.d/fedora.repo \
/etc/yum.repos.d/fedora-updates.repo
# RPMFusion
sudo dnf install https://mirrors.ustc.edu.cn/rpmfusion/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm https://mirrors.ustc.edu.cn/rpmfusion/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm
# refresh cache
sudo dnf clean all
sudo dnf makecache
# flathub
flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
sudo flatpak remote-modify flathub --url=https://mirrors.ustc.edu.cn/flathub
进行一次软件包更新
sudo dnf upgrade --refresh
比如更改主机名为 fedora
sudo hostnamectl set-hostname fedora
让 NetworkManager 别等了
sudo systemctl disable NetworkManager-wait-online.service
sudo systemctl mask NetworkManager-wait-online.service
软件中心别吵我
gsettings set org.gnome.software download-updates false
gsettings set org.gnome.software download-updates-notify false
关闭资源管理器记住最近文件
gsettings set org.gnome.desktop.privacy remember-recent-files false
第二块 SSD 设置了挂载点 /data 作为数据盘使用,默认用户组 root 不利于日常使用,设置为普通用户
sudo chown -R 1000:1000 /data
GNOME 默认自带中文输入法,以前用过体验并不太好。这里使用 Fcitx5 输入框架和 Rime 输入引擎,输入方案选择 雾凇拼音 ,皮肤就不用了,默认的在 GNOME 下就已经很好看了。
sudo dnf install fcitx5 fcitx5-gtk fcitx5-qt fcitx5-rime librime-lua fcitx5-configtool
下载雾凇拼音输入方案
git clone https://github.com/iDvel/rime-ice.git ~/.local/share/fcitx5/rime --depth=1
添加中州韵输入法,重新部署后和其他平台的 Rime 输入法使用体验基本一样
fcitx5-configtool
PS:GNOME 需要安装插件 kimpanel 后,才能在状态栏正常显示托盘图标(包括输入法指示器)。
对于系统安全来说,禁用 SELinux 不是一个好的习惯,但是我确实不太喜欢这个,所以将它彻底关闭。
sudo vim /etc/selinux/config
# edit this
SELINUX=permissive
添加 SELinux 禁用参数
sudo vim /etc/default/grub
找到 GRUB_CMDLINE_LINUX_DEFAULT 添加 selinux=0
更新引导
sudo grub2-mkconfig -o /boot/grub2/grub.cfg
下次重启后 SELinux 就会被彻底关闭了。
通过 LVFS (Linux Vendor Firmware Service) 更新硬件设备固件
fwupdmgr refresh --force
fwupdmgr get-updates
fwupdmgr update
sudo dnf install gnome-extensions-app gnome-tweaks
以前用 GNOME 每次更新挂一堆拓展,我只安装了几个来保证基本的实用功能。

Google Chrome
sudo dnf install fedora-workstation-repositories
sudo dnf config-manager --set-enabled google-chrome
sudo dnf install google-chrome-stable
Hugo
看起来 Fedora 上面的版本不是最新,但是没有问题
sudo dnf install hugo
cloudflared
用于使用 Cloudflare Tunnel 的 SSH,用于访问我的 Forgejo 示例
curl -fsSl https://pkg.cloudflare.com/cloudflared.repo | sudo tee /etc/yum.repos.d/cloudflared.repo
sudo dnf install cloudflared
Evolution Mail
GNOME 原生的电子邮件客户端,支持 GPG、S/MIME,支持 EWS 协议,非常适合我
sudo dnf install evolution evolution-ews
Docker CE
sudo dnf config-manager addrepo --from-repofile https://download.docker.com/linux/fedora/docker-ce.repo
sudo dnf install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo systemctl enable --now docker
Steam
确保已开启 RPMFusion Nonfree 软件源,使用 Proton 后大部分游戏应该都能玩,详阅 Fedora 文档 。
Steam Linux 只有 32 位包(即 i686),如果讨厌太多 32 位依赖「污染」你的系统,也可以考虑使用 Flatpak 安装 Steam。
sudo dnf install steam
# 首次启动请通过终端
__GL_CONSTANT_FRAME_RATE_HINT=3 steam
Firewall GUI
这是 Fedora 官方推荐的防火墙可视化管理工具
$ sudo dnf install firewall-config
Flatpak 是个 Linux 下的沙盒运行环境,以下软件建议通过 Flathub 安装
Dialect :一款简洁的 GNOME 翻译工具,支持多种在线翻译引擎(很适合 GNOME 桌面)
Gradia :快速美化截图的工具,添加渐变背景、阴影、标注等
网易云音乐(Gtk4 版) :Linux 原生的网易云音乐播放器,界面简洁,支持歌单、播放等核心功能。
Flatseal :图形化管理 Flatpak 应用权限的工具,能精细控制每个应用的沙盒访问权。
QQ :Flatpak 打包的 QQ,使用 NT 核心
WeChat :Flatpak 打包的微信
Yubico Authenticator :YubiKey 硬件密钥配套的桌面验证器
Typora :所见即所得的 Markdown 编辑器
Crow Translate :轻量级翻译工具,支持选中文本翻译、OCR 和语音朗读(感觉更适合 KDE Plasma)
KeePassXC :跨平台的本地密码管理器,安全加密存储密码,支持自动填充
LocalSend :跨平台局域网文件传输工具,类似 AirDrop,无需联网,安全快速
Thunderbird :Mozilla 出品的开源邮件客户端,支持多账户、日历、RSS 等功能
以下软件虽然在 Flathub 上有打包,但是体验下来会有一些问题,建议通过 RPM 包手动安装
当开启了 Tun 模式后,会影响系统的网络连通性检测,表现为

虽然并不影响使用,但是看着很难受(有没有当年 Android 刷类原生的感觉😆?)解决方法很简单,把网络连通性检测关闭就行了
sudo vim /etc/NetworkManager/conf.d/90-disable-connectivity.conf
添加
[connectivity]
enabled=false
重启 NetworkManager 服务
sudo systemctl restart NetworkManager
现在舒服多了

使用 Flatpak 安装即可
flatpak install flathub com.yubico.yubioath
# import my PGP public key
curl -fsSL https://pgp.dejavu.moe/ | gpg --import -
# general conf
wget https://raw.githubusercontent.com/drduh/YubiKey-Guide/master/config/gpg.conf -O ~/.gnupg/gpg.conf
chmod 600 ~/.gnupg/gpg.conf
和往常一样设置 Git 信息
git config --global user.name <username>
git config --global user.email <email>
git config --global user.signingkey <keyid>
git config --global commit.gpgsign true
git config --global gpg.program /usr/bin/gpg
安装智能卡相关工具
sudo dnf install gnupg pcsc-lite pcsc-lite-ccid gnupg2-scdaemon pcsc-tools
启动智能卡连接服务
sudo systemctl enable --now pcscd
一些必要配置
vim ~/.gnupg/scdaemon.conf
# add
disable-ccid
pcsc-shared
# GPG Agent Config
vim ~/.gnupg/gpg-agent.conf
# add
ttyname $GPG_TTY
enable-ssh-support
allow-loopback-pinentry
# I prefer pinentry-curses
pinentry-program /usr/bin/pinentry-curses
#pinentry-program /usr/bin/pinentry
#pinentry-program /usr/bin/pinentry-qt
#pinentry-program /usr/bin/pinentry-gnome3
#pinentry-program /usr/bin/pinentry-tty
#pinentry-program /usr/bin/pinentry-x11
# the cache TTL not work for Smartcard?
default-cache-ttl 600
max-cache-ttl 7200
# list all keygrip
gpg -K --with-keygrip
# add to sshcontrol
vim ~/.gnupg/sshcontrol
设置环境变量
# ~/.bashrc or ~/.zshrc
# SSH GPG Agent for Yubikey
export GPG_TTY=$(tty)
export SSH_AUTH_SOCK=$(gpgconf --list-dirs agent-ssh-socket)
gpgconf --launch gpg-agent
gpg-connect-agent updatestartuptty /bye > /dev/null
# then
source ~/.zshrc
# or
source ~/.bashrc
最后
sudo systemctl restart pcscd
gpgconf --kill all && gpgconf --launch gpg-agent
目前碰到唯一的问题是 OpenPGP 应用的 PIN 每次都要输入,缓存时间似乎没用,查阅了相关手册暂时没找到解决方法😣。
补全 Noto Fonts 系列
sudo dnf install google-noto-sans-cjk-fonts google-noto-serif-cjk-fonts
挑选了比较喜欢的几个字体作为系统字体安装
整理一下
~/Downloads/fonts tree
.
├── Harmony-OS-Sans
│ ├── HarmonyOS-Sans-Black.ttf
│ ├── HarmonyOS_Sans_Bold.ttf
│ └── HarmonyOS_Sans_Regular.ttf
├── Maple-Mono-NF-CN
│ ├── MapleMono-NF-CN-BoldItalic.ttf
│ ├── MapleMono-NF-CN-Bold.ttf
│ ├── MapleMono-NF-CN-Italic.ttf
│ └── MapleMono-NF-CN-Regular.ttf
└── OPPOSerif
└── OPPOSerif.ttf
4 directories, 8 files
开始安装
# 创建系统字体子目录
sudo mkdir -p /usr/local/share/fonts/HarmonyOS-Sans
sudo mkdir -p /usr/local/share/fonts/MapleMono-NF-CN
sudo mkdir -p /usr/local/share/fonts/OPPOSerif
# 复制文件
sudo cp ~/Downloads/fonts/Harmony-OS-Sans/*.ttf /usr/local/share/fonts/HarmonyOS-Sans/
sudo cp ~/Downloads/fonts/Maple-Mono-NF-CN/*.ttf /usr/local/share/fonts/MapleMono-NF-CN/
sudo cp ~/Downloads/fonts/OPPOSerif/*.ttf /usr/local/share/fonts/OPPOSerif/
# 设置权限和 SELinux(Fedora 必须)
sudo chown -R root: /usr/local/share/fonts/*
sudo chmod 644 /usr/local/share/fonts/*/*.ttf
sudo restorecon -vFr /usr/local/share/fonts/
# 刷新缓存
sudo fc-cache -fv
vinceliuice 是一位来自中国的设计师(使用 Linux),他设计的主题和图标包都非常棒。
另请参阅 Linux 下 Intel 核显驱动配置与硬件加速

今年 10 月底,我选择了 Windows 11 IoT LTSC 作为操作系统,几个月以来,基本没什么大问题。但是:
几乎没有什么应用程序对我来说是非 Windows 不可了,所以!是时候拥抱 Linux Desktop 了。
先花了半天时间,按照 Arch Wiki 一步步完成了 Arch Linux 2025.12.01 的安装,桌面环境选择了 KDE Plasma。
体验了大半天,我的总结是:
回顾之前使用 Fedora Workstation 的体验,虽然它和 GNOME 的组合并非完美,但就目前的情况来看,它应该是最适合我的选择。或许,我值得再试一试?
制作镜像和启动方式再此略过,Fedora 默认支持安全启动(可能要打开允许第三方 CA 导入)。此外,我不喜欢默认的 Btrfs 文件系统,因为没有快照需求(当然,这是很不健康的实践),分区方案如下:
nvme0n1 953.9G 0 disk
└─nvme0n1p1 953.9G 0 part /data ext4
nvme1n1 931.5G 0 disk
├─nvme1n1p1 2G 0 part /boot vfat
├─nvme1n1p2 1G 0 part /boot/efi ext4
└─nvme1n1p3 928.5G 0 part / ext4
图形化安装和其他 Linux 发行版没什么区别,很快就安装完成了。
安装完成启动后进入初始化向导,询问启用第三方软件源,直接跳过,否则系统界面会失去响应(此前在 Fedora 42 上也是这样)
使用 USTC(或 TUNA)的 Fedora 镜像源、Flathub 缓存镜像源:
sudo sed -e 's|^metalink=|#metalink=|g' \
-e 's|^#baseurl=http://download.example/pub/fedora/linux|baseurl=https://mirrors.ustc.edu.cn/fedora|g' \
-i.bak \
/etc/yum.repos.d/fedora.repo \
/etc/yum.repos.d/fedora-updates.repo
# RPMFusion
sudo dnf install https://mirrors.ustc.edu.cn/rpmfusion/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm https://mirrors.ustc.edu.cn/rpmfusion/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm
# refresh cache
sudo dnf clean all
sudo dnf makecache
# flathub
flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
sudo flatpak remote-modify flathub --url=https://mirrors.ustc.edu.cn/flathub
进行一次软件包更新
sudo dnf upgrade --refresh
比如更改主机名为 fedora
sudo hostnamectl set-hostname fedora
让 NetworkManager 别等了
sudo systemctl disable NetworkManager-wait-online.service
sudo systemctl mask NetworkManager-wait-online.service
软件中心别吵我
gsettings set org.gnome.software download-updates false
gsettings set org.gnome.software download-updates-notify false
关闭资源管理器记住最近文件
gsettings set org.gnome.desktop.privacy remember-recent-files false
第二块 SSD 设置了挂载点 /data 作为数据盘使用,默认用户组 root 不利于日常使用,设置为普通用户
sudo chown -R 1000:1000 /data
GNOME 默认自带中文输入法,以前用过体验并不太好。这里使用 Fcitx5 输入框架和 Rime 输入引擎,输入方案选择 雾凇拼音 ,皮肤就不用了,默认的在 GNOME 下就已经很好看了。
sudo dnf install fcitx5 fcitx5-gtk fcitx5-qt fcitx5-rime librime-lua fcitx5-configtool
下载雾凇拼音输入方案
git clone https://github.com/iDvel/rime-ice.git ~/.local/share/fcitx5/rime --depth=1
添加中州韵输入法,重新部署后和其他平台的 Rime 输入法使用体验基本一样
fcitx5-configtool
PS:GNOME 需要安装插件 kimpanel 后,才能在状态栏正常显示托盘图标(包括输入法指示器)。
对于系统安全来说,禁用 SELinux 不是一个好的习惯,但是我确实不太喜欢这个,所以将它彻底关闭。
sudo vim /etc/selinux/config
# edit this
SELINUX=permissive
添加 SELinux 禁用参数
sudo vim /etc/default/grub
找到 GRUB_CMDLINE_LINUX_DEFAULT 添加 selinux=0
更新引导
sudo grub2-mkconfig -o /boot/grub2/grub.cfg
下次重启后 SELinux 就会被彻底关闭了。
通过 LVFS (Linux Vendor Firmware Service) 更新硬件设备固件
fwupdmgr refresh --force
fwupdmgr get-updates
fwupdmgr update
sudo dnf install gnome-extensions-app gnome-tweaks
以前用 GNOME 每次更新挂一堆拓展,我只安装了几个来保证基本的实用功能。

Google Chrome
sudo dnf install fedora-workstation-repositories
sudo dnf config-manager --set-enabled google-chrome
sudo dnf install google-chrome-stable
Hugo
看起来 Fedora 上面的版本不是最新,但是没有问题
sudo dnf install hugo
cloudflared
用于使用 Cloudflare Tunnel 的 SSH,用于访问我的 Forgejo 示例
curl -fsSl https://pkg.cloudflare.com/cloudflared.repo | sudo tee /etc/yum.repos.d/cloudflared.repo
sudo dnf install cloudflared
Evolution Mail
GNOME 原生的电子邮件客户端,支持 GPG、S/MIME,支持 EWS 协议,非常适合我
sudo dnf install evolution evolution-ews
Docker CE
sudo dnf config-manager addrepo --from-repofile https://download.docker.com/linux/fedora/docker-ce.repo
sudo dnf install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo systemctl enable --now docker
Steam
确保已开启 RPMFusion Nonfree 软件源,使用 Proton 后大部分游戏应该都能玩,详阅 Fedora 文档 。
Steam Linux 只有 32 位包(即 i686),如果讨厌太多 32 位依赖「污染」你的系统,也可以考虑使用 Flatpak 安装 Steam。
sudo dnf install steam
# 首次启动请通过终端
__GL_CONSTANT_FRAME_RATE_HINT=3 steam
Firewall GUI
这是 Fedora 官方推荐的防火墙可视化管理工具
$ sudo dnf install firewall-config
Flatpak 是个 Linux 下的沙盒运行环境,以下软件建议通过 Flathub 安装
Dialect :一款简洁的 GNOME 翻译工具,支持多种在线翻译引擎(很适合 GNOME 桌面)
Gradia :快速美化截图的工具,添加渐变背景、阴影、标注等
网易云音乐(Gtk4 版) :Linux 原生的网易云音乐播放器,界面简洁,支持歌单、播放等核心功能。
Flatseal :图形化管理 Flatpak 应用权限的工具,能精细控制每个应用的沙盒访问权。
QQ :Flatpak 打包的 QQ,使用 NT 核心
WeChat :Flatpak 打包的微信
Yubico Authenticator :YubiKey 硬件密钥配套的桌面验证器
Typora :所见即所得的 Markdown 编辑器
Crow Translate :轻量级翻译工具,支持选中文本翻译、OCR 和语音朗读(感觉更适合 KDE Plasma)
KeePassXC :跨平台的本地密码管理器,安全加密存储密码,支持自动填充
LocalSend :跨平台局域网文件传输工具,类似 AirDrop,无需联网,安全快速
Thunderbird :Mozilla 出品的开源邮件客户端,支持多账户、日历、RSS 等功能
以下软件虽然在 Flathub 上有打包,但是体验下来会有一些问题,建议通过 RPM 包手动安装
当开启了 Tun 模式后,会影响系统的网络连通性检测,表现为

虽然并不影响使用,但是看着很难受(有没有当年 Android 刷类原生的感觉😆?)解决方法很简单,把网络连通性检测关闭就行了
sudo vim /etc/NetworkManager/conf.d/90-disable-connectivity.conf
添加
[connectivity]
enabled=false
重启 NetworkManager 服务
sudo systemctl restart NetworkManager
现在舒服多了

使用 Flatpak 安装即可
flatpak install flathub com.yubico.yubioath
# import my PGP public key
curl -fsSL https://pgp.dejavu.moe/ | gpg --import -
# general conf
wget https://raw.githubusercontent.com/drduh/YubiKey-Guide/master/config/gpg.conf -O ~/.gnupg/gpg.conf
chmod 600 ~/.gnupg/gpg.conf
和往常一样设置 Git 信息
git config --global user.name <username>
git config --global user.email <email>
git config --global user.signingkey <keyid>
git config --global commit.gpgsign true
git config --global gpg.program /usr/bin/gpg
安装智能卡相关工具
sudo dnf install gnupg pcsc-lite pcsc-lite-ccid gnupg2-scdaemon pcsc-tools
启动智能卡连接服务
sudo systemctl enable --now pcscd
一些必要配置
vim ~/.gnupg/scdaemon.conf
# add
disable-ccid
pcsc-shared
# GPG Agent Config
vim ~/.gnupg/gpg-agent.conf
# add
ttyname $GPG_TTY
enable-ssh-support
allow-loopback-pinentry
# I prefer pinentry-curses
pinentry-program /usr/bin/pinentry-curses
#pinentry-program /usr/bin/pinentry
#pinentry-program /usr/bin/pinentry-qt
#pinentry-program /usr/bin/pinentry-gnome3
#pinentry-program /usr/bin/pinentry-tty
#pinentry-program /usr/bin/pinentry-x11
# the cache TTL not work for Smartcard?
default-cache-ttl 600
max-cache-ttl 7200
# list all keygrip
gpg -K --with-keygrip
# add to sshcontrol
vim ~/.gnupg/sshcontrol
设置环境变量
# ~/.bashrc or ~/.zshrc
# SSH GPG Agent for Yubikey
export GPG_TTY=$(tty)
export SSH_AUTH_SOCK=$(gpgconf --list-dirs agent-ssh-socket)
gpgconf --launch gpg-agent
gpg-connect-agent updatestartuptty /bye > /dev/null
# then
source ~/.zshrc
# or
source ~/.bashrc
最后
sudo systemctl restart pcscd
gpgconf --kill all && gpgconf --launch gpg-agent
目前碰到唯一的问题是 OpenPGP 应用的 PIN 每次都要输入,缓存时间似乎没用,查阅了相关手册暂时没找到解决方法😣。
补全 Noto Fonts 系列
sudo dnf install google-noto-sans-cjk-fonts google-noto-serif-cjk-fonts
挑选了比较喜欢的几个字体作为系统字体安装
整理一下
~/Downloads/fonts tree
.
├── Harmony-OS-Sans
│ ├── HarmonyOS-Sans-Black.ttf
│ ├── HarmonyOS_Sans_Bold.ttf
│ └── HarmonyOS_Sans_Regular.ttf
├── Maple-Mono-NF-CN
│ ├── MapleMono-NF-CN-BoldItalic.ttf
│ ├── MapleMono-NF-CN-Bold.ttf
│ ├── MapleMono-NF-CN-Italic.ttf
│ └── MapleMono-NF-CN-Regular.ttf
└── OPPOSerif
└── OPPOSerif.ttf
4 directories, 8 files
开始安装
# 创建系统字体子目录
sudo mkdir -p /usr/local/share/fonts/HarmonyOS-Sans
sudo mkdir -p /usr/local/share/fonts/MapleMono-NF-CN
sudo mkdir -p /usr/local/share/fonts/OPPOSerif
# 复制文件
sudo cp ~/Downloads/fonts/Harmony-OS-Sans/*.ttf /usr/local/share/fonts/HarmonyOS-Sans/
sudo cp ~/Downloads/fonts/Maple-Mono-NF-CN/*.ttf /usr/local/share/fonts/MapleMono-NF-CN/
sudo cp ~/Downloads/fonts/OPPOSerif/*.ttf /usr/local/share/fonts/OPPOSerif/
# 设置权限和 SELinux(Fedora 必须)
sudo chown -R root: /usr/local/share/fonts/*
sudo chmod 644 /usr/local/share/fonts/*/*.ttf
sudo restorecon -vFr /usr/local/share/fonts/
# 刷新缓存
sudo fc-cache -fv
vinceliuice 是一位来自中国的设计师(使用 Linux),他设计的主题和图标包都非常棒。
另请参阅 Linux 下 Intel 核显驱动配置与硬件加速