当前章节概览与适用范围 1 / 11

Arch Linux、HyDE 与 Proton 游戏环境手册

这份文档写给第一次认真装 Arch 的人。目标不是把命令堆满屏幕,而是让你知道每一步在改什么、怎么检查、错了从哪里退。文档默认你愿意折腾,也默认你会在敲格式化命令前停下来确认磁盘名。

1概览与适用范围

安装路线、硬件检查和游戏兼容排查的图文流程示意
先把任务拆成硬件、安装、桌面、驱动、Steam、单个游戏。后面每一步都只改一层。

这份手册覆盖一条很具体的路线:UEFI 机器,GPT 分区,Arch Linux 主系统,Btrfs 子卷,HyDE/Hyprland 桌面,NVIDIA 或混合显卡环境,Steam 作为主要游戏入口。它也会提到 Windows 双系统、EFI 分区、Secure Boot、BitLocker、Proton 兼容层和反作弊。它不负责替你决定是否删除 Windows,也不承诺每个游戏都能跑。

如果你是第一次装 Arch,先把这篇当成施工记录,而不是一条必须照抄的命令流水线。Arch 的特点是简单、透明、滚动更新。简单不等于省心,它的意思是系统把决定权交给你。你需要知道自己有没有进 UEFI 模式,根分区挂在哪里,EFI 分区是不是被误格式化,驱动包和内核是不是同一套来源。

本文的命令里会出现 `/dev/nvme0n1`、`/dev/sda`、`/mnt`、`USERNAME`、`HOSTNAME` 这类占位符。占位符必须替换。尤其是磁盘名,不能凭印象。你在安装环境里看到的盘符,可能和 Windows、PE、另一个 Linux 里的叫法不同。每次写分区表、格式化、挂载前,都要先看 `lsblk -f` 和 `fdisk -l`。

Warning: 任何会写分区表、格式化文件系统、重装引导器的命令,都可能让系统无法启动。先备份,再操作。不要在没看输出的情况下把本文命令整块复制到终端。
Note: 内核、NVIDIA 驱动、Proton、GE-Proton、DW-Proton 会变。本文不写具体版本号。你需要用命令查询当前机器的实际版本,并把测试日期记下来。

建议你准备一个普通文本文件,安装当天记下这些信息:电脑型号,CPU,GPU,内存,磁盘布局,是否双系统,BIOS 里 Secure Boot 状态,Windows 是否开启 BitLocker,使用的 ISO 日期,安装时网络方式,安装后选择的内核和显卡驱动。以后游戏突然不能启动、更新后黑屏、Steam 前缀坏掉,这些记录会比回忆靠谱。

Arch live 环境里检查 UEFI、磁盘、显卡和网络状态的终端截图
实际动手前先跑硬件和启动方式检查。图里把 `uname`、`lsblk`、`lspci`、`efibootmgr` 放在同一屏,方便确认你不是在错误机器或错误磁盘上操作。
uname -m
lsblk -f
fdisk -l
efibootmgr
ip link

输出怎么看:`uname -m` 正常应是 `x86_64`。`lsblk -f` 会列出磁盘、分区、文件系统和挂载点。`efibootmgr` 能读出 UEFI 启动项,说明你在 UEFI 环境;如果报错,先检查是不是以 Legacy/CSM 启动了 ISO。`ip link` 能看到网卡名,后面联网会用到。

这份文档的另一条线是游戏。米哈游类启动器、鸣潮、异环、最后生还者 2、带 Easy Anti-Cheat 或 BattlEye 的游戏,问题经常不在一个层面。启动器可能被自己拉起的登录窗口挡住,Proton 前缀可能坏,显卡驱动可能缺 32 位库,反作弊可能压根没让 Linux 客户端进服务器。排障时先把问题分层,不要一上来就重装系统。

2安装前准备

UEFI 启动菜单、ISO 校验和网络 ping 检查的操作屏幕示意
准备阶段只确认三件事:镜像可信、启动方式是 UEFI、网络可用。

准备阶段最无聊,也最能救命。你需要一个 Arch ISO,一个能写镜像的 U 盘,一个可靠网络,一份备份。双系统用户还需要 Windows 恢复密钥。很多人装完 Linux 后 Windows 要求 BitLocker 恢复,不是 Arch 破坏了数据,而是启动链和 TPM 状态变了。恢复密钥找不到,麻烦会比重装 Arch 大得多。

ISO 下载后要校验。校验不是仪式,它能排除下载损坏和镜像被替换。Windows 下可以用 PowerShell 算 SHA256,Linux 下用 `sha256sum`。校验值要和官方下载页面一致。写入 U 盘时选“以镜像模式写入”,不要把 ISO 当普通文件复制进去。

