Arch Linux + Niri 桌面环境安装与配置全指南 (新手保姆级教程)

这篇教程旨在帮助完全没有 Linux 基础的新手,从零开始搭建一个基于 Niri(一款现代、流畅的平铺式窗口管理器)的系统。

虽然 Arch Linux 以“难”著称,但只要耐心遵循本指南,你不仅能装好系统,还能学到很多计算机底层知识。

一、脚本安装基础系统

Arch Linux 官方提供了一个名为 archinstall 的自动化脚本,它能帮我们省去 80% 的繁琐手动输入。

1. 连接网络

在安装界面(黑底白字的代码界面)中,我们需要先连上网。

使用 iwctl 工具,它就像一个命令行的“Wi-Fi 设置面板”。

  1. 启动工具 输入以下命令并回车:

    iwctl

    此时你会看到提示符变成了 [iwd]#,说明进入了该软件内部。

  2. 连接 Wi-Fi 假设你的 Wi-Fi 名字(SSID)是 MyWiFi,输入:

    station wlan0 connect MyWiFi

    如果你的 Wi-Fi 有密码,它会提示 Passphrase:,输入密码(注意:输入密码时屏幕上不会显示任何星号,这是正常的安全机制),然后回车。

  3. 退出 iwctl 连上后,输入以下命令退回主界面:

    exit

    你可以输入 ping -c 3 baidu.com 看看有没有网络回传数据,来测试网络是否通畅。

2. 更新安装脚本

为了防止安装过程中报错,我们需要确保安装工具是最新的。

# 步骤 1: 更新密钥环
# 作用:Linux 安装软件需要验证“数字签名”以确保安全,这行命令是更新受信任的签名列表。
pacman -Sy archlinux-keyring

# 步骤 2: 更新 archinstall 脚本
# 作用:下载并安装最新版本的安装脚本。
pacman -S archinstall

3. 运行 Archinstall

输入以下命令启动图形化安装向导:

archinstall

配置向导详细说明:

  • Language & Locale (语言与区域):

    • 建议保持 English
    • 原因:在纯命令行界面(TTY)下,中文无法显示,会变成方块乱码。我们等装好图形界面后再改中文。
  • Mirrors (镜像源):

    • 进入 Mirrors -> Select regions -> 选择 China
    • 作用:选择中国的服务器下载软件,速度更快。
  • Optional repositories (可选仓库):

    • 进入后,用空格键勾选 multilib
    • 作用:这是为了兼容 32 位程序。如果你以后想玩 Steam 游戏或运行一些老软件,这个必须开。

磁盘分区 (Disk configuration) [关键步骤 - 请仔细阅读]

我们要使用 Btrfs 文件系统,它像拥有“时间机器”一样,能在系统崩溃时通过快照一键还原。为了实现这个功能,我们需要特定的分区方式。

  1. 选择 Partitioning -> Manual partitioning (手动分区) -> 选中你的硬盘。
  2. 创建启动分区 (ESP):

    • 作用:类似于 Windows 的引导分区,主板开机后先读这里。
    • 操作:Create a new partition
    • Size: 1024MB (给大一点,避免以后双系统空间不足)
    • Filesystem: FAT32 (通用格式,主板只认这个)
    • Mountpoint (挂载点): /efi
    • 重要提示绝对不要挂载到 /boot!因为我们要把 /boot 放在 Btrfs 内部以便对其进行快照备份。
    • 选中该分区,勾选 BootableESP 标记。
  3. 创建 Swap 分区 (交换空间):

    • 作用:虚拟内存。当你的物理内存(RAM)用完时,系统会用这块硬盘空间救急,防止死机。
    • Size: 建议等于你的物理内存大小(如 16GB)。
    • Filesystem: Linux Swap
  4. 创建 Root 分区 (根目录):

    • 作用:相当于 Windows 的 C 盘,存放系统和文件。
    • Size: 剩余全部空间 (留空直接回车即可)。
    • Filesystem: btrfs
    • 选中该分区,进入 Configure details:

      • Mount options: 勾选 compress=zstd (开启透明压缩,能让硬盘存更多东西,且读取速度更快)。
      • Subvolumes (子卷): 相当于“超级文件夹”,可以单独备份。

        • 创建 @ -> 对应挂载点 / (系统核心文件)
        • 创建 @home -> 对应挂载点 /home (你的个人文件,如文档、下载)
    • 最后选择 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。
  • Audio: 选择 Pipewire

    • 解释:这是 Linux 上新一代的音频处理服务,蓝牙耳机兼容性比老的 PulseAudio 好很多。
  • Network configuration: 选择 NetworkManager

    • 解释:这是最通用的网络管理工具,以后在桌面上点图标连 Wi-Fi 用的就是它。
  • Additional packages (附加软件):

    • 输入:vim git
    • 解释:vim 是必装的文本编辑器,git 是下载代码库的工具。

