So you can run a niri session inside of a gnome sesson for example. No need for a VM.
Playing with client-side Wayland programming, wayrs is a lot nicer to deal with than the C library wrappers.
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 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.
Isn't that what the overview feature is for?
Video: https://github-production-user-asset-6210df.s3.amazonaws.com...
Also, it zooms out too far to distinguish text. And if you configure it to not zoom out so far, it also loses its overview power.
But with 2+ screens available I'd think at least for me the usefulness would diminish, even if you'd have per monitor scrolling
- 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.
Having used dwm-like tiling window managers for most of the time, I don't really care for the scrolling or dynamic workspace aspects of niri at all - in fact, I kinda dislike them (or haven't gotten used to them, at least). To me, it kills the point of a keyboard-centric desktop environment - which is the speed and lack of friction in making the window you want appear in front of your eyes.
Despite that, I still really like it. Mostly because I have so much more faith in its development. The documentation is excellent. The configuration file is sane, and not as arcane and ad hoc as the hyprland.conf format. The source repository looks well-maintained. Being written in Rust rather than C++ means onboarding new developers is easier. The discourse is more measured, owing to the lack of a somewhat stubborn lead maintainer in the case of Hyprland.
The surrounding ecosystem seems to be flourishing as well, with projects like Noctalia Shell, DankMaterialShell, and niri-flake natively supporting niri.
And perhaps most importantly, the out-of-the box experience is really nice. You have proper monocle and tabbed layouts without any compromises - features Hyprland has still not developed, where they are only possible with scuffed C++ plugins, or where its BDFL has stated they will never be introduced. Most features one would expect from a WM are already there and well-documented, which can't be said about Hyprland.
The only thing he said:
> It was the best of both worlds—easy to navigate, while remaining mousable.
Is not really convincing as Cosmic desktop for example is tiling while remaining mousable.
I have been vaguely aware of PaperWM and Niri but never saw the appeal productivity-wise.
My problem with TWMs was always that depending on monitor size you can open 3-4 windows in a set layout (be it the tradional spirals, or H splits...) before you have to do "manual" window management (i.e. move windows into tabbed layouts, move them to new workspaces,...). So for me that generated a friction, where sometimes I just wanted e.g. to quickly open a terminal do some things but keep the rest the same, but not knowing if the terminal becomes permanent. I other words in TWMs I found myself having to know what exactly I want the window for all the time.
SWMs get rid of that friction, I just open a new window and it gets pushed to the right, while keeping windows at the perfect size and if not I can easily switch between the 3 sizes I want (never found I needed more than fullscreen half screen, third of the screen). So I simply don't have to think what I want the e.g. terminal for (something long term or just quick try) before I use it. While it sometimes makes finding the right window a little more messy (the overview really helps though), I find I end up more organised, because I keep related windows in the same workspace, while on TWMs I ended up with 3 or 4 workspaces just for temporary terminals (which made finding the right one often very messy as well).
If you like this, check out stacked tiling. It comes natively in COSMIC and I believe it can be configured in i3, Sway and Hyprland as well. It's basically tabs across windows, but thanks to tiling you have different regions of the screen with their own tab sets. I usually just split the screen vertically once, so I have a left and right region. Turns out so many workflows can be described as 'ingest information somewhere and apply it somewhere else', and this is just such a useful layout for this. Whenever I have something that requires sole attention, I just maximize that window.
I think where scrolling WMs starts to feel like it scratches peculiar itches the most is when you have a complex multi-workspace config in a more traditional tiling WM. Each workspace is a different place. In some of the best cases the WM may give a metaphor that each workspace is on a cube or other polygon that you are switching faces on. Scrolling WMs simplify needing to do 3D compositing if you want to visualize that "space" at a distance or have nice flips between workspaces that provide spatial cues to your brain, because scrolling is a thing we do a lot. We have many apps with "infinite scrolling" today; applying that to one large workspace can feel like a nice space to have to arrange your windows in, and other common computer gestures like zoom out and then back in to a different part of it feel "natural". Navigating your "desktop" becomes just like navigating a large Excel file or a large code file.
To stay with the physical analogy, the layout I've described is like always keeping all your documents in two neat stacks before you. Except that it's much easier and quicker to flip pages to the top than it would be with physical documents, so you're rarely tempted to start spreading them out.
I wish I could fine tune once, and snapshot whatever it is I'm using, and have it appear automatically when I reboot.
Relatedly I know that Windows PowerToys has a tool called "Workspaces" that also automates the launching as well as the placement, but it doesn't seem to integrate enough with FancyZones for me to find it that useful. Which is weird because they are "neighbors" in PowerToys. Still it's a good idea and interesting to see an experiment in that direction.
Super impressed by the "out of the box" experience given that it took a ton of sweat and tears to get these types of setups 10+ years ago when I posting stupid screenshots of my awesomewm and bspwm configs to /r/unixporn.
I wasn't so sure about the scrolling wm thing but I'm enjoying not having to worry about switching layouts constantly to "make room" like I always have in traditional tiling wms. Dynamic virtual desktops has taken some getting used to since I was a long-term adherent of the "10 static virtual desktops" way of thinking, but again it's been a good experience to just get used to the idea that each virtual desktop isn't as limited as it is in other WMs since you can have some content off screen.
I think an underrated aspect of Niri is that it's a cousin to System76's cosmic desktop: they share a base compositor through https://github.com/Smithay/smithay/. I think a big part of why Niri has been able to pull off such a polished experience has a lot to do with smart design from folks working on Smithay.
That said, I've gone full circle and just use a regular ol' floating style for now. This is because if the realisation that my workflow is to open a browser, a terminal, and then just use tabs within them.
I always want to know other people's workflows! I'm sure for some people who need/want lots of windiwd open, scrolling and tiling WMs provide massive utility.
I really like them, but I don't think I can honestly claim they help my oroductivityat all (I might still pretend this is true now and again though)
There are many other implementations of this paradigm if niri doesn't feel/work right to you.
- PaperWM (for Gnome; the original)
- mangowc (dwm rewrite but has a scrolling mode)
- scroll (fork of sway)
- papersway (based on sway)
- hyperscrolling (hyprland plugin)
- karousel (for KDE)
- PaperWM.spoon (for macOS)
- komorebi (for Windows)
I think the current problem with most desktop environments is the inability of those who develop them to imagine a different desktop. Let's just take how I arrived at EXWM. I was orphaned from OpenSolaris, moved to Ubuntu because coming from FreeBSD first and OpenSolaris (SXDE, CE and then OpenIndiana), GNU/Linux wasn't much by comparison, more development, better hw support, but a fragile and archaic system in too many aspects, archaic even in the mindset of many top developers, I think of Andrew Morton's infamous "rampant layer violation" talking about zfs. To the ridiculous development of BTRFS as a response and Stratis instead of perhaps looking at DragonFly BSD's Hammer as a possible response, after having had and thrown away filesystems like Nilfs2 or never really developed for user use filesystems like F2FS. Today, the love for containers useful only for commercial purposes rather than for declarative distros like NixOS or Guix System. Well, to make a long story short, at the time I chose Ubuntu with the Unity desktop, simply because I had other things to do than play around managing my desktop like in university days and Unity was fine, it was discreet, a thin bar at the top, a disappearing launcher on the side, a dash "search&narrow" style, the HUD wasn't bad for menus etc. Gnome SHell practically copied it while brilliantly managing to LOSE the only truly useful aspect of Unity: being there to serve the user discreetly. Where Unity was discreet, Gnome SHell is a secondary narcissist, trying to put itself at the center and minimizing the importance of the single window. KDE went off on a tangent from KDE4 onwards, becoming substantial bloatware. Simply put, there is no longer a desktop for the modern era because there is no understanding of what a desktop should be.
This must be a single application, fully moldable by the user, completely integrated. Emacs is that, the old Xerox workstations were that, the LispMs were that. We don't need containers that continue to sell packaged ignorance, resource waste, vulnerabilities. We don't need invasive and narcissistic GUIs. We need integration because we have a single mind with which we have fun, work, spend time, the same mind. So our computer exobrain must be one and not made in compartments or produced in competition with other products.
I want to link in my notes relevant emails, relevant RSS-fetched posts, relevant files, all without particular friction, because they have in common being information, generally textual. I want it to be copy-pasteable as needed. I want to be able to compose my UI in text with this becoming an active element where I want it. This is a desktop.
Not rigidity, limited and limiting narcissistic minimalism, not features visible to those who don't want them or absent for those who seek them. The desktop must be a PIM, a personal ERP, free and flexible like Emacs or simply be a relic of the past that won't be transformed from a relic into something modern by adding some graphical sugar. So my system must be declarative, not manually managed "containers" with holes punched everywhere to makes them usable.
Sorry to interrupt you, but:
1. X Windows has the notion of virtual screen which was bigger than the real one allowing you to have a virtual bigger screen.
2. Fvwm has virtual desktops which can be either fixed or you can scroll between them.
As far as I know, no other WM is like this. I'm loving the unparalleled flexibility and freedom, although I would like to try out some Wayland options at some point.
mikestorrent•1w ago
gedy•1w ago
With that said, I love DankMaterialShell along with Niri, it's basically exactly what I had been wanting after using PaperWM for a while.
froh•1w ago
I remember to this day the difference between my Hercules dynamite pro without and then with acceleration support. now I feel old.
anthk•1w ago