Remix.run Logo
foltik 2 days ago

I’ve gotten so used to the tiling WM workflow of quick-switching between a bunch of different dedicated fullscreen workspaces and managing windows with pure keyboard. Each workspace typically has a single app, or terminal with tmux, but occasionally I’ll split two apps side by side.

Would love to hear the perspective of anyone who switched from a similar workflow to Niri. How does the mental model shift?

sph 2 days ago | parent | next [-]

I've always (KDE, GNOME, niri) used a workspace per activity/project. I have a workspace with Steam open and a game wiki I was consulting earlier, another workspace with Emacs and browser with documentation, a third workspace with Godot and some gamedev apps open. The beauty of niri is that I never feel I need to close some apps because I've got "too many windows"; it's quite easy to compartmentalize

I never understood the point of per-app workspaces. I hate having, for example, a single Firefox instance open with everything mixed in, from work to leisure.

WD-42 2 days ago | parent [-]

This is the way. I see so many people using tiling WMs that have dedicated workspaces per app, even worse, are all full screen. What is the point?

Being able to have one window of Firefox per project workspace, with only tabs relevant to that project - this alone is a better than the myriad of ways Firefox themselves have tried to solve it within the app.

wink 5 hours ago | parent | next [-]

that's the beauty of xmonad-style switching without being pinned down per workspace or monitor.

i.e. if i have virtual desktops 1-2-3 on my 3 screens in order, I can switch out 2 for 4, but 1 and 3 stay put, so 1-4-3. if I want 1 to be in the middle now, I will switch 1 and 4, then I have 4-1-3. Now I can get 5 onto the left and have 5-1-3.

And it does not matter if I have a single big window, or whatever tling wm layout.

The point is that everyone can work however they want. When I use a tiling WM, half my screens/virtual desktops are fullscreen and half are tiled. sometimes 50:50, sometimes in other ways.

foltik a day ago | parent | prev [-]

The point is to dedicate maximum screen real estate to the primary thing you’re working on.

I tile within one monitor when I legitimately want to see things side by side, but I certainly don’t want firefox permanently taking up screen space when I really only need to occasionally look at it. Usually it’s on a separate monitor in the same workspace, or in a dedicated workspace.

Maybe there’s some way I could manipulate stacks and zooms to achieve that within one workspace, but I’ve always found it easier to just have firefox on a separate workspace I can easily quickly swap to and from when needed.

WD-42 a day ago | parent [-]

If you are trying to maximize screen real estate to the thing you are working on, why not just use a regular floating window manager will all the apps full screen? I don't see how that isn't equivalent. You can even use multiple workspaces with them too.

foltik a day ago | parent [-]

Because sometimes I do want multiple things on a screen, and in that case I want the windows to tile, not float?

cycomanic 2 days ago | parent | prev | next [-]

I was a tiling user for quite a while.similar setup to you (used awesome then qtile, short stind with xmonad and ended up with i3 and then switching to Wayland with sway, but tried hyprland for a bit as well). One thing I always ran into was that I generally found that more than three windows are horizontally just doesn't work and vertical splits very often make windows to small either. On the other hand I would often find that I wanted a new window next to something I was reading or working on, or e.g. I'd have some terminals open and wanting to plot from ipython. That always caused quite a bit of friction, i.e. I'd have to either collect some windows into a stacked layout before opening the new window. Or moving some of the windows is want side by side to a new workspace. That for me meant I had to think about what I was doing when window managing, taking my focus away from my actual task.

With niri I just open another window and it's where I need it and all other windows are still to the left and right so I just "scroll" there. Now I'd say my workflow is messier now, but I think that's actually a good thing. Tiling window managers require (but also make it reasonably easy) to be organised. With niri I don't have to be organised. Sometimes it you can't find a window immediately, but you can just use overview (and I also have a window search rofi). Initially I still had some named workspaces similar to my sway tags, mainly because I found I was still switching to them out of habit. Nowadays I don't use them any longer.

musicmatze 2 days ago | parent | prev | next [-]

I switched from KDE with almost what you mentioned: Workspace 1 had a fullscreen terminal with zellij, Workspace 2 had a browser, workspace 3 had two chat apps open and that was it. Bindings to switch between those. I switched to niri because it was different and more lightweight than a full plasma setup at first, but now adapted my workflow a bit. Most of the time, the individual windows I have are screen-sized still, similarly organized: 1 has development, 2 has browser(s) and occasionally my email reader, 3 has my chat apps. I open new terminal windows more frequently for just firing a few commands or starting some long-running thing that I need to look at from time to time. With KDE, I had these windows in the background, now I have them side-by-side on "1". "Alt-Tab"ing between them in retrospective feels clunky now compared to Super-hjkl'ing through the windows... YMMV of course, but I think my workflow got "lighter" because of that, no more "windows over eachother" but rather "next to eachother" ... gives a feeling of lightness to me.

WD-42 2 days ago | parent | prev | next [-]

My perspective is: Workspaces dedicated to a single app makes no sense for tiling WMs. That workflow is fine on a floating WM.

Where tiling WMs shine is when actually tiling windows. For me it's the holy trinity of Browser, editor and terminal all visible at once, and navigatable spatially via super+hjkl or super+up/down/left/right. So I have one workspace per project which makes a lot more sense to me as an actual workflow for tiling WMs.

Niri just improves on this substantially by allowing new windows to open to the right, instead of messing with the existing layout in the current workspace. For example, if I need to open a pdf or something. I get to keep the holy trinity, but swap over to the new window easily.

likeclockwork 2 days ago | parent | prev | next [-]

That's not actually tiling, is it? To me that reads like fullscreen with workspaces.

If one uses a manual tiling window manager like i3 or sway and a large monitor one can divide the screen into separate work areas that each host multiple applications based on their role in one's workflow and use less workspaces.

Scrolling makes a similar but different workflow practical on small screens where flexibility matters.

foltik a day ago | parent [-]

Ah, an important detail is that I use 3 monitors.

Most workspaces are a fullscreen browser or some other app to the left, fullscreen editor in the center, tmux on the right.

I still use tiling within a monitor to view email side-by-side with browser, or a document or two side-by-side with code. Rarely feel the need to put 3+ apps in a complicated layout on one screen since I’m usually not gonna be cross-referencing at them all at once.

If I had one monitor I wouldn’t want to be taking up half of it showing the browser all the time when I could instead use that real estate for more vim splits.

dkersten 2 days ago | parent | prev | next [-]

I was an i3 and away user before switching to Niri.

I generally use one workspace per task with some workspaces dedicated to specific apps (eg my browser workspace). Every app is full screen, always. I tend to use niri’s scrolling mainly for related work on one task, for example, I have my editor working on a project, scroll left and I have kilo code open on that project, and scroll right I have terminals or other related things.

So I mainly use a sway-like workflow except things tightly coupled to a specific task as on the same workspace and I scroll left or right to get to them. Everything is either full screen or sometimes 3/4 width (and full height). Occasionally I have two terminals vertically split on one column.

selckin 2 days ago | parent | prev [-]

i create 4 fixed workspaces per monitor in the config, and use it that way