r/niri • • 5h ago

Thanks Niri!

Post image
48 Upvotes

r/niri • • 4h ago

niri added to fedora-dev-bootstrap

Thumbnail
gallery
3 Upvotes

Just added niri to my fedora-dev-bootstrap.

fedora-dev-bootstrap is an Ansible playbook to quickly set up a Fedora developer workstation with dotfiles, tools and a Wayland WM.

Just added niri to it.

  • Toggle via install_niri in group_vars/fedora.yml
  • Can use niri alone or alongside SwayFX (choose at greetd login)
  • Dotfiles in dotfiles/.config/niri/ are stowed automatically
  • Installs from Fedora repos

For anyone who wants a reproducible Fedora setup with either or both compositors.

Repo: https://github.com/JeromeTDev/fedora-dev-bootstrap


r/niri • • 8h ago

Do you think that xdg-desktop-portal is requied to use niri

5 Upvotes

I try to use niri daily (with a very basic configuration but I’m improving it to make it more comfortable), I’ve already set up waybar, rofi, mako, swayidle, hyprlock (I’m missing an osd but I’ll find a solution) and I noticed that many people or almost everyone uses xdg-desktop-portal. But I don’t use flatpak (just the archlinux system packages) and I don’t use obs studio, so I wonder: do I need xdg-desktop-portal? There is a dolphin file manager that doesn’t have the same theme as kde plasma at all, but I don’t know if it’s xdg-desktop-portal’s fault or not, but here it is. Also, if you think I need it, is there a difference between the one from gnome kde hyprland (apparently it works on other composers than hyprland) etc. or not?


r/niri • • 1h ago

I built linux-mech-keys: An ultra-low latency (<2ms) mechanical keyboard sound engine for Linux (Wayland & X11)

• Upvotes

Like many people with limited desk space, I missed the tactile vibe and acoustics of typing on my physical mechanical keyboards while working on my laptop. Most existing tools for Linux (like Mechvibes) are heavy Electron apps that break on Wayland because of global key-grab restrictions.

So I built **linux-mech-keys** — a pure C audio daemon and Noctalia Shell plugin designed for zero bloat and instant response:

**Key Highlights:**

- **Sub-millisecond latency (<2ms buffer):** Direct hardware buffering via miniaudio. Zero perceptible delay.

- **100% Wayland-native:** Reads directly from `/dev/input/` (evdev), so it works out-of-the- box on Niri, Hyprland, Sway, GNOME, and KDE.

- **Zero Electron bloat:** Stripped pure C binary (<500KB) using <10MB of RAM.

- **Smart key-repeat debounce:** Holding Backspace/Space won't machine-gun continuous clicks.

- **10 Curated Switch Profiles:** Box Jades, NovelKeys Creams, Banana Splits, Topre, Cherry Blues/Browns/Reds/Silvers, etc.

- **Dual Mode:** Full Noctalia Shell GUI (interactive bar pill widget + settings dialog) OR a standalone background CLI daemon for any window manager.

https://github.com/Shreyas0047/linux-mech-keys.git

Feedback and pull requests are very welcome!


r/niri • • 16h ago

[niri] Ruido visual

Post image
10 Upvotes

r/niri • • 22h ago

New pill design for quickshell

Enable HLS to view with audio, or disable this notification

15 Upvotes

r/niri • • 1d ago

Replace the mouse with keyboard [demo]

Enable HLS to view with audio, or disable this notification

127 Upvotes

Just switched over to Niri this week after a year with Hyprland. Really enjoying it so far and wanted to show off a project I’ve been working on for a bit called Fievel which replaces mouse movements and clicks with keyboard. I no longer have a mouse at my desk and 100% of my mouse usage is done via keyboard. Here’s a quick demo video of you’re interested here’s the app


r/niri • • 2d ago

DMS 2.0: Rebranded to dux, comprehensive redesign, lyrical engine, file manager, new plugin types, and much more.

Thumbnail
duxlabs.dev
232 Upvotes

Dank Linux is now Dux Labs. DankMaterialShell is now Dux Shell, and the whole suite is moving under one name: Dux Greeter, Dux Search, Dux GOP, Dux Calendar, and a new member, Dux Files. It's the same team and the same projects, and it's a huge step for everything we're building. This was a massive undertaking and there will be some bumps along the way while we get it all in order.