Windows PowerShell 校验 Arch ISO、启动盘工具和 live 环境 ping 检查截图
准备阶段的真实节奏是:先在 Windows 侧保存恢复密钥和校验 ISO,再进 live 环境确认网络。不要边分区边补这些检查。
Get-FileHash .\archlinux-YYYY.MM.DD-x86_64.iso -Algorithm SHA256
sha256sum archlinux-YYYY.MM.DD-x86_64.iso

进 BIOS/UEFI 后先看三件事。第一,启动模式选择 UEFI,不要用 Legacy/CSM。第二,如果你不准备处理 Secure Boot 签名,先关闭 Secure Boot,等系统稳定后再研究。第三,Windows 双系统如果开了 BitLocker,先在 Windows 里暂停或保存恢复密钥。不同品牌 BIOS 名字不一样,但核心都是这几项。

网络也要提前想好。网线最省事。Wi-Fi 可以用 `iwctl`,但有些网卡需要固件,有些校园网或网页登录认证会很烦。新手安装时不要同时挑战十个变量。能插网线就插网线;必须用 Wi-Fi,就先在 live 环境里确认能 ping 通。

ip link
iwctl
ping -c 3 archlinux.org

`iwctl` 里常用流程是 `device list` 看无线设备,`station wlan0 scan` 扫描,`station wlan0 get-networks` 看网络名,`station wlan0 connect SSID` 连接。这里的 `wlan0` 和 `SSID` 要换成你的输出。连接后退出,再用 `ping` 检查。能解析域名说明 DNS 也正常。

双系统分区要更谨慎。Windows 已有 EFI 分区时,通常复用它,不要新建一堆 EFI。EFI 分区一般是 FAT32,大小可能 100MB 到 1GB,挂载到 `/boot` 或 `/efi`。如果它太小,后面放多个内核可能紧张;但直接扩 EFI 分区牵扯 Windows 分区移动,新手不建议在没备份时做。

Tip: 如果你只想先试桌面和游戏,建议准备一块空 SSD。单盘单系统比双系统更容易定位问题。确认体验后再迁移双系统。

安装前还要定一个回退方式。最简单的是保留 Arch ISO U 盘。系统引导坏了,用它进 live 环境,挂载根分区和 EFI,`arch-chroot` 进去修。不要安装完就把 U 盘重做成别的东西。第一次装 Arch,那个 U 盘就是你的扳手。

3分区与安装

lsblk 输出、分区表和格式化前确认的操作屏幕示意
分区时先看磁盘型号和容量,再碰格式化命令。示例设备名不能照抄。

这一节从空盘说起。假设目标磁盘是 `/dev/nvme0n1`,EFI 分区是 `/dev/nvme0n1p1`,Linux 根分区是 `/dev/nvme0n1p2`。这只是例子。你的机器可能是 `/dev/sda`,也可能已有 Windows 分区。只要你没完全确认,就不要执行 `mkfs`。

先看磁盘。`lsblk -f` 看文件系统,`fdisk -l` 看分区表,`blkid` 看 UUID。你要确认目标盘大小、品牌、已有分区、是否挂载。新手常犯的错是把 U 盘当目标盘,把 Windows 数据盘格式化,或者在已有 EFI 分区上重新 `mkfs.vfat`。EFI 可以挂载复用,不等于要格式化。

lsblk -f
fdisk -l
blkid
findmnt

空盘可以用 `cfdisk` 或 `parted`。新手用 `cfdisk` 更直观。分区方案可以很简单:EFI 分区 1GB,类型 EFI System;根分区剩余空间,类型 Linux filesystem。swap 可以用 swapfile,先不单独分区。内存很小或要休眠,再专门规划 swap 分区。

cfdisk /dev/nvme0n1
cfdisk 中显示 GPT 分区表、EFI 分区和 Btrfs 根分区的终端截图
`cfdisk` 里要看清设备名、容量和分区类型。双系统机器看到 EFI 分区时,第一反应应该是“挂载复用”,不是重新格式化。
分区挂载点文件系统用途新手检查
/dev/nvme0n1p1/bootFAT32EFI 启动文件已有 Windows EFI 时通常不要格式化
/dev/nvme0n1p2/Btrfs系统和用户数据确认目标是 Linux 根分区
swapfileswap交换空间装完后创建,便于调整大小

格式化时分两种情况。全新空盘可以格式化 EFI 和根分区。双系统复用 Windows EFI 时,只格式化 Linux 根分区,EFI 只挂载。下面命令写的是空盘示例。双系统用户不要照抄第一行。

mkfs.vfat -F32 /dev/nvme0n1p1
mkfs.btrfs -f /dev/nvme0n1p2

Btrfs 子卷的好处是以后做快照和回滚更方便。常见做法是 `@` 做根,`@home` 做家目录,`@log` 放日志,`@cache` 放包缓存。子卷不是分区,创建和删除比传统分区轻。第一次装系统时按一个固定方案来,后面别频繁改。

