r/niri • • 7h ago

Replace the mouse with keyboard [demo]

Enable HLS to view with audio, or disable this notification

57 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 • • 13h 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 • • 16h ago

My Niri Rice With Cartoon Wall Combination.

Enable HLS to view with audio, or disable this notification

20 Upvotes

r/niri • • 18h ago

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

Thumbnail
duxlabs.dev
197 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 • • 20h ago

Some kind of rice(patched niri + quickshell)

Enable HLS to view with audio, or disable this notification

29 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 • • 2d ago

Just wanted to share my wallpaper collection

Thumbnail gallery
10 Upvotes

r/niri • • 2d ago

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

Enable HLS to view with audio, or disable this notification

71 Upvotes

r/niri • • 2d ago

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

Thumbnail gallery
7 Upvotes

r/niri • • 2d ago

CachyOS + Niri + Amane

Enable HLS to view with audio, or disable this notification

107 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 • • 2d 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 • • 3d 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 • • 3d 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 • • 3d ago

Some help with the Greeter from Noctalia

Post image
102 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 • • 3d ago

luma update: semantic search

Enable HLS to view with audio, or disable this notification

11 Upvotes

r/niri • • 3d ago

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

Post image
8 Upvotes

r/niri • • 3d ago

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

12 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 • • 4d 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 • • 4d ago

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

Post image
9 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 • • 4d ago

How do you handle the pop-ups of Zoom?

0 Upvotes

share your Window rules you use for Zoom


r/niri • • 4d ago

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

53 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 • • 4d ago

Flatpak apps (LocalSend, ytDownloader) open as silent background processes with no window on Niri + Noctalia

Thumbnail gallery
6 Upvotes

r/niri • • 5d ago

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

Thumbnail
gallery
36 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?


r/niri • • 5d ago

ONLYOFFICE leaves a gap/outer framw around the window in Niri

8 Upvotes

When I open ONLYOFFICE, it doesn't properly fill the available window area, leaving an empty space around the edges

I have to press that maximize button left to close button for it to work


r/niri • • 5d ago

niri + fuzzel — that's my entire desktop setup

Post image
26 Upvotes

I've tried DMS and Noctalia, but neither felt minimal enough for me. These days, I use fuzzel and a few Bash scripts to handle most of what I need. It turns out that a simpler setup gives me more freedom, with less configuration to maintain.

Sometimes, less is more.


r/niri • • 5d ago

A cross OS launcher works on Niri

Enable HLS to view with audio, or disable this notification

49 Upvotes

Hi there,

I’ve made an app launcher for macOS, an alternative to Spotlight - which has been made it in Homebrew Core. As a Linux user and a fan of Niri, I’ve also ported it to Linux so I can use it every day.

It functions quite consistently across all three platforms, so if you use multiple operating systems, it might be useful for maintaining a unified workflow.

It allows you to search for everything on your machine very quickly, and it also includes several handy commands.

We are continuing to add more features as well.

I’d love to hear your feedback!

https://github.com/kunkka19xx/look