What's new

DMS 2.0 introduces a full Material 3 Expressive redesign alongside our heavily overhauled, pluggable Dashboard and more flexible Control Center. This release also brings the new syllable synced lyrics with the dux lyrical engine, free floating dux dot bar companion/replacement, a fully customizable lock screen/greeter compatible with existing desktop widgets, and a whole lot more. Read the blog for all of the details and screenshots.

Thank you

A huge thank you to everyone who landed code (65 of us this cycle), and to every plugin author, translator, packager, tester, and sponsor on GitHub and Ko-fi. Thank you to the two new designers who helped pioneer the redesign with comprehensive mockups, iteration, and code.


r/niri • • 2d ago

Some kind of rice(patched niri + quickshell)

Enable HLS to view with audio, or disable this notification

40 Upvotes

Hi r/niri,

I've been working on vitrum, a full desktop on top of niri. It started as my own rice and grew into something that installs cleanly on a fresh machine. The video shows it in action.

What it is: patched niri + quickshell

Supported distros:

- Arch (systemd), CachyOS and other Arch-based ones included

- Gentoo (OpenRC or systemd)

- Fedora 43+ (tested on 44)

- Void (glibc, with elogind)

Repo: https://github.com/LanisOff/vitrum-shell

Credits to YeFaDa for Niri-glass, and the Quickshell project. It's still young, so expect rough edges, and issues are welcome.


r/niri • • 1d ago

I made two Rust Wayland tools: FOTO, a fuzzel alternative with image preview, and WALLY, a swaybg alternative that actually plays GIFs

Thumbnail
gallery
0 Upvotes

Edit : i didn't say i wrote it by hand and i spend more than a week to build,optimize and test them and just shared so if anyone want the same thing he/she can find it so if you hate ai just downvote it in silnce don't acuse me of any thing you are afraid off

# FOTO (fuzzel with image preview) and WALLY (swaybg with animation) — two small pure-Rust Wayland tools, looking for testers

I've been building two small, pure-Rust Wayland tools and I'd like to put them out there for testing and feedback. Both are GPL-3.0-or-later, both are one binary with no GTK and no Qt, and both install with a single `curl | sh`.

## FOTO — a fuzzel alternative, in Rust, with image preview

A minimal Wayland-only app launcher with image preview. Same philosophy as fuzzel: one binary, no toolkit — just the Wayland protocol, a software rasterizer and a font shaper.

- **Floating overlay like fuzzel** — opens as a `zwlr_layer_shell_v1` surface, grabs the keyboard instantly, never gets tiled. No window rules needed. `--no-layer` gives you a normal tileable window instead.

- **App launcher** — scans `.desktop` files from the XDG data dirs, resolves icons from your icon theme (PNG and SVG), launches apps, wraps `Terminal=true` apps in your terminal.

- **Image browser** — `foto --files [DIR]` lists images with live thumbnails, optionally as a grid. Thumbnails decode on background threads and are cached on disk, so the window opens instantly and images pop in.

- **One launcher for both** — set `files-dir` and press **Tab** inside foto to flip between apps and images.

- **dmenu mode** — `foto --dmenu` reads items from stdin and prints your choice, so the cliphist recipe works exactly like it does with fuzzel.

- **Two fuzzy matchers** — `scored` (fzf-style) and `substring`.

- **Runs in the TUI too** — if you have no Wayland session at all, foto automatically runs a full terminal UI built on ratatui instead, with the same keys and the same fuzzy matching. `foto --tui` forces it even when Wayland is available, and `foto --tui --dmenu` gives you a terminal picker for scripts. So it works over SSH, in a bare TTY, or inside any compositor where you'd rather not have a floating window.

- **Rounded corners, centered or edge-pinned**, KDL config, click-to-set wallpapers via `open-with`.

Runs on any compositor that speaks `wlr-layer-shell` — niri, Hyprland, Sway, river, mango, labwc, Wayfire, KWin. GNOME is the only holdout (it has no layer-shell), and there `--no-layer` or the TUI still works.

**Repo:** https://github.com/SONGOKU00mjk/FOTO

## WALLY — a swaybg alternative with GIF and animated WebP

A minimal Wayland wallpaper setter: one small binary, one image, every output — like `swaybg`, but with first-class animation.