Btrfs 子卷、挂载顺序和 fstab 预览的操作屏幕示意
Btrfs 重点是挂载顺序:根子卷、EFI、home、log、cache。`findmnt` 能直接验收。
mount /dev/nvme0n1p2 /mnt
btrfs subvolume create /mnt/@
btrfs subvolume create /mnt/@home
btrfs subvolume create /mnt/@log
btrfs subvolume create /mnt/@cache
umount /mnt

挂载顺序要稳。先挂根子卷到 `/mnt`,再建目录,再挂 EFI、home、log、cache。每一步后面都可以用 `findmnt` 看结果。`compress=zstd` 是常见选择,`noatime` 可以减少无意义写入。这里不加复杂参数,先让系统可启动。

mount -o subvol=@,compress=zstd,noatime /dev/nvme0n1p2 /mnt
mkdir -p /mnt/{boot,home,var/log,var/cache/pacman/pkg}
mount /dev/nvme0n1p1 /mnt/boot
mount -o subvol=@home,compress=zstd,noatime /dev/nvme0n1p2 /mnt/home
mount -o subvol=@log,compress=zstd,noatime /dev/nvme0n1p2 /mnt/var/log
mount -o subvol=@cache,compress=zstd,noatime /dev/nvme0n1p2 /mnt/var/cache/pacman/pkg
findmnt /mnt

确认挂载后安装基础包。`linux` 是默认内核,`linux-firmware` 提供固件,`base-devel` 以后编译 AUR 包会用到,`networkmanager` 管网络,`btrfs-progs` 管 Btrfs。微码包按 CPU 选一个:Intel 装 `intel-ucode`,AMD 装 `amd-ucode`。

pacstrap -K /mnt base linux linux-firmware base-devel btrfs-progs networkmanager grub efibootmgr nano sudo
pacstrap -K /mnt intel-ucode
# AMD CPU 用下面这行,不要两个都装
# pacstrap -K /mnt amd-ucode
genfstab -U /mnt >> /mnt/etc/fstab
arch-chroot /mnt

`genfstab` 后要打开 `/mnt/etc/fstab` 看一眼。重点看 UUID 是否存在,挂载点是否重复,EFI 是否挂到你选的位置。很多启动失败来自 fstab 写错。能在安装阶段发现,就不要留到第一次重启。

Btrfs 子卷挂载、findmnt 树和 fstab 预览的终端截图
这张图对应安装中最容易跳过的一步:`genfstab` 之后打开文件复核。能看到 `subvol=@`、EFI、home、log 的挂载关系,才继续 chroot。

4基础系统

时区、locale、用户、网络和引导器配置的操作屏幕示意
基础系统先能启动和联网,桌面环境放到下一步。

进入 `arch-chroot /mnt` 后,你已经在新系统里了。此时要做的是让系统有时间、语言、主机名、普通用户、网络服务和引导器。不要急着装桌面。基础系统能稳定启动,再装 HyDE。这样出问题时好定位。

先设置时区和硬件时钟。中国大陆一般用 `Asia/Shanghai`。如果你在别的地区,换成自己的时区。`hwclock --systohc` 会把系统时间写到硬件时钟。双系统机器通常让 Windows 和 Linux 都按本地时间或都按 UTC,别混着来。

ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
hwclock --systohc
timedatectl

语言环境最少开 `en_US.UTF-8`,中文用户可以同时开 `zh_CN.UTF-8`。编辑 `/etc/locale.gen`,去掉对应行前面的 `#`,再运行 `locale-gen`。系统默认语言可以设成英文,这样报错更容易搜索;桌面里再单独配置中文输入法。

nano /etc/locale.gen
locale-gen
printf "LANG=en_US.UTF-8\n" > /etc/locale.conf

主机名随便取,但别用空格和中文。hosts 文件写标准三行。然后设置 root 密码,创建普通用户,把普通用户加入 wheel 组,开启 sudo。日常不要用 root 登录桌面。

printf "HOSTNAME\n" > /etc/hostname
cat > /etc/hosts << "EOF"
127.0.0.1 localhost
::1       localhost
127.0.1.1 HOSTNAME.localdomain HOSTNAME
EOF
passwd
useradd -m -G wheel -s /bin/bash USERNAME
passwd USERNAME
EDITOR=nano visudo

在 `visudo` 里找到 `%wheel ALL=(ALL:ALL) ALL`,去掉前面的 `#`。保存前确认你创建的用户确实在 wheel 组。以后登录普通用户,用 `sudo` 提权。

启用网络服务。`NetworkManager` 对桌面用户最省事。安装后启用服务,重启进入系统就能用 `nmcli` 或图形网络组件连接网络。

systemctl enable NetworkManager
systemctl status NetworkManager

安装 GRUB。这里假设 EFI 挂载在 `/boot`。如果你选择 `/efi`,命令里的目录也要换。`--bootloader-id=Arch` 会创建一个名为 Arch 的启动项。执行后用 `grub-mkconfig` 生成配置。

grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=Arch
grub-mkconfig -o /boot/grub/grub.cfg
efibootmgr

第一次退出前,做一个最小检查:`/etc/fstab` 存在,`/boot` 里有 EFI 文件,NetworkManager 已启用,普通用户能 sudo,GRUB 生成成功。然后退出 chroot,卸载,重启。重启后拔掉 U 盘,确认能进新系统。

exit
umount -R /mnt
reboot
Tip: 如果重启后进不去,不要马上重装。用 Arch ISO 进 live 环境,按原来的挂载顺序挂回 `/mnt`,再 `arch-chroot /mnt` 检查 fstab、GRUB 和 EFI。
Arch 首次启动后在 TTY 检查 NetworkManager、IP 地址和 pacman 更新的截图
第一次重启先验收基础系统:普通用户、网络、sudo、GRUB。桌面不要抢在这一步前面装,否则坏了很难判断是哪层出错。

5HyDE / Hyprland

Hyprland 桌面、启动器登录弹窗、hyprctl clients 和窗口规则编辑示意
登录框被遮住时,先查窗口 class/title,再写最小窗口规则。

HyDE 是围绕 Hyprland 做的一套桌面配置。它适合想快速拿到完整 Hyprland 体验的人:Waybar、壁纸、Wallbash、启动器、窗口规则、通知、主题切换都有。缺点也直接:它会接管很多配置,新手很容易不知道问题来自 Hyprland、HyDE 脚本、驱动还是自己改过的文件。

建议先把基础系统更新到最新,再装显卡驱动和桌面。桌面前先确认你能进 TTY,普通用户能 sudo,网络可用。这样图形界面坏了还能回 TTY 修。

sudo pacman -Syu
whoami
groups
systemctl status NetworkManager
ip route

安装 HyDE 前先读仓库说明。不要把远程脚本当黑箱。看它会装哪些包、改哪些目录、是否覆盖 `~/.config`。如果你已经有重要 Hyprland 配置,先备份。

mkdir -p ~/backup-before-hyde
cp -a ~/.config/hypr ~/backup-before-hyde/ 2>/dev/null || true
cp -a ~/.config/waybar ~/backup-before-hyde/ 2>/dev/null || true
cp -a ~/.config/rofi ~/backup-before-hyde/ 2>/dev/null || true

HyDE 的快捷键需要自己记一遍。常见绑定里,`SUPER+ALT+Right` 是下一张壁纸,`SUPER+ALT+Left` 是上一张壁纸,`SUPER+ALT+Up/Down` 切 Waybar layout,`SUPER+SHIFT+R` 打开 Wallbash 模式选择,`SUPER+ALT+G` 是 game mode。实际按键以你安装后的配置为准。

功能快捷键用途出问题时看哪里
下一张壁纸SUPER + ALT + Right检查壁纸和 Wallbash 是否联动壁纸目录、HyDE 脚本日志
上一张壁纸SUPER + ALT + Left回退到上一张壁纸同上
Waybar layoutSUPER + ALT + Up/Down切换顶部栏布局~/.config/waybar/config.jsonc
WallbashSUPER + SHIFT + R选择基于壁纸的配色模式Wallbash 配置和缓存
Game modeSUPER + ALT + G为游戏会话切换行为HyDE game mode 脚本
HyDE 桌面、Waybar、hyprctl clients 和窗口规则编辑截图
HyDE 的问题通常要同时看桌面状态、Waybar、`hyprctl clients` 和规则文件。截图式排查比凭感觉改配置稳得多。

Waybar 不是一个单条横栏那么简单。HyDE 主题通常会把左右两侧、居中模块、tray、network、pulseaudio、microphone 分成不同 group。你要改圆角、间距、透明度,先找对应 group,再改 CSS。不要直接全局改 `*`,否则一个角标修好了,另一个模块可能坏。

hyprctl monitors
hyprctl clients
hyprctl activewindow
journalctl --user -b -p warning..alert

游戏启动器和登录框的问题,多半要靠窗口规则。米哈游类启动器、鸣潮、异环这类窗口,经常打开一个内嵌登录窗口,结果被主窗口挡住,或者 Hyprland 把它当普通 tiled 窗口放到奇怪位置。处理方法是先用 `hyprctl clients` 看 class、title、initialTitle,再写只匹配这个登录窗口的规则。

hyprctl clients
nano ~/.config/hypr/userprefs.conf

# 示例,不要照抄 class/title,先用 hyprctl clients 查
windowrule = float,match:title ^(Login)$
windowrule = center,match:title ^(Login)$
windowrule = pin,match:title ^(Login)$
hyprctl reload

Steam 相关窗口规则可以按用途拆开:好友列表、设置、ProtonUp-Qt、Yad/Protontricks 这类工具窗口适合 float,主游戏窗口保持全屏或独占。你加规则时要小,先匹配具体 title,再扩到 class。匹配过宽会让整个启动器都漂起来。

