aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIvan Molodetskikh <yalterz@gmail.com>2024-01-25 08:34:42 +0400
committerIvan Molodetskikh <yalterz@gmail.com>2024-01-25 08:34:42 +0400
commit837a0a20fbc6d6461a2f22799eab45472a1816f0 (patch)
treebd3a5c7e64a921a32ab3102036fb7b78d7314bb8
parentecdf756b5559e6b4b2a2dae42e702cfff185765b (diff)
downloadniri-837a0a20fbc6d6461a2f22799eab45472a1816f0.tar.gz
niri-837a0a20fbc6d6461a2f22799eab45472a1816f0.tar.bz2
niri-837a0a20fbc6d6461a2f22799eab45472a1816f0.zip
Update README
-rw-r--r--README.md26
1 files changed, 18 insertions, 8 deletions
diff --git a/README.md b/README.md
index 8881dc8b..37ee9e32 100644
--- a/README.md
+++ b/README.md
@@ -16,9 +16,12 @@ 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.
-Since windows go left-to-right horizontally, workspaces are arranged vertically.
+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
- Scrollable tiling
@@ -29,13 +32,17 @@ Every monitor has an independent set of workspaces, and there's always one empty
- Configurable layout: gaps, borders, struts, window sizes
- Live-reloading config
+## Video Demo
+
+https://github.com/YaLTeR/niri/assets/1794388/5d355694-7b06-4f00-8920-8dce54a8721c
+
## Status
A lot of the essential functionality is implemented, plus some goodies on top.
Feel free to give niri a try.
-Have your waybars and fuzzels ready: niri is not a complete desktop environment.
+Have your [waybar]s and [fuzzel]s ready: niri is not a complete desktop environment.
-https://github.com/YaLTeR/niri/assets/1794388/5d355694-7b06-4f00-8920-8dce54a8721c
+Note that NVIDIA GPUs might have rendering issues.
## Inspiration
@@ -44,15 +51,14 @@ Niri is heavily inspired by [PaperWM] which implements scrollable tiling on top
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.
-Niri tries to preserve the workspace arrangement as much as possible upon disconnecting and connecting monitors.
-When a monitor disconnects, its workspaces will move to another monitor, but upon reconnection they will move back to the original monitor.
-
## Building
> [!TIP]
> For Fedora users, there's a COPR with built and packaged niri: https://copr.fedorainfracloud.org/coprs/yalter/niri/
>
-> For NixOS users, check out https://github.com/sodiboo/niri-flake
+> NixOS users, check out https://github.com/sodiboo/niri-flake
+>
+> For Arch users, there's an AUR package: https://aur.archlinux.org/packages/niri
First, install the dependencies for your distribution.
@@ -71,7 +77,9 @@ First, install the dependencies for your distribution.
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
```
-Next, build niri with `cargo build --release`.
+Next, get latest stable Rust: https://rustup.rs/
+
+Then, build niri with `cargo build --release`.
### NixOS/Nix
@@ -202,4 +210,6 @@ We have a Matrix chat, feel free to join and ask a question: https://matrix.to/#
[PaperWM]: https://github.com/paperwm/PaperWM
[mako]: https://github.com/emersion/mako
[OBS]: https://flathub.org/apps/com.obsproject.Studio
+[waybar]: https://github.com/Alexays/Waybar
+[fuzzel]: https://codeberg.org/dnkl/fuzzel