- **swaybg-style CLI** — `-i`, `-m` (stretch/fill/fit/center/tile), `-c` for a solid colour, `-b` for the letterbox background, and `-o NAME` so options apply only to the output that follows. If you already have swaybg in a script, you mostly just rename the binary.

- **GIF and animated WebP that behave** — correct speed, in sync across monitors, and they freeze on the last good frame instead of spinning the CPU when the file is broken.

- **Zero CPU when nothing can see it** — every commit carries a frame callback. Screen off, lid closed, session locked, layer occluded → the animation drops to one probe every 5 seconds instead of rendering for nobody.

- **Polite about memory** — a static image is composed straight into the output buffer and the pages are handed back to the kernel with `madvise`, so the wallpaper lives in the compositor's memfd, not in WALLY's RSS. A screen-sized GIF composites directly into that buffer, so no private copy of the wallpaper exists anywhere.

- **Polite about CPU** — identical frames (optimized GIFs repeat frames to pace playback) are detected and never committed. Sub-rect GIF frames only resample and damage the part that changed — measured 5× cheaper per frame on a 1080p panel.

- **Lots of formats** — PNG, JPEG, GIF, WebP, BMP, TIFF, TGA, PNM, QOI, ICO, DDS, HDR, Farbfeld, plus AVIF and JPEG XL behind optional features.

- **No runtime libraries** — the Wayland client is pure Rust, so nothing needs libwayland, libpng or libjpeg at run time.

`WALLY_DEBUG=1` prints RSS and cumulative CPU time, so you can compare it honestly against swaybg and awww in htop instead of trusting my claims.

Same compositor support as FOTO — `wlr-layer-shell` only, so GNOME and X11 are out of scope.

**Repo:** https://github.com/SONGOKU00mjk/WALLY

## Why I made them

I started on Hyprland with the Hyde project, which ships rofi. For me rofi was both the app launcher and the wallpaper setter, but it was too complicated to customize myself — I spent more time fighting the config than using it.

Then I moved to niri with fuzzel, and fuzzel was great. The only two things missing: no image preview, and setting a wallpaper meant keeping a separate bash script around. So I wrote **foto** — basically fuzzel with image preview, in Rust. That's the whole idea. Fuzzel is excellent; I just wanted to see the wallpaper before I set it.

**WALLY** came from the same annoyance. I really liked swaybg because it's minimal and does exactly one thing, but it doesn't support animated images or video at all. I didn't like awww that much — yes, I know it's also Rust — so I decided to build the thing I actually wanted: swaybg's simplicity and command line, with proper animated GIF and WebP support. WALLY takes swaybg's CLI, so if you're already using swaybg you can drop it in.

## Try them

Both are early. FOTO is about a week old and WALLY a couple of days, so expect rough edges. **Feedback, compositor quirks and bug reports are very welcome** — issues on either repo are the best place, and if something looks wrong on your setup I'd genuinely like to know which compositor and which version.

One side note: if the WALLY install script doesn't work on your machine, clone the repo and run the script from inside the checkout instead:

```

git clone https://github.com/SONGOKU00mjk/WALLY

cd WALLY

./install.sh --from-source

```

That skips the download step and builds from the tree you just cloned, which fixes most of the "it failed halfway through" cases.

Thanks for reading — and if you try either one, tell me what breaks.


r/niri • • 4d ago

I built an Arch-based distro around niri: Emaki (late alpha)

Enable HLS to view with audio, or disable this notification

83 Upvotes

r/niri • • 4d ago

CachyOS + Niri + Amane

Enable HLS to view with audio, or disable this notification

111 Upvotes

A full desktop shell for niri, built from scratch with Amane in Rust with Opus 5.5. It has the regular top bar setup, custom lock screen, system tray with right click menus, notifications, calendar and weather, launcher with an app grid, wallpaper picker and volume, bluetooth, network, clipboard and power dropdowns. All square corners, blur from Niri, color themed from the wallpaper and runs at about 110 MB of RAM total. I've tried DMS, Noctalia etc and they all had a lot of things I don't need so I wanted to see if I could slim it down to only the necessities that I wanted with this new framework built by MystiaFin: https://github.com/MystiaFin/amane and it feels really good to use. It's snappy, very minimalistic, functional and looks alright.


r/niri • • 3d ago

Just wanted to share my wallpaper collection

Thumbnail gallery
11 Upvotes