Tip: 登录框被游戏遮住时,不要先换 Proton。先看窗口有没有创建出来。`hyprctl clients` 能看到但看不见,多半是窗口规则;压根没有窗口,再看启动器日志和 Proton 前缀。

6内核与 NVIDIA

NVIDIA 模块、Vulkan 检查、TTY 回退和桌面恢复的操作屏幕示意
驱动排障先分层:运行中内核、已装包、模块、日志、Vulkan。

Arch 是滚动更新。内核、Mesa、NVIDIA、Hyprland、Wayland 协议都会变。本文不写具体版本号,因为写了很快就过期。你真正需要的是会查当前版本,会判断驱动模块有没有加载,会从日志里分辨是显示管理器坏、Hyprland 坏,还是 NVIDIA 模块没起来。

先查内核和系统。`uname -r` 是正在运行的内核,不等于磁盘上最新安装的内核。`pacman -Q linux` 查包版本。刚更新完内核但没重启时,两者可能不一致。NVIDIA 模块是按内核构建的,内核跑旧的、模块装新的,就会出问题。

uname -r
pacman -Q linux linux-firmware
pacman -Qs '^linux'
bootctl status 2>/dev/null || true

NVIDIA 有闭源驱动和 open kernel modules。具体选哪个,看显卡代际、发行包说明和你的稳定性。不要同时装一堆相互冲突的包。先查当前装了什么,再决定改。

pacman -Qs nvidia
pacman -Qi nvidia nvidia-utils 2>/dev/null
pacman -Qi nvidia-open nvidia-utils 2>/dev/null
lsmod | grep nvidia
modinfo nvidia 2>/dev/null | head
nvidia-smi

`nvidia-smi` 能跑,不代表 Wayland 一定没问题;但它跑不了,至少说明驱动链有事。再看 `lsmod` 是否有 `nvidia_drm`、`nvidia_modeset`、`nvidia_uvm`。Hyprland 下还要看 modeset。常见检查是读 `/sys/module/nvidia_drm/parameters/modeset`,输出 `Y` 才是启用。

cat /sys/module/nvidia_drm/parameters/modeset 2>/dev/null
journalctl -b -k | grep -i nvidia
journalctl -b -p warning..alert
journalctl --user -b -p warning..alert
查询 Arch 内核、NVIDIA 包、nvidia-smi、journalctl 和 Vulkan 状态的终端截图
NVIDIA 排障按顺序来:运行中的内核、已安装包、模块、日志、Vulkan。不要先卸驱动,先把这些输出留住。

HyDE 的 NVIDIA 配置里有几项常见环境变量:`LIBVA_DRIVER_NAME=nvidia`、`__GLX_VENDOR_LIBRARY_NAME=nvidia`、`GBM_BACKEND=nvidia-drm`。它还把硬件光标关掉:`cursor:no_hardware_cursors = true`,这是为了规避卡顿或光标问题。视频硬解可能需要 `libva-nvidia-driver`,并配 `NVD_BACKEND=direct`。这些不是越多越好,改一项测一项。

# ~/.config/hypr/nvidia.conf 示例
env = LIBVA_DRIVER_NAME,nvidia
env = __GLX_VENDOR_LIBRARY_NAME,nvidia
env = GBM_BACKEND,nvidia-drm
cursor:no_hardware_cursors = true

游戏相关还要装 32 位库。Steam 和很多 Windows 游戏需要 multilib。先打开 `/etc/pacman.conf` 里的 `[multilib]`,再同步数据库。不要只装 64 位驱动就以为游戏都能启动。

sudo nano /etc/pacman.conf
sudo pacman -Syu
sudo pacman -S nvidia-utils lib32-nvidia-utils vulkan-icd-loader lib32-vulkan-icd-loader

黑屏时先别慌。按 `Ctrl+Alt+F3` 进 TTY。如果能登录,说明内核大概率起来了,问题在图形层。先看日志,再决定回退包、换内核、禁用某个 Hyprland 配置。保留一个 LTS 内核是很实用的回退方式。

sudo pacman -S linux-lts linux-lts-headers
sudo grub-mkconfig -o /boot/grub/grub.cfg
pacman -Q linux linux-lts

判断标准很简单:升级前游戏和桌面都正常,升级后图形坏,先查本次升级动了哪些包。`/var/log/pacman.log` 会告诉你。不要凭感觉卸驱动。把证据拿出来,再回退。

7Steam 与兼容层

Steam 游戏属性、兼容层选择、前缀目录和 Proton 日志的操作屏幕示意
每个游戏单独选兼容层。前缀按 appid 备份,不要删整个 Steam 目录。

Steam 在 Arch 上一般不难,难的是把问题分清。Steam 客户端能打开,游戏不一定能启动。游戏能启动,登录器不一定能显示。登录器能显示,反作弊不一定让你进服务器。先装 Steam,再装 Proton 管理工具,再逐个游戏记录兼容层。

