Arch Linux 新手教程:从零搭建 niri 与 dms 的 Wayland 桌面环境
1. 这篇文章真正要解决的问题如果你是一个对 Linux 充满好奇但被 Arch Linux 的“硬核”名声吓退的开发者或爱好者这篇文章就是为你写的。很多人对 Arch 的认知停留在“高手专用”、“安装复杂”、“容易滚挂”因此望而却步转而选择 Ubuntu 或 Fedora。但 Arch 真正的魅力在于其极致的简洁、强大的社区和滚动更新的最新软件它能让你对自己的系统拥有前所未有的掌控力。本文要解决的正是这个核心矛盾如何让一个仅有5个月 Linux 使用经验的小白也能安全、顺畅地完成 Arch Linux 的安装与基础调校并在此基础上搭建一个现代化的、以 niri 和 dms 为核心的桌面环境。这不是一篇冷冰冰的官方 Wiki 翻译而是一份结合了实战经验、避坑指南和原理理解的保姆级教程。你将不仅学会“怎么做”更能理解“为什么这么做”从而在遇到问题时能自己思考和解决。我们将从最基础的虚拟机准备和 Arch ISO 启动开始一步步走过分区、系统安装、基础配置、桌面环境搭建直到安装并配置 niri一个新兴的、平铺式、Wayland 原生的合成器和 dms一个轻量级显示管理器。读完本文你将获得一个干净、高效、可高度自定义的 Arch Linux 工作站并掌握从零构建一个 Linux 系统的核心方法论。2. 基础概念与核心原理在动手之前理解几个关键概念能让你在后续步骤中游刃有余而不是机械地复制命令。Arch Linux 是什么Arch Linux 是一个崇尚简洁、现代、实用主义和用户中心主义的 Linux 发行版。它采用“滚动更新”模式意味着你的系统软件包会持续更新到最新版本无需像 Ubuntu LTS 那样每隔几年进行一次大版本升级。它的另一个核心哲学是KISSKeep It Simple, Stupid原则系统安装后仅提供一个最基础的命令行环境所有其他组件都由用户按需安装和配置。这带来了极高的灵活性和透明度但也意味着你需要投入更多时间进行初始设置。niri 是什么niri 是一个用 Rust 编写的、平铺式窗口管理器兼 Wayland 合成器。它类似于 i3 或 Sway但设计上更现代、更专注于 Wayland 协议。平铺式意味着窗口会自动排列不重叠极大提升了键盘操作的效率和屏幕空间利用率。选择 niri 而非更成熟的 Sway是因为它代码库较新设计理念清晰且对 Wayland 新特性的支持可能更积极适合愿意尝试新技术的用户。dms 是什么dms 是一个极简的显示管理器Display Manager。显示管理器负责在系统启动后提供图形化的登录界面并启动你的桌面会话如 niri。相比 GDM、SDDM 等“重量级”方案dms 非常轻量只做最基本的工作验证用户身份并启动指定的桌面环境。对于追求极致简洁和启动速度的 Arch 用户来说dms 是一个很好的选择。Wayland vs X11这是现代 Linux 桌面一个重要的技术分水岭。X11 是已存在数十年的显示服务器协议成熟但架构陈旧。Wayland 是其现代化替代品旨在解决 X11 在安全、性能和现代图形特性支持上的诸多问题。niri 是一个原生的 Wayland 合成器这意味着它必须在 Wayland 会话下运行。我们的整个桌面环境将构建在 Wayland 之上。关键组件关系图逻辑层面硬件启动 - Linux 内核 (Arch)内核加载 - 系统初始化 (systemd)系统启动显示管理器服务 (dms)dms 显示登录界面 - 用户登录dms 根据配置启动niri会话niri 作为 Wayland 合成器启动接管显示并管理所有图形应用程序窗口。理解了这些你就知道我们不是在安装一个“开箱即用”的系统而是在像搭积木一样从内核开始逐层构建一个完全符合自己心意的桌面环境。3. 环境准备与前置条件工欲善其事必先利其器。在开始安装前请确保准备好以下环境这对于新手来说至关重要可以避免损坏物理机系统。3.1 硬件与虚拟机准备主力机器一台可以正常使用的电脑Windows, macOS 或 Linux 均可。虚拟机软件强烈推荐使用VirtualBox或VMware Workstation Player免费用于个人用途。虚拟机提供了完美的沙盒环境允许你随意尝试、失败、重来而无需担心数据丢失。本文演示将基于 VirtualBox。资源分配内存至少分配 4GB推荐 8GB 或以上尤其是要运行浏览器等现代应用。硬盘创建一个新的虚拟硬盘类型选择VDI分配方式选择动态分配大小至少40GB为后续安装软件留足空间。处理器至少 2 个 CPU 核心并开启虚拟化支持VT-x/AMD-V。显存在 VirtualBox 的“显示”设置中将显存调到128MB以上并启用3D 加速对 Wayland 合成器很重要。3.2 下载 Arch Linux 安装镜像访问 Arch Linux 官方镜像站例如https://archlinux.org/download/下载最新的ISO 镜像文件。通常文件名类似archlinux-202x.xx.xx-x86_64.iso。这是我们的安装介质。3.3 创建虚拟机并加载镜像在 VirtualBox 中点击“新建”。名称输入Arch Linux类型选择Linux版本选择Arch Linux (64-bit)。按上文建议分配内存和硬盘。创建完成后选中该虚拟机点击“设置”。在“存储”选项卡中点击“控制器IDE”下的光盘图标选择“选择虚拟光盘文件...”然后加载你下载的 Arch ISO 文件。在“网络”选项卡中确保“连接方式”为网络地址转换NAT。这能让虚拟机通过宿主机上网是安装过程中下载软件包的关键。3.4 启动前的最后检查确保宿主机网络通畅。准备好一个文本编辑器如 VS Code或第二个浏览器标签页用于随时查阅本文和可能的错误信息。心态准备安装过程需要输入一系列命令请仔细核对每个字符。Linux 是区分大小写的。4. 核心流程拆解从启动到基础系统现在启动你的虚拟机我们将进入 Arch Linux 的安装流程。整个过程在命令行下完成。4.1 启动与网络连接虚拟机启动后你会看到 Arch Linux 的引导菜单直接按回车进入 Live 环境一个运行在内存中的完整 Arch 系统。 首先检查网络连接。由于我们使用了 NAT 网络Arch Live 环境通常会自动通过dhcpcd获取 IP 地址。用以下命令测试ping -c 3 archlinux.org如果能看到数据包返回说明网络正常。如果失败可以尝试手动启动网络接口假设网卡名为enp0s3可用ip link查看dhcpcd enp0s34.2 磁盘分区使用fdisk这是新手最容易紧张的一步。我们将为系统创建一个简单的分区方案一个 EFI 系统分区ESP约 512MB用于 UEFI 启动。一个根分区占用剩余所有空间用于安装系统和用户数据。查看磁盘设备名fdisk -l通常虚拟机的磁盘是/dev/sda。对磁盘进行分区fdisk /dev/sda在fdisk交互界面中输入g创建一个新的 GPT 分区表适用于 UEFI 启动。输入n创建新分区分区号默认第一个扇区默认大小输入512M。创建完成后输入t并选择分区类型1EFI System。再次输入n创建第二个分区分区号、扇区全部默认即占用所有剩余空间。这个分区将作为根分区。输入w将分区表写入磁盘并退出。格式化分区mkfs.fat -F32 /dev/sda1 # 格式化 ESP 分区为 FAT32 mkfs.ext4 /dev/sda2 # 格式化根分区为 ext44.3 挂载分区与安装基本系统挂载根分区到/mntmount /dev/sda2 /mnt为 ESP 分区创建挂载点并挂载mkdir -p /mnt/boot/efi mount /dev/sda1 /mnt/boot/efi关键步骤安装基本系统包。使用pacstrap脚本它会将指定的软件包安装到/mnt下。我们安装最基础的组pacstrap -K /mnt base base-devel linux linux-firmware vim sudo networkmanagerbase最核心的系统组件。base-devel包含编译软件所需的工具如gcc,make安装 AUR 助手时会用到。linux内核。linux-firmware硬件固件。vim文本编辑器你也可以选择nano。sudo权限管理工具。networkmanager网络管理工具比dhcpcd功能更强大易用。4.4 生成 fstab 与 Chroot生成文件系统表让系统启动时能自动挂载分区genfstab -U /mnt /mnt/etc/fstab建议用cat /mnt/etc/fstab检查一下生成的内容是否正确。切换到新安装的系统环境Chrootarch-chroot /mnt执行成功后命令提示符会变化表示你已进入新系统的根目录下进行操作。5. 基础系统配置现在我们在 Chroot 环境中对新系统进行关键配置。5.1 设置时区、本地化与主机名# 设置时区亚洲/上海为例 ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime hwclock --systohc # 编辑本地化配置启用 en_US.UTF-8 和 zh_CN.UTF-8 vim /etc/locale.gen # 找到 en_US.UTF-8 UTF-8 和 zh_CN.UTF-8 UTF-8去掉行首的 # 注释保存退出。 locale-gen # 设置系统语言环境 echo LANGen_US.UTF-8 /etc/locale.conf # 设置主机名 echo myarch /etc/hostname # 编辑 hosts 文件 vim /etc/hosts # 添加以下内容 # 127.0.0.1 localhost # ::1 localhost # 127.0.1.1 myarch.localdomain myarch5.2 设置 Root 密码与创建用户# 为 root 用户设置密码 passwd # 创建一个普通用户例如名为 yourname并加入 wheel 组用于 sudo useradd -m -G wheel -s /bin/bash yourname passwd yourname # 配置 sudo允许 wheel 组成员使用 sudo EDITORvim visudo # 找到 # %wheel ALL(ALL:ALL) ALL 这一行去掉行首的 # 注释保存退出。5.3 安装引导程序GRUB对于 UEFI 系统我们安装 GRUBpacman -S grub efibootmgr grub-install --targetx86_64-efi --efi-directory/boot/efi --bootloader-idGRUB grub-mkconfig -o /boot/grub/grub.cfg5.4 启用必要服务并完成安装# 启用 NetworkManager使其开机自启 systemctl enable NetworkManager # 退出 chroot 环境 exit # 卸载分区并重启 umount -R /mnt reboot重启前务必在虚拟机设置里移除 Arch ISO 光盘镜像否则又会从 Live 环境启动。重启后你应该能看到 GRUB 引导菜单选择 Arch Linux 启动并使用你创建的普通用户登录命令行界面。6. 图形环境与核心组件安装系统启动后用你的普通用户登录。首先确保网络可用NetworkManager已自动运行可用nmtui命令图形化配置或ping测试。6.1 安装图形驱动与 Xorg/Wayland 基础即使我们最终用 Wayland一些底层库还是需要的。sudo pacman -S xorg-server-xwayland mesa vulkan-intel vulkan-radeon vulkan-swrast # 根据你的虚拟机或物理机显卡选择驱动 # 虚拟机VirtualBox sudo pacman -S virtualbox-guest-utils # Intel 集成显卡 sudo pacman -S xf86-video-intel # AMD 显卡 sudo pacman -S xf86-video-amdgpu # NVIDIA 显卡情况复杂建议先查阅 Arch Wiki sudo pacman -S nvidia nvidia-utils对于 VirtualBox 虚拟机安装virtualbox-guest-utils并加载模块sudo pacman -S virtualbox-guest-utils sudo systemctl enable vboxservice.service6.2 安装 AUR 助手yayArch 用户软件仓库AUR有海量社区维护的软件。yay是最受欢迎的 AUR 助手之一。# 安装必要的依赖 sudo pacman -S --needed git base-devel # 克隆 yay 仓库并编译安装 git clone https://aur.archlinux.org/yay.git cd yay makepkg -si cd .. rm -rf yay安装后yay的使用方式与pacman类似如yay -S package-name。6.3 安装 niriWayland 合成器niri 目前主要在 AUR 中。yay -S niri-git-git后缀表示安装最新的开发版本。你也可以选择niri稳定版如果有的话。6.4 安装 dms显示管理器dms 同样在 AUR。yay -S dms6.5 安装字体、终端与基础工具一个可用的桌面环境还需要一些基础组件。sudo pacman -S alacritty firefox noto-fonts noto-fonts-cjk noto-fonts-emoji # alacritty: 一个高性能的终端模拟器常在平铺式WM中使用。 # firefox: 浏览器。 # noto-fonts: Google 的字体家族包含中文字体避免乱码。7. 配置 niri 与 dms安装只是第一步配置才是让它们协同工作的关键。7.1 配置 niriniri 的配置文件位于~/.config/niri/config.kdl。首先创建配置目录和文件mkdir -p ~/.config/niri vim ~/.config/niri/config.kdl以下是一个极简的启动配置示例它设置了默认的终端和 Mod 键通常为 Win/Super 键// ~/.config/niri/config.kdl input { keyboard “us” // 键盘布局 } key-bindings { ModReturn spawn “alacritty” ModShiftq close-window Modd spawn “” // 这里可以配置启动器例如 fuzzel } output “Virtual-1” { mode 1920x108060 }这个配置做了几件事设置了键盘布局为美式us。定义了键绑定Mod回车打开终端ModShiftq关闭当前窗口。为虚拟输出Virtual-1设置了分辨率。你可以根据你的显示器调整。7.2 配置 dmsdms 的配置文件在/etc/dms/config。我们需要告诉 dms 如何启动 niri。sudo vim /etc/dms/config配置文件内容如下# /etc/dms/config # 设置默认会话 DEFAULT_SESSIONniri # 定义 niri 会话 SESSION_niriniri这个配置非常简单设置默认会话为niri并定义了一个名为niri的会话其启动命令就是niri。7.3 创建 niri 的桌面会话文件为了让 dms 能识别 niri 作为一个可用的桌面会话我们需要创建一个.desktop文件。sudo vim /usr/share/wayland-sessions/niri.desktop文件内容[Desktop Entry] Nameniri CommentA scrollable-tiling Wayland compositor Execniri TypeApplication这个文件告诉系统存在一个名为 “niri” 的桌面环境启动命令是niri。7.4 启用 dms 服务并重启sudo systemctl enable dms sudo reboot重启后你应该会看到 dms 提供的简洁登录界面。输入你的用户名和密码登录后 dms 会自动执行niri命令启动你的平铺式 Wayland 桌面。8. 运行结果与效果验证成功登录后你应该会看到屏幕背景可能是纯色默认。没有传统的任务栏或开始菜单。此时你处于 niri 的管理之下。如何操作和验证打开终端按之前配置的Mod回车通常是Win回车。Alacritty 终端应该会全屏或平铺打开。关闭窗口焦点在终端上时按ModShiftq终端窗口应关闭。验证会话在终端里输入echo $XDG_SESSION_TYPE如果输出wayland恭喜你你正运行在纯 Wayland 会话下niri 工作正常。验证显示管理器systemctl status dms应该显示active (running)。至此你已经成功从零搭建了一个基于 Arch Linux niri dms 的极简、现代的 Wayland 桌面环境。整个系统非常轻量响应迅速。9. 常见问题与排查思路安装过程很少一帆风顺以下是新手可能遇到的典型问题及解决方法。问题现象可能原因排查方式解决方案重启后进入黑屏或命令行没有显示管理器1. dms 服务未启用。2. 显卡驱动问题。3. niri 配置错误导致立即崩溃。1.systemctl status dms查看状态。2. 在命令行尝试手动执行niri看错误输出。3. 检查journalctl -xe查看系统日志。1.sudo systemctl enable --now dms。2. 确保安装了正确的显卡驱动和mesa。3. 检查~/.config/niri/config.kdl语法可先备份后删除该文件让 niri 用默认配置启动测试。登录后屏幕闪烁一下又退回登录界面1. niri 会话启动失败。2..desktop文件路径或内容错误。1. 在登录界面尝试选择其他会话如weston如果安装了。2. 检查/usr/share/wayland-sessions/niri.desktop是否存在且内容正确。1. 在命令行直接运行niri看具体报错。2. 确保Execniri中的niri命令在 PATH 中通常安装后就在。网络在安装后不可用1. NetworkManager 未运行或未配置。2. 虚拟机网络适配器设置问题。1.systemctl status NetworkManager。2.ip addr查看网卡是否有 IP 地址。1.sudo systemctl start NetworkManager。2. 使用nmtui命令进行图形化网络连接配置。yay 安装 AUR 包失败1. 依赖缺失。2. AUR 包维护中或已失效。3. 网络问题。1. 仔细阅读 yay 输出的错误信息通常是编译错误或 missing dependency。2. 去 AUR 页面查看评论和最新动态。1. 根据错误提示安装缺失的依赖sudo pacman -S ...。2. 可以尝试yay -Syu --devel更新系统后再试。3. 对于失效包寻找替代方案。键盘快捷键不生效1. niri 配置文件中键绑定写错。2. Mod 键冲突被其他软件捕获。1. 检查config.kdl中key-bindings块的语法。2. 尝试更换 Mod 键如Mod改为Super或Alt。1. 参考 niri 官方文档或示例配置核对语法。2. 确保没有其他全局快捷键工具在运行。10. 最佳实践与工程建议系统跑起来只是开始以下建议能让你的 Arch 体验更稳定、高效。10.1 系统维护定期更新滚动更新的核心是持续小步更新。建议每周或每两周执行一次完整更新yay -Syu-Syu会同步软件仓库并升级所有包。更新后如果内核升级建议重启以使用新内核。阅读新闻在更新前偶尔查看 Arch 官网首页或arch-announce邮件列表了解可能需要手动干预的重大更新。备份配置你的系统精华全在配置文件如~/.config/,/etc/下的文件。定期用 Git 或 rsync 备份到外部存储。10.2 桌面环境深化状态栏niri 本身不提供状态栏。可以安装waybar或eww等 Wayland 兼容的状态栏并配置 niri 在启动时加载它们。应用启动器Modd我们留空了。可以安装fuzzel一个 Wayland 原生启动器或rofi需要 XWayland并在配置中修改为spawn “fuzzel”。图形化网络管理虽然用了nmtui但可以安装network-manager-applet并在状态栏集成实现图形化 Wi-Fi 管理。中文输入法安装fcitx5输入法框架及中文引擎yay -S fcitx5 fcitx5-chinese-addons fcitx5-gtk fcitx5-qt并在环境变量~/.pam_environment或启动脚本中设置相关变量。10.3 安全与稳定性防火墙考虑安装并配置ufwUncomplicated Firewall或firewalld。用户权限日常使用普通用户仅在需要时使用sudo。避免以 root 身份运行图形程序。Timeshift/Btrfs对于物理机如果担心滚挂可以考虑使用 Btrfs 文件系统配合 Timeshift 进行系统快照和回滚。这在虚拟机中同样适用提供了额外的安全网。10.4 探索与自定义Arch 的魅力在于 DIY。现在你有了一个干净的基础可以更换主题安装 GTK/Qt 主题引擎和图标包配置~/.gtkrc-2.0,~/.config/gtk-3.0/settings.ini等。配置 niri 布局深入学习 niri 的配置语法实现更复杂的平铺规则、窗口规则和动画效果。尝试其他 Wayland 合成器如 Sway更成熟Hyprland特效炫酷体验不同的设计哲学。完成以上所有步骤你收获的不仅仅是一个 Arch Linux 系统更是一套构建和理解 Linux 桌面环境的能力。从分区表到显示管理器你清晰地走过了每个环节知道了每个组件的作用。下次再遇到问题你不再需要从头搜索教程而是可以更有针对性地查看日志、分析配置、理解组件间的协作关系。这正是 Arch Linux 带给用户最宝贵的财富知识与控制力。建议将本文收藏在未来的探索中作为参考地图使用。