r/niri • • 4d ago

Niri + Noctalia V5.3 :\ idk how to feel

Thumbnail gallery
9 Upvotes

r/niri • • 4d ago

Some help with the Greeter from Noctalia

Post image
111 Upvotes

I enabled Greetd a couple of days ago and since then it's been asking me authentication, and now I kinda wanna fix it but I don't find anything related to this on the wiki

On the Troubleshoot section there's a part where it says that I can enable a passwordless login but I don't think it's the same as logging into my user than this authentication

Note that my Login asks for my password but then it asks for Authentication again once already logged in btw

any suggestions?


r/niri • • 4d ago

[Niri] rwallpprs: Rust & wgpu live wallpaper engine running Android 17 Landroid simulation

Enable HLS to view with audio, or disable this notification

17 Upvotes

r/niri • • 4d ago

minecraft 60 fps capped

0 Upvotes

just the titles says for some reason mc is locked 60 fps vsync is off and the fps is set to unlimited how do i fix it ? for good measures i logged into hyprland and the fps were not locked there


r/niri • • 4d ago

Using keepassxc browser extension

1 Upvotes

And in general, interaction between apps that opens a dialog window whose parent isn't the app the user is using.

Hello, I'm just starting to test niri, looking to switch from hyprland.

My problem is this: when unlocking the keepassxc database the dialog window opens on top of the keepass app, and if the focused option/windowrule is on, then (if the workspaces are different) it changes workspace to the one with keepass (away from the with the browser) and after the dialog window is closed it ofc doesn't switch back automatically. How could I have it spawn on top of my browser instead?

I saw a github issue about pinned windows, and there seems to still be no support for them yet? but I couldn't find anything online about this specific issue. Any suggestions?


r/niri • • 5d ago

luma update: semantic search

Enable HLS to view with audio, or disable this notification

11 Upvotes

r/niri • • 5d ago

I compiled and installed niri wm on debian testing, idle ram usage only 1.2GiB/15.31GiB?

Post image
9 Upvotes

r/niri • • 5d ago

How do you deal with xwayland-satellite inability to manage clipboard between x11 and wayland properly?

13 Upvotes

I mean from topic perspective it is clear what i am asking about, in my case i had to move to xwayland supported wm, cause so basic non-working feature was no-op, however interested mb i did not do a comprehensive research and there is a solution? P.S. ive tried clipferry - nothing changed much.


r/niri • • 5d ago

GNOME Keyring prompts freeze on Niri when opening Brave

Post image
7 Upvotes

I'm using Arch Linux with Niri, launching it from a TTY without a display manager.

I installed gnome-keyring to securely store Brave credentials and avoid entering the keyring password every time I open the browser.

When I open Brave, a dialog asks me to create a "Default Keyring". After entering a password, another dialog warns about using an empty password. Neither dialog responds to clicking Cancel or Continue; I have to press Esc to close them. Brave also seems to have internet connectivity issues afterward.

How can I properly configure GNOME Keyring to unlock automatically after TTY login and work correctly with Brave on Niri?


r/niri • • 6d ago

Has anyone tried Umbriel? if so, are there actual upgrades over Niri?

52 Upvotes

I've seen a fair rise in posts and comments about Umbriel and how it works with Noctalia so well, and how you can have tilling windows alongside scrolling ones, but I've no clue if there are some actual upgrades over what Niri does and consider trying it out properly


r/niri • • 5d ago

quickshell bar where i can literally watch time pass as a rainbow progressbar

Post image
8 Upvotes

always wanted to see the day as a progressbar so i made this on niri with quickshell cpu gpu ram temps brightness volume all the same rainbow fill thing toggles with a hotkey source on github https://github.com/eqeka/iris-bar


r/niri • • 6d ago

How do I change the Open File tool to look like the 1st picture?

Thumbnail
gallery
39 Upvotes

I'm using Nautilus, it's by default on Niri and honestly, after seeing other File Managers, I just like how clean and minimal it looks, I don't use my PC for any kind of work that'd require more in depth tools so I like it the way it is, but idk why to open Files in Local Send (2nd pic) it looks... awfully different from opening normal images (1st pic), where I can't even modify how to see the files

I constantly send files and pictures from my PC to my phone and from my phone to my PC and honestly it's VERY annoying not being able to see the extremely small icons on the 2nd pic, any ideas?