sudo pacman -S steam steam-native-runtime gamemode mangohud gamescope winetricks
sudo pacman -S vulkan-tools
vulkaninfo --summary

GE-Proton 通常用于社区修补更快的游戏兼容。DW-Proton 是 Dawn Winery 方向的 Proton 构建。Proton-H 或 Hotfix 可以作为某些游戏的临时回退。不要把“最新”当答案。兼容层选择看游戏。一个游戏固定一个能用的版本,记录下来。更新前先确认旧版本还在。

ProtonUp-Qt 是图形化管理兼容层的常用工具。Arch 可以从 AUR 装,也可以用 Flatpak。没有 AUR helper 的人不要为了它先把系统搞复杂,先会手动放目录也行。Steam 的兼容层目录通常在 `~/.steam/root/compatibilitytools.d/`。

mkdir -p ~/.steam/root/compatibilitytools.d
ls ~/.steam/root/compatibilitytools.d
find ~/.steam/root/compatibilitytools.d -maxdepth 2 -type f -name compatibilitytool.vdf

每个 Steam 游戏都有 appid。它的 Proton 前缀通常在 `~/.steam/steam/steamapps/compatdata/APPID/`。这个目录相当于该游戏的 Windows C 盘和注册表。DLL、字体、VC 运行库、启动器缓存都在里面。前缀坏了可以删,但删之前要确认 appid,最好先改名备份。

APPID=123456
cd ~/.steam/steam/steamapps/compatdata
mv "$APPID" "${APPID}.bak.$(date +%Y%m%d-%H%M)"
steam
Steam 游戏属性兼容层选择、启动参数和 compatdata 前缀备份截图
Steam 里最关键的两个现场:游戏属性里的兼容层选择,以及 `compatdata/APPID` 前缀目录。先备份单个 appid,再让 Steam 重建。

Protontricks 用来给某个前缀装运行库或改 winecfg。先用 GUI 选游戏更安全,确认 appid 后再命令行。不要把网上看到的 DLL 覆盖命令直接用到所有游戏。一个前缀一个实验。

protontricks --gui
protontricks -l
protontricks APPID winecfg

Gamescope 可以隔离分辨率和全屏行为,MangoHud 可以看帧率、GPU、CPU、frametime。排障时先开 MangoHud。能看到 overlay,说明渲染路径至少跑起来了。卡在启动器前,MangoHud 可能看不到,这时看 Steam 日志和 Proton log。

MANGOHUD=1 %command%
gamemoderun %command%
gamescope -W 1920 -H 1080 -f -- %command%
PROTON_LOG=1 %command%

`PROTON_LOG=1` 会在 home 目录生成 `steam-APPID.log`。日志很长,不要整份乱发。先搜 `err:`、`wine:`、`dxvk`、`vkd3d`、`fsync`、`esync`、`ntdll`。如果日志停在启动器,问题和游戏本体不同;如果进游戏后崩,才看图形 API、显存、驱动和游戏设置。

Warning: 不要全局强制所有游戏使用同一个 GE-Proton。Steam 里每个游戏单独设置兼容层,稳定后记录日期和版本名。

8游戏记录矩阵

游戏兼容矩阵、状态芯片和回退记录的操作屏幕示意
矩阵只记录能帮助回退的信息:日期、兼容层、启动参数、登录、联机、日志。

游戏测试要写矩阵。原因很简单:你不可能记住每个游戏用了哪个 Proton、加了什么启动参数、登录框怎么处理、哪天还能进。矩阵不是装饰,它是回退路线。每次改兼容层前先复制旧记录。

游戏建议兼容层启动方式登录框问题回退策略排障入口
米哈游启动器类GE-Proton 起步Steam 非 Steam 游戏或独立启动器登录窗口可能被主窗口遮住固定旧 GE-Proton,备份前缀hyprctl clients、PROTON_LOG
鸣潮最新可用 GE-Proton启动器进入游戏注意二维码、网页登录、焦点抢占回退上一可用 GE-Proton启动器日志、Steam log、窗口规则
异环DW-Proton按启动器或 Steam 添加入口登录层和游戏层分开记录保留 DW-Proton 旧包compatdata、winecfg、hyprctl
最后生还者 2Proton-H / HotfixSteam 原生库通常不是登录框,更多看图形和缓存切回 Hotfix 或官方 ProtonMangoHud、shader cache、vkd3d 日志

米哈游类游戏先把启动器当一个程序,把游戏本体当另一个程序。启动器问题包括登录框、网页控件、二维码、更新器、下载目录权限。游戏本体问题包括 DXVK/VKD3D、输入法、全屏、手柄、崩溃。不要看到一个黑屏就说 Proton 不行。先问:黑屏的是启动器,还是游戏窗口?

