No description
  • Rust 98.9%
  • GLSL 0.6%
  • Nix 0.4%
  • Shell 0.1%
Find a file
2026-11-02 19:37:29 +03:00
.github Merge upstream/main 2026-10-03 15:32:31 +03:00
docs Merge remote-tracking branch 'upstream/main' 2026-10-31 22:43:02 +03:00
resources Merge remote-tracking branch 'upstream/main' 2026-10-31 22:43:02 +03:00
src hjkl fix 2026-11-02 19:37:29 +03:00
xiri-config Merge remote-tracking branch 'upstream/main' 2026-10-31 22:43:02 +03:00
xiri-ipc Merge remote-tracking branch 'upstream/main' 2026-10-21 21:28:41 +03:00
xiri-visual-tests First commit 2026-09-16 03:52:56 +03:00
.gitignore gitignore AGENTS.md (local agent notes) 2026-10-16 16:43:56 +03:00
build.rs First commit 2026-09-16 03:52:56 +03:00
Cargo.lock Merge upstream/main 2026-10-16 16:39:26 +03:00
Cargo.toml Merge upstream/main 2026-10-16 16:39:26 +03:00
clippy.toml Deal with Clippy warnings 2024-07-28 11:41:09 +03:00
CONTRIBUTING.md Merge remote-tracking branch 'upstream/main' 2026-10-21 21:28:41 +03:00
flake.lock nix: bump inputs 2026-08-02 23:07:21 +03:00
flake.nix Merge remote-tracking branch 'origin/main' 2026-09-27 02:22:42 +03:00
LICENSE Add LICENSE 2023-08-10 14:50:51 +04:00
README.md README: Add new talk "How to test a Wayland compositor?" 2026-10-08 09:32:00 +03:00
rustfmt.toml Add rustfmt.toml and reformat 2023-08-10 14:49:38 +04:00
typos.toml Fix typos in comments 2025-11-29 10:05:44 +03:00
xiri-home.nix First commit 2026-09-16 03:52:56 +03:00
xiri.spec.rpkg First commit 2026-09-16 03:52:56 +03:00

Xiri is a scrollable-tiling Wayland compositor.

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.

Workspaces are dynamic and arranged vertically. Every monitor has an independent set of workspaces, and there's always one empty workspace present all the way down.

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.

Features

Video Demo

https://github.com/niri-wm/niri/assets/1794388/bce834b0-f205-434e-a027-b373495f9729