2024-01-17 14:15:05 +03:00
< h1 align = "center" > niri< / h1 >
< p align = "center" > A scrollable-tiling Wayland compositor.< / p >
< p align = "center" >
< a href = "https://matrix.to/#/#niri:matrix.org" > < img alt = "Matrix" src = "https://img.shields.io/matrix/niri%3Amatrix.org?logo=matrix&label=matrix" > < / a >
< a href = "https://github.com/YaLTeR/niri/blob/main/LICENSE" > < img alt = "GitHub License" src = "https://img.shields.io/github/license/YaLTeR/niri" > < / a >
< a href = "https://github.com/YaLTeR/niri/releases" > < img alt = "GitHub Release" src = "https://img.shields.io/github/v/release/YaLTeR/niri?logo=github" > < / a >
< / p >
2023-08-10 13:45:54 +03:00
2024-04-20 10:24:33 +03:00
< p align = "center" >
2024-06-29 09:27:38 +03:00
< a href = "https://github.com/YaLTeR/niri/wiki/Getting-Started" > Getting Started< / a > | < a href = "https://github.com/YaLTeR/niri/wiki/Configuration:-Overview" > Configuration< / a > | < a href = "https://github.com/YaLTeR/niri/discussions/325" > Setup Showcase< / a >
2024-04-20 10:24:33 +03:00
< / p >
2024-05-18 14:00:39 +03:00
![](https://github.com/YaLTeR/niri/assets/1794388/52c799a1-77ec-455f-b4aa-f3236a144964)
2023-08-13 11:46:53 +03:00
2024-01-17 14:15:05 +03:00
## About
Windows are arranged in columns on an infinite strip going to the right.
Opening a new window never causes existing windows to resize.
Every monitor has its own separate window strip.
Windows can never "overflow" onto an adjacent monitor.
2024-01-25 07:34:42 +03:00
Workspaces are dynamic and arranged vertically.
2024-01-17 14:15:05 +03:00
Every monitor has an independent set of workspaces, and there's always one empty workspace present all the way down.
2024-01-25 07:34:42 +03:00
The workspace arrangement is preserved across disconnecting and connecting monitors where it makes sense.
When a monitor disconnects, its workspaces will move to another monitor, but upon reconnection they will move back to the original monitor.
2024-01-17 14:15:05 +03:00
## Features
- Scrollable tiling
- Dynamic workspaces like in GNOME
- Built-in screenshot UI
2024-06-29 09:27:38 +03:00
- Monitor and window screencasting through xdg-desktop-portal-gnome
2024-03-29 13:20:51 +03:00
- You can [block out ](https://github.com/YaLTeR/niri/wiki/Configuration:-Window-Rules#block-out-from ) sensitive windows from screencasts
2024-05-18 14:00:39 +03:00
- [Touchpad ](https://github.com/YaLTeR/niri/assets/1794388/946a910e-9bec-4cd1-a923-4a9421707515 ) and [mouse ](https://github.com/YaLTeR/niri/assets/1794388/8464e65d-4bf2-44fa-8c8e-5883355bd000 ) gestures
2024-01-17 14:15:05 +03:00
- Configurable layout: gaps, borders, struts, window sizes
2024-05-18 14:00:39 +03:00
- [Animations ](https://github.com/YaLTeR/niri/assets/1794388/ce178da2-af9e-4c51-876f-8709c241d95e ) with support for [custom shaders ](https://github.com/YaLTeR/niri/assets/1794388/27a238d6-0a22-4692-b794-30dc7a626fad )
2024-01-17 14:15:05 +03:00
- Live-reloading config
2023-08-14 18:05:57 +03:00
2024-01-25 07:34:42 +03:00
## Video Demo
2024-04-20 16:30:35 +03:00
https://github.com/YaLTeR/niri/assets/1794388/bce834b0-f205-434e-a027-b373495f9729
2024-01-25 07:34:42 +03:00
2023-08-13 11:46:53 +03:00
## Status
2023-10-24 13:33:26 +03:00
A lot of the essential functionality is implemented, plus some goodies on top.
2024-04-20 10:24:33 +03:00
Feel free to give niri a try: follow the instructions on the [Getting Started ](https://github.com/YaLTeR/niri/wiki/Getting-Started ) wiki page.
2024-01-25 07:34:42 +03:00
Have your [waybar]s and [fuzzel]s ready: niri is not a complete desktop environment.
2023-08-13 11:46:53 +03:00
2024-04-20 16:45:17 +03:00
Note that NVIDIA GPUs may have issues.
2024-01-17 14:15:05 +03:00
## Inspiration
2023-08-13 11:46:53 +03:00
2024-01-17 14:15:05 +03:00
Niri is heavily inspired by [PaperWM] which implements scrollable tiling on top of GNOME Shell.
2023-08-13 11:46:53 +03:00
2024-01-17 14:15:05 +03:00
One of the reasons that prompted me to try writing my own compositor is being able to properly separate the monitors.
Being a GNOME Shell extension, PaperWM has to work against Shell's global window coordinate space to prevent windows from overflowing.
2023-08-13 11:46:53 +03:00
2024-01-17 14:15:05 +03:00
## Contact
We have a Matrix chat, feel free to join and ask a question: https://matrix.to/#/#niri:matrix.org
2023-08-13 11:46:53 +03:00
[PaperWM]: https://github.com/paperwm/PaperWM
2024-01-25 07:34:42 +03:00
[waybar]: https://github.com/Alexays/Waybar
[fuzzel]: https://codeberg.org/dnkl/fuzzel
2023-08-10 13:45:54 +03:00