最后选择 Install 开始安装。等到进度条跑完,选择进入 chroot 环境(这表示我们现在“穿越”进了刚装好的新系统里进行配置)。

二、系统基础配置

1. GRUB 引导优化

我们需要修改 GRUB 的配置文件。这里需要用到 vim 编辑器,新手请严格按以下步骤操作

  1. 输入命令打开文件:

    vim /etc/default/grub
  2. Vim 操作教学

    • 刚进去是命令模式,不能打字。
    • 按一下键盘上的 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 仓库里。

  1. 编辑 Pacman 配置文件:

    sudo vim /etc/pacman.conf

    注意:现在你是普通用户了,修改系统文件必须在命令前加 sudo,并输入密码。

  2. 在文件末尾添加以下内容:

    [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)
  3. 导入密钥并安装 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. 显示器配置 (解决字太小/屏幕排列问题)

如果你用的是高分屏笔记本,默认字体可能会非常小;或者如果你有两个屏幕,需要设置排列位置。

  1. 在 Niri 里打开终端(Win + T),输入:

    niri msg outputs

    记下你的显示器名字,例如 eDP-1(通常是笔记本内屏)。

  2. 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-btrfsd

2. 设置 OverlayFS (极客关键步)

默认情况下,快照是“只读”的。如果你直接启动进快照,系统因为无法写入临时文件会报错。OverlayFS 技术可以在只读快照上覆盖一层“可写层”,让你能正常进系统修复。

  1. 编辑内核镜像生成配置:

    sudo vim /etc/mkinitcpio.conf
  2. 找到 HOOKS 这一行,在括号里的最后面(但在右括号之前)添加 grub-btrfs-overlayfs注意:顺序很重要,不要随便插在中间。
  3. 重新生成内核镜像(相当于把驱动重新打包):

    sudo mkinitcpio -P
  4. 更新 GRUB 菜单:

    sudo grub-mkconfig -o /efi/grub/grub.cfg

3. 创建快照策略

在 Niri 中运行 Btrfs Assistant 软件(图形界面):

  1. 点击标签页 Snapper Settings
  2. 创建 Root 策略:

    • Config Name 输入 root
    • Path 选择 /
    • 点击 New Config,然后点击 Save
  3. 创建 Home 策略 (可选,备份个人文件):

    • Config Name 输入 home
    • Path 选择 /home
    • 点击 Save
  4. 调整保留数量: 在右侧选中 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-git

2. 配置环境变量 (告诉软件用哪个输入法)

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 是终端的“外壳”。我们来给它换个皮肤。

  1. 下载主题文件(如 frappe.conf)放到 ~/.config/kitty/themes/
  2. 编辑 ~/.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/steamapps

3. Flatpak 清理技巧 (硬盘瘦身)

Flatpak 是一种沙盒软件格式(类似手机 App,自带运行环境)。但它有个毛病:软件更新了,旧版的“运行环境”不会自动删,特别占空间。

  • 清理无用运行时:

    flatpak uninstall --unused

    建议每隔几个月运行一次。

  • 清理 Yay 缓存:

    yay -Sc

    Yay 下载的安装包默认会一直保留。如果你硬盘红了,用这个命令选 Y,可以瞬间释放几个 G 的空间。

恭喜! 如果你坚持到了这里,你已经拥有了一个完全属于你、从底层构建起来的高性能 Linux 桌面系统。Arch Linux 的乐趣在于折腾,现在的系统只是一个骨架,尽情地去探索和定制它吧!

标签: none

添加新评论