Arch Linux + Niri 桌面环境安装与配置全指南 (新手保姆级教程)
Arch Linux + Niri 桌面环境安装与配置全指南 (新手保姆级教程)
这篇教程旨在帮助完全没有 Linux 基础的新手,从零开始搭建一个基于 Niri(一款现代、流畅的平铺式窗口管理器)的系统。
虽然 Arch Linux 以“难”著称,但只要耐心遵循本指南,你不仅能装好系统,还能学到很多计算机底层知识。
一、脚本安装基础系统
Arch Linux 官方提供了一个名为 archinstall 的自动化脚本,它能帮我们省去 80% 的繁琐手动输入。
1. 连接网络
在安装界面(黑底白字的代码界面)中,我们需要先连上网。
使用 iwctl 工具,它就像一个命令行的“Wi-Fi 设置面板”。
启动工具 输入以下命令并回车:
iwctl此时你会看到提示符变成了
[iwd]#,说明进入了该软件内部。连接 Wi-Fi 假设你的 Wi-Fi 名字(SSID)是
MyWiFi,输入:station wlan0 connect MyWiFi如果你的 Wi-Fi 有密码,它会提示
Passphrase:,输入密码(注意:输入密码时屏幕上不会显示任何星号,这是正常的安全机制),然后回车。退出 iwctl 连上后,输入以下命令退回主界面:
exit你可以输入
ping -c 3 baidu.com看看有没有网络回传数据,来测试网络是否通畅。
2. 更新安装脚本
为了防止安装过程中报错,我们需要确保安装工具是最新的。
# 步骤 1: 更新密钥环
# 作用:Linux 安装软件需要验证“数字签名”以确保安全,这行命令是更新受信任的签名列表。
pacman -Sy archlinux-keyring
# 步骤 2: 更新 archinstall 脚本
# 作用:下载并安装最新版本的安装脚本。
pacman -S archinstall3. 运行 Archinstall
输入以下命令启动图形化安装向导:
archinstall配置向导详细说明:
Language & Locale (语言与区域):
- 建议保持
English。 - 原因:在纯命令行界面(TTY)下,中文无法显示,会变成方块乱码。我们等装好图形界面后再改中文。
- 建议保持
Mirrors (镜像源):
- 进入
Mirrors->Select regions-> 选择China。 - 作用:选择中国的服务器下载软件,速度更快。
- 进入
Optional repositories (可选仓库):
- 进入后,用空格键勾选
multilib。 - 作用:这是为了兼容 32 位程序。如果你以后想玩 Steam 游戏或运行一些老软件,这个必须开。
- 进入后,用空格键勾选
磁盘分区 (Disk configuration) [关键步骤 - 请仔细阅读]
我们要使用 Btrfs 文件系统,它像拥有“时间机器”一样,能在系统崩溃时通过快照一键还原。为了实现这个功能,我们需要特定的分区方式。
- 选择 Partitioning -> Manual partitioning (手动分区) -> 选中你的硬盘。
创建启动分区 (ESP):
- 作用:类似于 Windows 的引导分区,主板开机后先读这里。
- 操作:Create a new partition
- Size:
1024MB(给大一点,避免以后双系统空间不足) - Filesystem:
FAT32(通用格式,主板只认这个) - Mountpoint (挂载点):
/efi - 重要提示:绝对不要挂载到
/boot!因为我们要把/boot放在 Btrfs 内部以便对其进行快照备份。 - 选中该分区,勾选 Bootable 和 ESP 标记。
创建 Swap 分区 (交换空间):
- 作用:虚拟内存。当你的物理内存(RAM)用完时,系统会用这块硬盘空间救急,防止死机。
- Size: 建议等于你的物理内存大小(如 16GB)。
- Filesystem:
Linux Swap。
创建 Root 分区 (根目录):
- 作用:相当于 Windows 的 C 盘,存放系统和文件。
- Size: 剩余全部空间 (留空直接回车即可)。
- Filesystem:
btrfs。 选中该分区,进入 Configure details:
- Mount options: 勾选
compress=zstd(开启透明压缩,能让硬盘存更多东西,且读取速度更快)。 Subvolumes (子卷): 相当于“超级文件夹”,可以单独备份。
- 创建
@-> 对应挂载点/(系统核心文件) - 创建
@home-> 对应挂载点/home(你的个人文件,如文档、下载)
- 创建
- Mount options: 勾选
- 最后选择 Confirm and exit 完成分区。
其他配置
Swap: 如果脚本问你要不要配置 ZRAM,选 Yes。
- 解释:ZRAM 是在内存里划一块区域做压缩盘,速度比硬盘上的 Swap 快得多。
Bootloader: 选择 Grub。
- 原因:虽然有更简单的引导器,但为了配合 Btrfs 快照回滚功能,Grub 是目前最成熟的选择。
- Hostname: 给你的电脑起个名字(纯英文)。
- Root password: 设置超级管理员密码(最高权限)。
User account:
- Add a user -> 输入你的用户名。
- superuser (sudo): 务必选 Yes。这样你的用户平时是普通权限,需要时可以用
sudo获得管理员权限,更安全。
Profile (选择桌面):
- Type:
Desktop - Choice:
Minimal。 - 原因:我们不装那种臃肿的全家桶桌面,而是稍后手动安装轻量级的 Niri。
- Type:
Audio: 选择 Pipewire。
- 解释:这是 Linux 上新一代的音频处理服务,蓝牙耳机兼容性比老的 PulseAudio 好很多。
Network configuration: 选择 NetworkManager。
- 解释:这是最通用的网络管理工具,以后在桌面上点图标连 Wi-Fi 用的就是它。
Additional packages (附加软件):
- 输入:
vim git - 解释:
vim是必装的文本编辑器,git是下载代码库的工具。
- 输入:
最后选择 Install 开始安装。等到进度条跑完,选择进入 chroot 环境(这表示我们现在“穿越”进了刚装好的新系统里进行配置)。
二、系统基础配置
1. GRUB 引导优化
我们需要修改 GRUB 的配置文件。这里需要用到 vim 编辑器,新手请严格按以下步骤操作:
输入命令打开文件:
vim /etc/default/grubVim 操作教学:
- 刚进去是命令模式,不能打字。
- 按一下键盘上的
i键,左下角出现-- INSERT --,此时变成了编辑模式,可以像记事本一样打字修改了。 - 修改完后,按
Esc键退出编辑模式。 - 输入
:wq(英文冒号 + w + q),意思是“保存(write)并退出(quit)”,然后回车。
建议修改内容及解释:
- 启用双系统探测: 找到
#GRUB_DISABLE_OS_PROBER=false,删掉前面的#号。 作用:如果你电脑上还有 Windows,开启这个才能在开机菜单里看到 Windows。 - 开启启动项记忆: 将
GRUB_DEFAULT=0改为GRUB_DEFAULT=saved。 找到#GRUB_SAVEDEFAULT=true,删掉#号。 作用:记住你上次进了哪个系统,下次开机默认选那个。 - 显示开机日志: 在
GRUB_CMDLINE_LINUX_DEFAULT这一行引号里,删掉quiet。 建议添加loglevel=5。 作用:quiet会让开机黑屏直到进入桌面。删掉它可以看到开机时滚动的代码,不仅显得极客,还能在开不了机时看到报错信息。 - 禁用 Watchdog (看门狗): 在
GRUB_CMDLINE_LINUX_DEFAULT行末尾引号内添加:nowatchdog modprobe.blacklist=sp5100_tco(Intel CPU 用户请用iTCO_wdt替换sp5100_tco) 作用:Watchdog 是给服务器用的,死机时会自动重启。个人电脑不需要,关掉它可以加快开关机速度并省电。
应用更改并重启:
修改完保存退出后,必须执行以下命令让设置生效:
# 生成新的 GRUB 配置文件
grub-mkconfig -o /efi/grub/grub.cfg
# 创建一个兼容性链接
# 解释:因为很多软件默认 GRUB 在 /boot 目录下,我们在 /efi 建了,所以要做个“快捷方式”骗过它们。
mkdir -p /boot/grub
ln -sf /efi/grub/grub.cfg /boot/grub/grub.cfg
# 退出 chroot 环境并重启电脑
exit
reboot重启后拔掉 U 盘,如果看到了 GRUB 菜单并成功登录(输入用户名和密码),恭喜你,基础系统安装成功!
2. 添加 ArchLinuxCN 仓库 (中国特供版软件库)
Arch Linux 官方仓库主要收录开源软件,而很多我们将要用到的软件(如 WPS、微信、某些闭源驱动)都在社区维护的 ArchLinuxCN 仓库里。
编辑 Pacman 配置文件:
sudo vim /etc/pacman.conf注意:现在你是普通用户了,修改系统文件必须在命令前加
sudo,并输入密码。在文件末尾添加以下内容:
[archlinuxcn] Server = [https://mirrors.ustc.edu.cn/archlinuxcn/$arch](https://mirrors.ustc.edu.cn/archlinuxcn/$arch) Server = [https://mirrors.tuna.tsinghua.edu.cn/archlinuxcn/$arch](https://mirrors.tuna.tsinghua.edu.cn/archlinuxcn/$arch) Server = [https://mirrors.hit.edu.cn/archlinuxcn/$arch](https://mirrors.hit.edu.cn/archlinuxcn/$arch) Server = [https://repo.huaweicloud.com/archlinuxcn/$arch](https://repo.huaweicloud.com/archlinuxcn/$arch)导入密钥并安装 Yay:
# 信任 CN 仓库的签名作者 sudo pacman-key --lsign-key "farseerfc@archlinux.org" # 更新密钥环(相当于更新通行证) sudo pacman -Sy archlinuxcn-keyring # 安装 Yay # 解释:Yay 是一个强大的包管理助手,以后我们装软件主要用它,它能自动去 AUR (用户软件仓库) 帮我们下载代码并编译安装。 sudo pacman -S yay
三、安装 Niri 窗口管理器
Niri 是一个现代化的、基于 Wayland 技术的平铺式窗口管理器。与 Windows 不同,它默认会自动把所有窗口整齐排列,而不是层叠在一起。
1. 安装核心组件
复制并运行以下命令:
sudo pacman -S niri xwayland-satellite xdg-desktop-portal-gnome kitty polkit-gnome组件详解:
- niri: 主角,负责管理窗口和桌面。
- xwayland-satellite: Niri 是纯 Wayland 合成器,不支持老旧的 X11 协议。这个卫星进程用来兼容那些还没适配 Wayland 的老软件(比如某些旧游戏)。
- xdg-desktop-portal-gnome: “门户”。当软件需要“打开文件”或“截图”时,Niri 自己不管这些,它会通过这个门户调用 GNOME 的文件选择框给软件用。
- kitty: 一个性能极强、使用显卡加速的终端模拟器。Niri 默认不带终端,我们必须装一个。
- polkit-gnome: 身份认证代理。当你打开任务管理器等软件需要管理员权限时,如果没有它,你点破鼠标也没反应;有了它,会弹出一个框让你输密码。
2. 初始运行与配置
直接输入 niri-session 即可进入图形界面。如果想退出,默认快捷键是 Shift + Super + E(Super 就是键盘上的 Windows 徽标键)。
修改默认终端
Niri 默认配置是给 Alacritty 终端用的,我们需要改成 Kitty。
编辑配置文件:
vim ~/.config/niri/config.kdl在 Vim 中按 / 键进入搜索模式,输入 alacritty 回车。 找到相关行,修改为:
// Mod+T 是快捷键(Win + T)
// spawn "kitty" 表示按下快捷键后运行 kitty 这个程序
Mod+T hotkey-overlay-title="Open a Terminal" { spawn "kitty"; }配置自启动 (Polkit & 输入法)
我们需要让认证代理和输入法在开机时自动在后台运行。在配置文件中找到 spawn-at-startup 部分(通常在文件开头或结尾),添加:
// 启动 Polkit 认证代理(注意路径要对,Arch 下通常是这个)
spawn-at-startup "/usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1"
// 启动 Fcitx5 输入法
spawn-at-startup "fcitx5" "-d"3. 显示器配置 (解决字太小/屏幕排列问题)
如果你用的是高分屏笔记本,默认字体可能会非常小;或者如果你有两个屏幕,需要设置排列位置。
在 Niri 里打开终端(Win + T),输入:
niri msg outputs记下你的显示器名字,例如
eDP-1(通常是笔记本内屏)。在
config.kdl中添加:output "eDP-1" { // 强制设定分辨率和刷新率 mode "1920x1080@60.000" // 缩放倍率 // 1.0 = 100% (默认) // 1.25 = 125% (2K屏推荐) // 1.5 = 150% (4K屏推荐) scale 1.0 // 屏幕位置坐标 (x, y) // 0, 0 是左上角原点 position x=0 y=0 }
4. 鼠标手感优化
Linux 默认开启“鼠标加速”,这意味着你甩鼠标越快,指针跑得越远。这对于打游戏或精准操作非常难受。我们通常将其关闭,实现 1:1 的移动手感。
在 config.kdl 中查找 input 块:
input {
mouse {
// flat 表示平滑模式,即无加速
accel-profile "flat"
}
}四、安装 Noctalia (任务栏与开始菜单)
Niri 自带并没有任务栏,你需要一个第三方工具。Noctalia 是一套非常漂亮、专为 Niri 设计的面板。
# 使用 yay 安装 AUR 里的软件
# 提示:安装 AUR 软件时会需要编译,可能比较慢,中间出现选项一路回车即可。
yay -S noctalia-shell
# 安装推荐插件
# cava: 让任务栏显示音乐跳动的频谱
# wlsunset: 护眼模式(夜间自动变黄屏)
sudo pacman -S cava wlsunset配置自启动: 在 config.kdl 的自启动区域添加:
spawn-at-startup "qs" "-c" "noctalia-shell"五、配置 Snapper 系统快照 (后悔药)
这是 Arch Linux 敢于“滚挂”的底气。配置好后,每次你更新系统或安装软件,它都会自动拍个快照。如果更新完开不了机,重启选快照就能瞬间恢复。
1. 安装与准备
sudo pacman -S snapper snap-pac btrfs-assistant grub-btrfs inotify-tools
# 启用后台服务,用于监听快照变化并更新 GRUB 菜单
sudo systemctl enable --now grub-btrfsd2. 设置 OverlayFS (极客关键步)
默认情况下,快照是“只读”的。如果你直接启动进快照,系统因为无法写入临时文件会报错。OverlayFS 技术可以在只读快照上覆盖一层“可写层”,让你能正常进系统修复。
编辑内核镜像生成配置:
sudo vim /etc/mkinitcpio.conf- 找到
HOOKS这一行,在括号里的最后面(但在右括号之前)添加grub-btrfs-overlayfs。 注意:顺序很重要,不要随便插在中间。 重新生成内核镜像(相当于把驱动重新打包):
sudo mkinitcpio -P更新 GRUB 菜单:
sudo grub-mkconfig -o /efi/grub/grub.cfg
3. 创建快照策略
在 Niri 中运行 Btrfs Assistant 软件(图形界面):
- 点击标签页 Snapper Settings。
创建 Root 策略:
- Config Name 输入
root。 - Path 选择
/。 - 点击 New Config,然后点击 Save。
- Config Name 输入
创建 Home 策略 (可选,备份个人文件):
- Config Name 输入
home。 - Path 选择
/home。 - 点击 Save。
- Config Name 输入
- 调整保留数量: 在右侧选中
root,调整Cleanup选项。建议保留最近 10 个 Timeline(定时)和 10 个 Number(手动/自动),否则快照会把硬盘塞满。
六、中文输入法 (Fcitx5 + 雾凇拼音)
1. 安装
# 启用中文支持
sudo vim /etc/locale.gen
# 找到 zh_CN.UTF-8 UTF-8,去掉前面的 # 号,保存退出。
sudo locale-gen # 生成语言包
# 安装输入法框架和词库
# fcitx5-im: 框架全家桶
# rime-ice-pinyin-git: 雾凇拼音(目前体验最好的开源词库)
sudo pacman -S fcitx5-im fcitx5-rime fcitx5-mozc rime-ice-pinyin-git2. 配置环境变量 (告诉软件用哪个输入法)
Linux 的软件有 GTK 和 QT 两种界面库,如果不告诉它们,它们不知道该用 Fcitx 输入字。
编辑 /etc/environment:
sudo vim /etc/environment填入以下内容:
XMODIFIERS=@im=fcitx重启系统后生效。
3. 启用雾凇拼音
创建 Rime 配置文件,告诉它我们要用雾凇方案:
mkdir -p ~/.local/share/fcitx5/rime
vim ~/.local/share/fcitx5/rime/default.custom.yaml写入:
patch:
# 引入雾凇拼音建议配置
__include: rime_ice_suggestion:/七、终端与 Shell 美化
1. Zsh 配置
Shell 是你输入命令的那个黑框框的“内核”。默认的 Bash 比较原始,Zsh 则支持自动补全、语法高亮(命令输对了变绿,输错了变红)。
# 安装 Zsh 和插件
sudo pacman -S zsh zsh-syntax-highlighting zsh-autosuggestions zsh-completions
# 切换当前用户的默认 Shell 为 Zsh
chsh -s /usr/bin/zsh重新登录终端后,会进入 Zsh 设置向导,按 0 生成默认配置即可。然后编辑 ~/.zshrc 引入插件(具体代码请参考网络或之前的简化版)。
2. Starship 提示符
让你的命令行提示符从单调的 [user@hostname ~]$ 变成带有 Git 分支、执行时间、漂亮图标的状态栏。
sudo pacman -S ttf-jetbrains-mono-nerd starship注意:必须安装 Nerd Font 字体,否则图标会显示成乱码方块。
3. Kitty 美化
Kitty 是终端的“外壳”。我们来给它换个皮肤。
- 下载主题文件(如
frappe.conf)放到~/.config/kitty/themes/。 - 编辑
~/.config/kitty/kitty.conf:
# 引入主题
include themes/frappe.conf
# 窗口内边距(不让字紧贴着边框)
window_padding_width 5
# 去掉标题栏(更极简)
hide_window_decorations yes
# 背景半透明 (0.8 = 80% 不透明度)
background_opacity 0.8
# 设置字体
font_family JetBrainsMono Nerd Font
font_size 13八、常用软件安装与维护
1. 软件清单
这里列出了一些装机必备的软件:
yay -S yazi btop imv steam lutris udiskie udisks2 gvfs flatseal- yazi: 一个在终端里运行的超快文件管理器(像黑客一样操作文件)。
- btop: 炫酷的任务管理器,看 CPU 内存占用。
- imv: 轻量级看图软件。
- udiskie: 自动挂载 U 盘(不装这个插 U 盘没反应)。
2. 解决 Steam 下载慢 (Btrfs 特性优化)
Btrfs 的“写时复制”(CoW)特性虽然能做快照,但对于数据库和虚拟机镜像文件(Steam 游戏文件很大,且经常变动)会导致严重的磁盘碎片,让下载变慢、游戏卡顿。
我们通过文件属性禁用游戏目录的 CoW:
# 创建目录
mkdir -p ~/.local/share/Steam/steamapps
# chattr +C 表示给这个文件夹加上 "No_COW" 属性
chattr +C ~/.local/share/Steam/steamapps3. Flatpak 清理技巧 (硬盘瘦身)
Flatpak 是一种沙盒软件格式(类似手机 App,自带运行环境)。但它有个毛病:软件更新了,旧版的“运行环境”不会自动删,特别占空间。
清理无用运行时:
flatpak uninstall --unused建议每隔几个月运行一次。
清理 Yay 缓存:
yay -ScYay 下载的安装包默认会一直保留。如果你硬盘红了,用这个命令选 Y,可以瞬间释放几个 G 的空间。
恭喜! 如果你坚持到了这里,你已经拥有了一个完全属于你、从底层构建起来的高性能 Linux 桌面系统。Arch Linux 的乐趣在于折腾,现在的系统只是一个骨架,尽情地去探索和定制它吧!