niri
一个可滚动平铺的Wayland合成器。
关于
窗口在向右延伸的无限条带上按列排列。 打开新窗口永不会导致现有窗口调整大小。
每个显示器都有自己独立的窗口条带。 窗口永远不会"溢出"到相邻的显示器上。
工作区是动态的,并垂直排列。 每个显示器都有独立的工作区集,最下方始终存在一个空的工作区。
在显示器断开连接和重新连接时,工作区的排列会在合理的情况下得以保留。 当显示器断开连接时,其工作区会移动到另一个显示器,但在重新连接时,它们会移回原始显示器。
特性
- 可滚动平铺
- 类似GNOME的动态工作区
- 内置截图界面
- 通过xdg-desktop-portal-gnome支持显示器和窗口录屏
- 您可以在录屏中屏蔽敏感窗口
- 触摸板和鼠标手势
- 可配置布局:间隙、边框、支柱、窗口大小
- 支持Oklab和Oklch的渐变边框
- 动画效果,支持自定义着色器
- 实时重载配置
视频演示
https://github.com/YaLTeR/niri/assets/1794388/bce834b0-f205-434e-a027-b373495f9729
当前状态
大部分基本功能已经实现,还有一些额外的功能。 欢迎尝试niri:请按照入门指南wiki页面的说明进行操作。 准备好您的waybar和fuzzel:niri不是一个完整的桌面环境。
请注意,NVIDIA显卡可能会遇到问题。
灵感来源
Niri深受PaperWM的启发,后者在GNOME Shell之上实现了可滚动平铺。
促使我尝试编写自己的合成器的原因之一是能够正确分离显示器。 作为GNOME Shell的扩展,PaperWM不得不对抗Shell的全局窗口坐标空间,以防止窗口溢出。
其他可滚动平铺项目
以下是一些实现类似工作流的其他项目:
- PaperWM:在GNOME Shell之上的可滚动平铺。
- karousel:在KDE之上的可滚动平铺。
- papersway:在sway/i3之上的可滚动平铺。
- hyprscroller和hyprslidr:在Hyprland之上的可滚动平铺。
- PaperWM.spoon:在macOS之上的可滚动平铺。
联系方式
我们有一个Matrix聊天室,欢迎加入并提问:https://matrix.to/#/#niri:matrix.org