游戏主窗口遮住登录框、hyprctl clients 输出和 Hyprland 窗口规则修复截图
登录框被挡住时,先确认窗口真的创建出来,再按 class/title 写最小规则。不要把整个启动器或游戏主窗口都强制浮动。

鸣潮这类游戏更新频繁,兼容层选择很容易随补丁变化。你要记录“今天能进到哪里”:能打开启动器,能登录,能进服务器,能进战斗,还是只到反作弊。每个阶段的失败原因不同。只写“能玩/不能玩”没用。

异环如果你使用 DW-Proton,就把 DW-Proton 放在单独目录,别和 GE-Proton 混命名。Steam 下拉列表里名字相似时很容易选错。最好把目录名保留上游原名,然后在矩阵里写清日期。

最后生还者 2 这类大型单机更容易遇到 shader 编译、显存、VKD3D、图形选项问题。先降画质、关帧生成、关覆盖层,只保留 MangoHud。能稳定进菜单后,再一项项加回去。别一开始就把 Gamescope、MangoHud、gamemode、录屏、输入法、手柄映射全开。

mkdir -p ~/games-linux-notes
nano ~/games-linux-notes/proton-matrix.md

记录模板可以很朴素:日期、系统更新状态、内核、驱动查询输出、Steam appid、兼容层、启动参数、是否能登录、是否能进游戏、失败日志路径、回退方案。每次测试只改一个变量。今天换 Proton,其他都别动;明天改窗口规则,Proton 先保持不变。这样你才知道是哪一步起作用。

date
uname -r
pacman -Qs nvidia
APPID=123456
ls ~/.steam/steam/steamapps/compatdata/$APPID
PROTON_LOG=1 %command%

9反作弊

本地游戏、兼容层桥接、服务器反作弊入口和官方支持检查的操作示意
Proton 提供路径,游戏开发商必须启用支持。启动成功不等于能联机。

反作弊要单独说,因为这里最容易产生误会。Proton 支持 Easy Anti-Cheat 和 BattlEye 的运行路径,但具体游戏必须由开发商启用并发布对应配置。也就是说,小蓝熊和战眼不是“装了 Proton 就自动支持 Linux”。一个游戏能进启动器,不代表能进带反作弊的联机服务器。

判断时分三层。第一层,游戏进程能不能启动。第二层,反作弊组件能不能初始化。第三层,服务器是否允许你进入匹配或联机。很多帖子只说“能进游戏”,但没有说能不能匹配。你自己记录时必须写清。

date
echo "Game: GAME_NAME"
echo "AppID: APPID"
echo "Proton: PROTON_NAME"
echo "Can launch:"
echo "Can login:"
echo "Can matchmake:"
echo "Error message:"
ls ~/steam-APPID.log 2>/dev/null

Steam 页面、开发商公告、ProtonDB、Steam Deck Verified 都可以参考,但最终以你当天测试为准。ProtonDB 的报告也要看日期、发行版、显卡、驱动、Proton 版本。半年以前的“可玩”对滚动系统未必有效;昨天的“不可玩”也可能只是某个用户前缀坏了。

遇到反作弊报错,不要先尝试奇怪的绕过方法。不要替换来路不明的 DLL,不要关系统安全功能去赌。反作弊误判会影响账号。正确做法是查官方是否支持 Linux/Proton,确认 Steam 是否下载了对应运行时,删单个游戏前缀重建,换官方 Proton 或该游戏社区确认过的 GE-Proton。仍然失败,就记录失败点,别硬冲。

Warning: 本文不提供绕过反作弊的方法。能否联机由游戏和服务端决定。任何账号风险都要按游戏条款处理。

有些单机或弱联网游戏使用反作弊只是保护本体启动,有些竞技游戏会在匹配时做更严格的检查。你要把“能打开主菜单”和“能进多人模式”分开写。对于小白来说,这个区分能少走很多弯路。

10维护与回滚

快照、包缓存、日志和救援 U 盘的维护回滚操作示意
更新前做快照,更新后看日志。清理缓存和前缀前先保留回退材料。

Arch 的维护不是每天盲目 `pacman -Syu`。你需要一个节奏:更新前看公告和快照,更新后看日志和关键程序,出问题先回退最近一次变化。桌面游戏机尤其要保守。你不想在晚上准备玩游戏时,顺手更新出一个黑屏。

Btrfs 用户可以用 Snapper 或 Timeshift。Snapper 更偏命令行和子卷,Timeshift 图形化更直观。选一个就行,不要两个一起乱管同一套快照。第一次配置后,必须做一次恢复演练:至少确认能列出快照,知道快照在哪里,知道 live 环境怎么挂载。

sudo pacman -S snapper
sudo snapper -c root create-config /
sudo snapper -c root create --description "before big update"
sudo snapper -c root list

