从零搭建Arch Linux极简桌面:niri平铺窗口管理器与LightDM配置全攻略

📅 2026/8/18 3:47:13
从零搭建Arch Linux极简桌面:niri平铺窗口管理器与LightDM配置全攻略
之前折腾过不少 Linux 发行版但总感觉桌面体验要么太臃肿要么不够流畅。直到看到 Arch Linux 搭配 niri 和 dms 这套组合那种极致的简洁和丝滑感瞬间击中了我。作为一个 5 个月前还是纯小白的新手我深知从零开始搭建这套环境的迷茫。本文将记录我完整的踩坑与调校过程从 Arch 基础安装到 niri 平铺窗口管理器的配置再到 dms 显示管理器的集成手把手带你打造一个既美观又高效的 Linux 桌面环境。无论你是想体验 Arch 的滚动更新还是追求一个与众不同的桌面这篇保姆级教程都能让你少走弯路。1. 背景与核心概念在开始动手之前我们先理清几个核心概念这能帮助你理解我们正在构建的是一个什么样的系统。Arch Linux是一个以轻量、简洁和“DIY”精神著称的 Linux 发行版。它不提供图形化的安装程序而是通过命令行一步步引导用户安装这让你能完全掌控系统的每一个组成部分。其滚动更新的特性意味着你总能获得最新的软件包但同时也需要使用者具备一定的系统维护能力。niri是一个用 Rust 语言编写的、新兴的平铺式窗口管理器Tiling Window Manager。与 GNOME、KDE 这类完整的桌面环境不同窗口管理器只负责窗口的布局和管理。niri 的设计哲学是极简、美观和流畅它默认提供了优雅的动画效果和直观的键盘驱动操作方式非常适合追求效率和视觉体验的用户。dms这里指的是显示管理器Display Manager它是一个图形化的登录界面用于启动你的桌面会话。常见的 dms 有 LightDM、SDDM、GDM 等。我们将选择一个轻量级的 dms 来启动我们的 niri 会话这样开机后就能直接进入图形界面而无需每次都手动从命令行启动。为什么选择这套组合极致控制Arch 让你从底层开始构建系统。高效与美观niri 提供了键盘驱动的平铺工作流和现代动画。完整体验dms 补全了从开机到桌面的最后一环。学习价值整个过程能让你深入理解 Linux 桌面栈的各个层级。2. 环境准备与版本说明在开始安装前请确保你已准备好以下环境。本文的实操基于虚拟机或实体机全新安装请务必备份重要数据。硬件与基础环境一台可用的电脑或虚拟机软件如 VMware Workstation Pro, VirtualBox。稳定的网络连接Arch 安装需要在线下载软件包。一个不小于 8GB 的 U 盘用于制作安装介质。Arch Linux 安装镜像从 Arch Linux 官方下载页面 获取最新的 ISO 文件。本文涉及的核心软件版本滚动更新版本号会变以下为撰写时的版本内核linux包如6.8.9.arch1-1窗口管理器niri(如0.1.3-1)显示管理器我们选用lightdm和lightdm-gtk-greeter因其轻量且配置简单。字体与基础组件noto-fonts,noto-fonts-cjk(中文字体),mesa(图形驱动)音频pipewire,pipewire-pulse,wireplumber网络管理networkmanager(推荐图形化前端nm-connection-editor)终端foot(niri 官方推荐轻量快速)应用启动器fuzzel(Wayland 兼容的启动器)重要提示Arch Linux 是滚动更新系统软件包版本随时在变。本文的命令和配置思路是长期有效的但若遇到包名变更或配置语法微调请灵活查阅 Arch Wiki 或相应软件的最新文档。3. Arch Linux 基础系统安装这是最核心的一步我们将从 U 盘启动完成 Arch 最小系统的安装。3.1 制作启动盘与启动使用Rufus(Windows) 或dd命令 (Linux/macOS) 将下载的 Arch ISO 写入 U 盘。重启电脑进入 BIOS/UEFI 设置将启动顺序调整为从 U 盘启动。成功启动后你会看到一个命令行提示符以root用户登录。3.2 连接网络安装过程需要网络以下载软件包。有线网络通常会自动连接。可用ping archlinux.org测试。无线网络使用iwctl工具连接。iwctl # 进入交互式命令行 device list # 列出无线设备如 wlan0 station wlan0 scan # 扫描网络 station wlan0 get-networks # 列出扫描到的网络 station wlan0 connect 你的Wi-Fi名称 # 连接网络按提示输入密码 exit # 退出 iwctl再次使用ping archlinux.org测试连通性。3.3 更新系统时钟与磁盘分区# 更新系统时钟 timedatectl set-ntp true # 查看磁盘设备确认要安装的磁盘如 /dev/sda 或 /dev/nvme0n1 fdisk -l # 使用 cfdisk 或 fdisk 进行分区以 cfdisk 为例 cfdisk /dev/sda推荐的分区方案UEFI 模式/dev/sda1EFI 系统分区大小 512M-1G类型EFI System。/dev/sda2根分区/大小剩余所有空间类型Linux filesystem。3.4 格式化分区与挂载# 格式化分区 mkfs.fat -F32 /dev/sda1 # 格式化 EFI 分区为 FAT32 mkfs.ext4 /dev/sda2 # 格式化根分区为 ext4 # 挂载分区 mount /dev/sda2 /mnt mkdir -p /mnt/boot/efi mount /dev/sda1 /mnt/boot/efi3.5 安装基础系统使用pacstrap脚本安装最基本的系统到/mnt。pacstrap /mnt base base-devel linux linux-firmware vim sudobase最基础的系统。base-devel包含编译工具如gcc,make后续安装 AUR 包需要。linux内核。linux-firmware硬件固件。vim文本编辑器也可选nano。sudo权限管理工具。3.6 生成 fstab 与切换根环境# 生成文件系统表 genfstab -U /mnt /mnt/etc/fstab # 检查生成的 /mnt/etc/fstab 文件是否正确 # 切换到新安装的系统 arch-chroot /mnt3.7 系统基础配置# 1. 设置时区与本地时间 ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime hwclock --systohc # 2. 本地化设置 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 # 3. 设置主机名 echo myarch /etc/hostname # 编辑 /etc/hosts 文件添加 # 127.0.0.1 localhost # ::1 localhost # 127.0.1.1 myarch.localdomain myarch # 4. 设置 root 密码 passwd # 5. 安装并配置引导程序 (GRUB) pacman -S grub efibootmgr grub-install --targetx86_64-efi --efi-directory/boot/efi --bootloader-idGRUB grub-mkconfig -o /boot/grub/grub.cfg # 6. 创建普通用户并赋予 sudo 权限 useradd -m -G wheel -s /bin/bash yourusername passwd yourusername # 编辑 sudoers 文件为 wheel 组赋予权限 EDITORvim visudo # 找到 # %wheel ALL(ALL:ALL) ALL 这一行取消注释删除开头的 #3.8 完成安装# 退出 chroot 环境 exit # 卸载分区 umount -R /mnt # 重启 reboot重启后拔掉 U 盘你应该能从 GRUB 引导进入全新的 Arch Linux 命令行登录界面。使用你创建的普通用户登录。4. 安装图形与桌面组件系统启动后我们将安装图形服务器、窗口管理器、显示管理器等所有桌面组件。4.1 安装显卡驱动与 X/Wayland 基础首先更新系统并安装必要的图形驱动和基础组件。sudo pacman -Syu # 更新整个系统根据你的显卡类型安装驱动Intel 集成显卡sudo pacman -S mesa vulkan-intelAMD 显卡sudo pacman -S mesa vulkan-radeonNVIDIA 显卡sudo pacman -S nvidia nvidia-utils(闭源驱动) 或sudo pacman -S mesa(开源驱动nouveau性能较弱)niri 是一个 Wayland 合成器因此我们需要 Wayland 相关的库。同时安装 XWayland 以兼容仅支持 X11 的旧应用。sudo pacman -S wayland xorg-xwayland4.2 安装 niri 窗口管理器niri 目前在官方仓库中可能没有我们需要从 Arch 用户仓库 (AUR) 安装。首先安装 AUR 助手yay。# 安装 git 和 base-devel (如果之前没装全) sudo pacman -S git base-devel # 克隆 yay 仓库并编译安装 git clone https://aur.archlinux.org/yay.git cd yay makepkg -si cd .. rm -rf yay使用yay安装niriyay -S niri安装过程中你会看到 PKGBUILD 和一些选项通常直接按回车接受默认设置即可。4.3 安装显示管理器、终端与基础应用我们选择lightdm作为显示管理器并安装一个简单的 GTK 主题 greeter。sudo pacman -S lightdm lightdm-gtk-greeter # 启用 lightdm 服务使其开机自启 sudo systemctl enable lightdm.service安装 niri 推荐的终端foot和应用启动器fuzzelsudo pacman -S foot fuzzel安装网络管理器及其图形前端方便连接 Wi-Fisudo pacman -S networkmanager nm-connection-editor network-manager-applet sudo systemctl enable NetworkManager.service安装音频服务PipeWire 是现代默认选择sudo pacman -S pipewire pipewire-pulse wireplumber pipewire-alsa pipewire-jack sudo systemctl --user enable pipewire pipewire-pulse wireplumber安装中文字体和常用字体sudo pacman -S noto-fonts noto-fonts-cjk noto-fonts-emoji ttf-dejavu4.4 配置 LightDM 以启动 niri我们需要告诉 LightDM存在一个名为niri的桌面会话。创建桌面会话文件sudo vim /usr/share/wayland-sessions/niri.desktop写入以下内容[Desktop Entry] Nameniri CommentThis session starts niri Execniri TypeApplication DesktopNamesniri重启系统或在当前命令行启动 LightDM 测试sudo systemctl start lightdm.service重启后你应该能看到 LightDM 的图形登录界面。在会话选择处通常是一个小齿轮或用户名旁边的按钮选择niri然后登录。5. niri 的基本配置与使用首次登录 niri你会看到一个非常干净的屏幕可能只有一个背景。别担心这是正常的。niri 完全由键盘驱动。5.1 默认快捷键记住这几个最关键的快捷键默认配置Super(Windows 键) Enter打开终端 (foot)。Superd打开应用启动器 (fuzzel)。输入应用名如firefox即可启动。SuperShiftq关闭当前聚焦的窗口。Super鼠标拖动移动窗口。Super鼠标右键拖动调整窗口大小。Super方向键 (hjkl)在窗口间切换焦点。SuperShift方向键将当前窗口移动到不同工作区。Super1-9切换到对应编号的工作区。5.2 创建 niri 配置文件niri 的配置文件位于~/.config/niri/config.kdl。如果不存在可以手动创建。# 如果 ~/.config/niri 目录不存在则创建 mkdir -p ~/.config/niri # 创建并编辑配置文件 vim ~/.config/niri/config.kdl下面是一个基础的功能性配置示例包含了键盘布局、主题、启动项和自定义快捷键// ~/.config/niri/config.kdl // KDL 格式的配置文件注意注释是 // // 设置键盘布局将 us 改为你需要的如 de, fr, 中文需额外配置 input keyboard { xkb_layout us } // 设置输出显示器配置默认启用所有显示器 output { mode 1920x108060Hz // 设置首选分辨率刷新率 position 0,0 } // 设置窗口规则和外观 window-rules { // 所有窗口的默认边框 default-border { width 2 active-color 0xrrggbbaa // 替换为你的颜色如 0x7aa2f7ff (蓝色) inactive-color 0x3b4261ff // 非活动窗口边框色 } } // 设置浮动窗口规则某些应用默认浮动 float-rule app-idpavucontrol // 音频控制面板浮动 float-rule titleFile Operation Progress // 文件操作进度框浮动 // 启动脚本登录后自动运行的程序 startup { exec nm-applet --indicator // 网络管理器托盘图标 exec fcitx5 -d // 输入法框架需额外安装 } // 自定义快捷键绑定 key-bindings { // 启动器从 Superd 改为 Super空格更顺手 SuperSpace exec fuzzel // 锁屏需要安装 swaylock 等工具 SuperShiftl exec swaylock // 截屏全屏需要安装 grim, slurp, wl-copy Print exec grim -g \$(slurp)\ - | wl-copy }保存文件后在 niri 中按SuperShiftr可以重载配置文件无需重启。5.3 安装与配置输入法以 Fcitx5 为例对于中文用户输入法是必须的。安装 Fcitx5 及中文输入引擎sudo pacman -S fcitx5 fcitx5-chinese-addons fcitx5-gtk fcitx5-qt fcitx5-configtool配置环境变量编辑~/.pam_environment文件如果没有则创建vim ~/.pam_environment添加以下内容GTK_IM_MODULE DEFAULTfcitx QT_IM_MODULE DEFAULTfcitx XMODIFIERS DEFAULT\imfcitx将exec fcitx5 -d添加到上述 niri 配置的startup块中。重载 niri 配置 (SuperShiftr) 或重启 niri 会话。按Ctrl空格激活输入法。可以通过fcitx5-configtool图形工具添加和配置输入法。6. 常见问题与排查思路在安装和配置过程中你可能会遇到以下问题问题现象可能原因排查与解决思路启动 LightDM 后黑屏或闪退回登录界面1. 显卡驱动问题。2. niri 会话启动失败。3. Wayland 兼容性问题。1. 按CtrlAltF2切换到 TTY2 命令行登录。2. 检查journalctl -u lightdm查看显示管理器日志。3. 尝试安装mesa-utils并运行glxinfo | grep “OpenGL renderer”确认驱动加载。4. 暂时注释掉 niri 配置中的复杂项用最简配置测试。登录 niri 后只有壁纸无法操作键盘快捷键不熟悉或终端/启动器未正确安装。1. 牢记SuperEnter开终端Superd开启动器。2. 在 TTY 中检查foot和fuzzel是否已安装 (pacman -Qs foot fuzzel)。3. 检查 niri 配置中startup是否有错误命令阻塞。网络管理器托盘图标不显示nm-applet未启动或需要系统托盘支持。1. 确保 niri 配置的startup中包含了exec “nm-applet --indicator”。2. 在终端手动运行nm-applet --indicator看是否有报错。3. 安装libappindicator-gtk3包sudo pacman -S libappindicator-gtk3。中文显示为方块中文字体未安装或未正确设置。1. 确认已安装noto-fonts-cjk。2. 在终端运行fc-list : family| grep -i noto 查看字体列表。3. 创建或编辑~/.config/fontconfig/fonts.conf设置字体优先级。无法从 AUR 安装软件 (yay)网络问题或缺少base-devel。1. 运行yay -Syu --devel更新系统及开发包。2. 检查/etc/makepkg.conf中MAKEFLAGS是否正确如-j$(nproc)。3. 手动清理构建目录rm -rf ~/.cache/yay/包名后重试。声音没有输出PipeWire 服务未启动或配置错误。1. 确认已启用用户服务systemctl --user status pipewire pipewire-pulse。2. 安装pavucontrol在启动器中打开检查输出设备设置。3. 重启 PipeWire 服务systemctl --user restart pipewire pipewire-pulse wireplumber。7. 最佳实践与进阶调校系统基本可用后你可以进行以下优化让它更贴合你的习惯。7.1 配置管理使用 Git 管理点文件你的~/.config/niri/config.kdl以及其他配置文件如~/.bashrc是系统的核心。使用 Git 进行版本控制是个好习惯。# 在 ~ 目录初始化一个 Git 仓库来管理点文件 cd ~ git init git add .config/niri/config.kdl git add .bashrc .pam_environment # 添加其他重要配置文件 git commit -m “Initial dotfiles” # 可以推送到 GitHub 或 Gitee 等远程仓库进行备份7.2 性能与美化设置壁纸与合成器效果niri 内置了动画效果。你可以在配置中调整// 在 config.kdl 中添加或修改 animations { // 启用动画 enabled true // 窗口打开/关闭的动画时长毫秒 spring 400 // 工作区切换动画 workspace-spring 500 }设置静态壁纸可以使用swaybgWayland 兼容sudo pacman -S swaybg然后在 niri 配置的startup块中添加startup { exec “swaybg -i /path/to/your/wallpaper.jpg -m fill” }7.3 安全与维护系统更新与备份定期更新Arch 是滚动更新建议每周或每两周更新一次。yay -Syu # 更新官方和 AUR 包更新后务必重启尤其是内核更新后。了解系统状态journalctl -p 3 -xb # 查看错误日志 systemctl --failed # 查看失败的系统服务备份策略至少备份/home目录和/etc目录。可以使用rsync或borgbackup等工具。7.4 扩展功能安装常用软件通过pacman或yay安装你需要的软件浏览器firefox,chromium文件管理器thunar,nautilus或终端工具ranger,nnn文本编辑器vim,neovim,vscode(yay -S visual-studio-code-bin)办公libreoffice-fresh媒体播放mpv,vlc至此一个基于 Arch Linux niri LightDM 的现代化、高效、可定制的桌面环境就搭建完成了。这套组合给了你最大的控制权和学习空间从分区到每一个软件包的选择都由你决定。遇到问题别怕Arch Wiki、社区论坛和善用journalctl查看日志是你最好的朋友。