The Dank Case for Scrolling Window Managers

3 hours ago (tedium.co)

I've switched my work laptop from W10 to Fedora about 9 months ago, using KDE during this time. The past month switched to Niri + DMS and I'm extremely happy, which is odd to say. I've a stacked external monitor setup 2 x 4k monitors on top of each other. Top one is the main, runs mostly just the IDE. The bottom one with 7 named workspaces:

- chat: teams / discord - work: assisting workspace for Main screen - git : sourcegit - terminal: for general terminal stuff - claudecode - work related browsing - personal browsing

All workspaces are accessible their own hotkey, so I can work on something on the main, and instantly switch to a specific application. I had the exact setup with KDE, but I had to do some trickery to get this working with Virtual Desktops Only on Primary Display https://store.kde.org/p/2143363. Niri enables to have the same setup, + display independent workspace setup which I really wanted. The same feature was requested 20! years ago in KDE, and we still don't have it. This kinda shows the power of independent projects like Hyprland and Niri.

My favorite part about Niri is that a bunch of people said that writing a Wayland compositor in Rust was too hard to do for years. Turns out they're wrong!

My only gripe is that these newer wm's require hardware acceleration. It's hard to try them out in a VM, and committing to a hardware install is a big ask for anyone that's been using something else for a while.

  • Many wayland compositora can run as clients of another compositor.

    So you can run a niri session inside of a gnome sesson for example. No need for a VM.

  • You don't have to remove other WMs to try a new one. Most login managers will let you choose at login.

  • You can often install packages in a live system ("try" option of installation medium). The backing storage for that is a RAM disk overlay. Did you not know or is that too short-lived for you for a proper trial?

I really miss classic X11 virtual panning desktops where I can get more real estate just by scrolling offscreen. I have a cyberdeck with a 1080x480 screen, and the vertical resolution is just too low to be able to display most dialogue boxes; if I could just have panning in Wayland it would be fantastic, as the guts are an RPi 5 and X11 is slow as molasses on there due to lack of classic 2D acceleration primitives.

  • Yes I had recently tried to fake a scrolling tiling WM this way and surprised it's not available afaics on distros or MacOS?

    With that said, I love DankMaterialShell along with Niri, it's basically exactly what I had been wanting after using PaperWM for a while.

Niri demo video actually looks kinda cool, could be nice to use on a laptop when there's no access to multiple external monitors, so that you could just pop a log/tool/whatever window to the side without fulling swapping workspaces xmonad/i3/hyprland/etc style.

But with 2+ screens available I'd think at least for me the usefulness would diminish, even if you'd have per monitor scrolling

  • I'm using niri with two screens at work and it's been very nice. I don't open windows on the side as you suggest but I believe that can be done with custom bindings and/or window rules.

I installed NixOS on my desktop and used Sway for a while before switching to Niri.

With Sway, I'm constantly having to find a place to open a new window (tuck it into the current workspace or create Yet Another One). Or I'd slot it into some tabbed group and forget.

With Niri, I hate to admit it, but even after a month I would get lost. I would lose track of where things were not just between workspaces, but even on the same workspace: was that one claude terminal I'm looking for scrolled off to the right or left?

I ended up writing my own Fuzzel tools so that I could do the macOS thing where I alt-tab to apps and then alt-tilde between apps of the same kind.

But in the end I couldn't make it more productive than my macOS workflow with a global hotkey iTerm2 window with 10 tabs and then just alt-tabbing + alt-tilde between apps.

  • I've had a pretty good experience setting up a launcher of some kind that can fuzzy find from my open programs/windows. super+space "fi" to pull up my open Firefox. On MacOS I have super+tab bring up Alfred with a fuzzy find through my open tabs. I need to get around to figuring out something similar for my Linux DE.

  • I just start closing stuff when this happens. If I can't remember why a window is open, it probably won't hurt to close it.

  • Right Cmd app and mapping caps to right command, deterministic window switching is key.

    I used caps jkl; chording to give me left/right: quarter, half, 2/3rds, full and the k and l alone to give me different middle of window widths. caps I switches screens and caps U to rotate heights.