更新前手动建快照。更新后重启,检查桌面、网络、声音、Steam、一个轻量游戏、一个 Proton 游戏。全部正常,再清缓存。不要刚更新完就立刻删旧包。旧包是你回退的材料。

sudo snapper -c root create --description "before pacman -Syu"
sudo pacman -Syu
reboot
journalctl -b -p warning..alert
journalctl --user -b -p warning..alert
grep -i upgraded /var/log/pacman.log | tail -50
Snapper 快照、pacman 更新日志、journalctl 和缓存包回退命令截图
维护图里保留三个入口:快照编号、pacman 更新记录、缓存包。出问题时先找最近一次变化,再决定回滚方式。

包回退可以用缓存,也可以用 Arch Linux Archive。新手先看本地缓存。`/var/cache/pacman/pkg` 里如果还有旧包,可以用 `pacman -U` 装回去。回退 NVIDIA 时要注意内核、驱动、utils、lib32 包一致,不能只退一半。

ls /var/cache/pacman/pkg | grep nvidia
sudo pacman -U /var/cache/pacman/pkg/PACKAGE_NAME.pkg.tar.zst

Steam 前缀清理要按 appid 做。先改名备份,再让 Steam 重建。不要删 `steamapps/common`,那是游戏本体;不要删整个 `compatdata`,那会影响所有游戏。Shader cache 也可以清,但先记录你清了什么。

APPID=123456
cd ~/.steam/steam/steamapps/compatdata
mv "$APPID" "${APPID}.broken.$(date +%Y%m%d-%H%M)"
steam

最后,给自己留一份维护清单。每周或每次大更新前看一遍:有快照吗,Arch 首页有没有公告,NVIDIA 和内核是不是一起更新,Hyprland 是否有破坏性变更,Steam 游戏今晚要不要先别动。折腾可以很开心,但前提是你知道怎么撤。

11Miku 主题包

这一节只讲主题安装。它不是机器状态页,也不记录私人配置。你需要做三件事:备份旧主题,解压 `mikufans`,再用 HyDE 切换过去。

主题包解压后会得到 `mikufans/` 和 `INSTALL.md`。`mikufans/` 要放进 `~/.config/hyde/themes/`。主题包含壁纸、logo、Hyprland、Waybar、Rofi、Kitty 和 Kvantum 外观资源,主色是 Miku teal `#39C5BB`,辅色是 cyan 和 pink。

下载 mikufans HyDE 主题包

主题结构

文件或目录用途安装后检查
wallpapers/Miku 和 wafu/soft 系列壁纸主题切换后检查壁纸轮换和 Wallbash 取色
logo/miku.png主题 logo 和展示素材检查启动器、fastfetch 或主题选择器是否能读取
hypr.themeHyprland 边框、圆角、阴影、blur 和光标主题执行 `hyprctl reload` 后看窗口边框和模糊
waybar.themeWaybar 透明栏、模块 pill、active/hover 色重启 Waybar 后检查顶部栏可读性
kitty.theme透明终端、Miku 调色板、标签和边框色打开新终端确认前景/背景和选区颜色
rofi.theme启动器背景、边框、选中项和强调色打开 Rofi,确认选中项和文字对比度
kvantum/Qt/Kvantum 控件外观打开 Qt 程序检查菜单、按钮和滚动条

安装流程

  1. 备份 `~/.config/hyde/themes`,至少备份你自己改过的主题。
  2. 把压缩包解到 `~/.config/hyde/themes/`,确认里面出现 `mikufans/`。
  3. 用 HyDE 主题选择器或 `hydectl` 切到 `mikufans`。
  4. 重载 Hyprland,再重启 Waybar、Rofi、Kitty。Qt 程序没变化时再检查 Kvantum。
  5. 文字看不清时,先调 Waybar/Rofi/Kitty 透明度,不要一上来全局改 blur。

回退原则

主题只改外观。要回退,先恢复备份的主题目录,再切回原主题。黑屏、游戏打不开、Steam 前缀损坏通常要按桌面、驱动、Steam、单个游戏分层排查,不要只改主题。

mkdir -p ~/.config/hyde/themes ~/.config/hyde/backups
cp -a ~/.config/hyde/themes ~/.config/hyde/backups/themes-before-mikufans
tar -xzf hyde-mikufans-theme-20260708.tar.gz -C ~/.config/hyde/themes
hydectl theme set mikufans
hyprctl reload
Tip: 主题教学页不绑定某一台机器。排障时把系统版本、显卡、Proton 和游戏日志写到自己的记录里,不要把这些状态硬编码进教程正文。

COMMAND PALETTE

搜索手册

输入至少 2 个字符

    DESTRUCTIVE COMMAND

    复制前必须确认

    危险命令

    这组命令会写磁盘、启动项或系统配置。网页无法知道你的真实设备名。

    TROUBLESHOOTING ROUTER

    故障诊断分流

    先选最接近的症状。每次只改一层,并保留输出。