随着Linux图形桌面环境的发展,窗口管理器的多样化极大丰富了用户的选择。传统的浮动窗口管理方式虽然灵活,但在效率和空间利用上存在一定局限。为了满足追求高效屏幕空间利用和键盘驱动操作的用户需求,平铺式窗口管理器应运而生。而Niri作为一款基于Rust语言打造的Wayland合成器,以创新的滚动平铺设计为用户带来了全新的窗口管理体验。Niri并非完整的桌面环境,而是提供了一套简约且功能丰富的平铺窗口管理方案,尤其适合喜欢轻量化和极简风格的Linux用户。Niri的核心特点是以“无限”宽度的单行窗口排列方式,将打开的窗口依次排列在水平方向上,超出可见范围时支持平滑滚动。
这种设计灵感源自早期的ScrollWM和后来的PaperWM,结合了用户对多显示器独立工作空间需求的改进。每个显示器均可拥有独立且互不重叠的工作空间,解决了此前类似扩展在多显示器环境中的局限。Niri的开发得益于Smithay框架,这是一款Rust生态中专注于简化Wayland合成器开发的通用库。Smithay以其模块化设计和良好的性能表现被多个Wayland项目采用,包括COSMIC桌面环境。Niri本身遵循GPLv3开源协议,积极融合社区反馈,开发者自2023年初起持续以高频率迭代版本。对于普通用户而言,Niri的安装并不复杂,已被包括Arch、Fedora、Gentoo和openSUSE Tumbleweed等多个主流发行版收录。
尤其在支持Intel显卡的系统上,Niri的表现尤为稳定。Niri的生态支持了一些辅助工具,如Fuzzel应用启动器、Mako通知程序和Waybar状态栏,为没有完整桌面环境支持的系统补充了必要的功能。Waybar模块高度可定制,用户可根据需求调整面板显示内容,从显示时间系统状态到自定义菜单应有尽有。值得一提的是,Niri默认通过Super键(通常为键盘上的Windows键)作为主修饰键,允许用户通过快捷键进行快速窗口管理和系统操作。配合Fuzzel,用户输入Super+D即可快速启动程序,极大降低了鼠标操作的依赖。打开的新窗口将被自动放置在当前焦点窗口右侧,支持通过快捷键循环切换窗口宽度和高度预设,提供灵活的布局调整。
对于不习惯仅用键盘控制的用户,Niri同样支持鼠标拖拽和调整大小,兼顾了多样化的使用习惯。Niri内建的窗口管理功能亦相当丰富。用户可通过快捷键将窗口切换为浮动模式,实现覆盖布局以应对对话框、文件选择器等情形。此外,窗口分组(tab组)功能使得多个窗口可在同一列中以标签页形式管理,方便整理层级和内容。复杂的窗口规则配置则允许指定程序始终以浮动模式启动,或固定在指定命名工作区,对工作流的自动化和组织格外友好。Niri还支持动态工作区的垂直排列,结合多显示器环境,提供流畅的多任务处理体验。
其最新版本引入的总览功能,用户可快速查看所有打开的窗口及工作区分布,支持键盘和鼠标操作进行切换,提升整体的导航效率。虽然Niri暂不内置屏幕锁定及电源管理功能,根据配置可利用swaylock完成屏幕锁定,显示关闭则设定快捷键即可。退出Niri通过简单的快捷键组合确认操作,实现直观的会话管理。Niri的配置采用文本编辑的方式,使用KDL格式,使得高级用户能够自由定制按键绑定、窗口规则和界面行为。其灵活的绑定机制不仅支持键盘,还可以监听鼠标点击、滚轮以及触控板动作,极大丰富交互方式。在多显示器支持方面,Niri自动检测连接的显示设备,识别不同的分辨率、旋转和缩放比例,用户只需通过配置文件进行物理布局调整。
项目提供了辅助命令帮助列举当前输出设备信息,使配置更为便捷和精准。X11应用的支持方面,Niri因开发者对X11兼容性的避讳,暂未将Xwayland整合至核心,但支持通过xwayland-satellite这一独立工具实现Rootless Xwayland,保证了常见X11程序的运行需求。该功能未来将逐步通过内置配置得到提升和自动化。Niri的设计理念强调极致的用户定制性与简约的运行效率。大量社区用户分享了他们个性化的配置文件和使用经验,展现了Niri在满足多样化需求时的可塑性。使用者只需花费合理的时间精力,即可打造极具个人特色的工作环境。
与重度集成的GNOME等环境相比,Niri更适合有一定技术背景且乐于深度配置的用户,避免了臃肿和复杂,保持了系统的响应速度和资源占用的轻巧。Niri提供了一种别具一格的窗口管理体验,兼具创新的滚动平铺设计与充足的扩展性,为追求高效键盘操作和极简界面的Linux用户带来了新的选择。从系统稳定性、配置简易性到对多显示器环境的良好适配,Niri展现了Rust语言在现代基础设施软件领域的潜力和魅力。随着版本迭代和社区的不断壮大,相信Niri将在未来Linux桌面生态中获得越来越多的认可和广泛应用。