news 2026/10/30 4:41:19

从零快速安装 niri 并跑通 Wayland 平铺合成器

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
从零快速安装 niri 并跑通 Wayland 平铺合成器

从零快速安装 niri 并跑通 Wayland 平铺合成器

【免费下载链接】niriA scrollable-tiling Wayland compositor.项目地址: https://gitcode.com/GitHub_Trending/ni/niri

拖拽、对齐窗口,是日常桌面操作里最机械的一环。niri 是一款实现滚动平铺的 Wayland 合成器:新开的窗口自动进入分栏布局,按住 Mod 滚动滚轮即可切换工作区。按本指南的安装流程走完,你可以从一台裸机得到可登录的平铺桌面。

为什么值得试试

  • 窗口自动落位:进入平铺布局的位置和宽度由布局引擎按列宽预设分配,不需要你手动挑位置。
  • 滚轮切换工作区:工作区纵向排布,按住 Mod 滚动滚轮如同翻页,方向感比横向编号更直观。
  • 快捷键负担小:聚焦、移动、关闭、全屏都有默认绑定,不用额外记忆组合键。
  • 外观可配置:边框、焦点环、阴影、动画都能逐项调整,观感可按个人习惯微调。

环境准备清单

动手前对照下表确认,缺哪项先补哪项。

项目要求
发行版Ubuntu 24.04 及以上、Fedora 39 及以上、Arch 等主流发行版
内存4GB 以上较稳妥
显卡支持 Wayland 输出的显卡,主流厂商原生支持即可
构建工具链能运行 cargo 的稳定版 Rust 工具链(下一节安装)

完整安装

装系统依赖

Ubuntu/Debian 下执行一行,把编译期需要的头文件与库带齐:

sudo apt-get install -y gcc clang libudev-dev libgbm-dev libxkbcommon-dev libegl1-mesa-dev libwayland-dev libinput-dev libdbus-1-dev libsystemd-dev libseat-dev libpipewire-0.3-dev libpango1.0-dev libdisplay-info-dev

预期结果:所有包安装完成,无报错。

Fedora 使用对应的 dnf 命令,包名为 -devel 版本:

sudo dnf install gcc libudev-devel libgbm-devel libxkbcommon-devel wayland-devel libinput-devel dbus-devel systemd-devel libseat-devel pipewire-devel pango-devel cairo-gobject-devel clang libdisplay-info-devel

预期结果:依赖就绪,可直接进入编译阶段。

装工具链

系统里已有可用的 cargo 就跳过这步;否则用官方脚本装入最新稳定版:

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y

预期结果:rustc与cargo的版本号能正常打印。

拉代码编译

克隆仓库、进入目录,按 release 模式产出二进制:

git clone https://gitcode.com/GitHub_Trending/ni/niri cd niri cargo build --release

预期结果:target/release/niri生成完毕;首次构建耗时在分钟级,属正常现象。

注册为桌面登录会话

登录界面要出现 Niri 选项,需要启动脚本、.desktop 入口与 systemd user 服务三样就位:desktop 文件声明会话入口,niri-session负责拉起niri --session,service 则把它挂到图形会话生命周期上。按下面顺序复制并启用:

sudo cp target/release/niri /usr/local/bin/ sudo cp resources/niri-session /usr/local/bin/ sudo cp resources/niri.desktop /usr/local/share/wayland-sessions/ sudo cp resources/niri.service /etc/systemd/user/ sudo cp resources/niri-shutdown.target /etc/systemd/user/ systemctl --user daemon-reload && systemctl --user enable niri.service

预期结果:注销一次后,登录界面的会话列表里出现 Niri,选中登录即进入平铺桌面。

首次运行验证与最小配置

登录成功后按顺序确认三点:

  1. 连开两个终端窗口,确认它们自动进入分栏布局,无需手动摆位。
  2. 按住 Mod 上下滚动鼠标滚轮,工作区随之切换。
  3. 按 Super+T 启动 alacritty、Super+D 启动 fuzzel(两者需先自行安装)。

三项都正常,就可以开始整理配置了。niri 从~/.config/niri/config.kdl读取配置;该文件不存在时,首次启动会自动生成一份默认配置,直接在上面改即可。配置支持热重载,保存后即时生效。只想保留最基础的绑定,可以把binds {}段收敛成这样:

binds { Mod+T repeat=false { spawn "alacritty"; } Mod+Q repeat=false { close-window; } }

拿不准语法时,先在终端跑niri validate检查解析错误,再保存以免旧配置被拒绝加载。

常见坑速查

现象可能原因解决办法
编译报 gbm.h、wayland-client.h 等头文件缺失发行版的开发包没装全对照上文依赖清单补齐缺失的 -dev/-devel 包,重新编译
登录界面找不到 Niri 选项.desktop 文件没放到约定目录,或二进制不在 PATH确认niri.desktop已复制到/usr/local/share/wayland-sessions/,且which niri有路径输出
会话启动报权限错误、进程未以当前用户身份运行直接加了 sudo 启动,或 user 服务没启用通过niri.service这个 user 服务运行会话,不要对会话命令加 sudo
改了配置却不生效KDL 语法出错,新配置被整体拒绝运行niri validate定位报错行号,修好后再保存触发自动重载

上手之后

三个方向可以让这套桌面更顺手,按需挑一个做:

  • 手势:在gestures {}段启用滑动手势,三指一划完成工作区与窗口切换。
  • 窗口规则:用window-rule {}给特定程序设置浮动、全屏或圆角等特例行为。
  • 工具集成:配上 waybar 面板与 fuzzel 启动器,桌面才算完整闭环。

跑起来后,先开两个终端来回滚动几下,感受滚轮切工作区的手感。后续问题可查 docs/wiki/FAQ.md,装包与 X11 程序(Xwayland)兼容的细节见 docs/wiki/Getting-Started.md。

【免费下载链接】niriA scrollable-tiling Wayland compositor.项目地址: https://gitcode.com/GitHub_Trending/ni/niri

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/30 4:40:28

免费macOS音频回环驱动BlackHole:5步完成应用间音频路由

免费macOS音频回环驱动BlackHole:5步完成应用间音频路由 【免费下载链接】BlackHole BlackHole is a modern macOS audio loopback driver that allows applications to pass audio to other applications with zero additional latency. 项目地址: https://gitco…

作者头像 李华
网站建设 2026/10/30 4:28:20

LeetCode //C - 1309. Decrypt String from Alphabet to Integer Mapping

1309. Decrypt String from Alphabet to Integer Mapping You are given a string s formed by digits and ‘#’. We want to map s to English lowercase characters as follows: Characters (‘a’ to ‘i’) are represented by (‘1’ to ‘9’) respectively.Character…

作者头像 李华