Conceptually, it's like an infinite 2D canvas windows, divided into strips (strip is a workspace), and you then scroll through an infinite ribbon of windows in each strip.
Seems interesting, but also slower and less flexible than traditional tiling WMs (least of all because of the slow scrolling animations, but also because it seems to prefer scrolling instead of jumping-towards).
Like most of the 'tiling with gaps' patches I see, these feel like trying to look fancy without necessarily delivering big value. I'd be interested to hear why people want a scrolling WM. Is it merely more visually pleasing?
It's the same thing as a tiling WM, with all the benefits. You can still tile windows vertically or horizontally. The big improvement is that if I have a view with my browser, editor, a terminal or two all tiled nicely but then all of a sudden I need to open the Gimp or a PDF for some one-off work related to what I'm working on, it just opens to the right. I can move over to it and do what I need to do without messing up the current layout and then close it when I'm done.
This is opposed to a traditional tiling WM where you'd either need to open the app in another workspace, use some stacking feature or worst of all shove the new window into the current view by resizing some other window(s) which is often not ideal.
Sounds interesting, but I still think I prefer using workspaces, simply because I can set window rules for predictability.
I never want to / have to wonder where any particular window is. Every app will always open on the same workspace, in the same position that I define + a scratchpad workspace for random one-offs that I keep floating. I'm only ever 1 key press away from exactly what I want. I know that ctrl+b gets me my browser, ctrl+t gets me to my terminal(s), etc. I don't even think about the workspace numbers or layout beyond initial configuration. Zero animations, instant switching.
In your example, if I'm on one workspace working and I need to open Gimp, I press my keybind for Gimp and it opens on the scratchpad and switches to it immediately.
It takes a lot of initial config and tweaking as you go along but once settled it's the most efficient way I've found to manage windows, in that, the windows manage themselves i no longer have to think about them at all.
That makes sense if you use application per workspace, which never made much sense to me.
I'm often working on 3+ codebases or projects at the same time, each project has a browser window with associated tabs, an instance of an editor, several terminals. So they get a workspace. "Switch to browser workspace" makes no sense if there are 3 instances of the browser open, especially when I want the browser next to my editor for live reload/API docs.
The problem with your example is that you might have Gimp, a browser with its own set of tabs, and other multi-instances of apps needed in multiple workspaces as you work on multiple projects.
In Niri, you just have these open in the each workspace off to the side. And you know exactly where each one is.
In your example, you either have to flip through multiple Gimp instances in your scratchpad or you use tab/stack containers to tile them in to existing workspaces. But you are multiple keystrokes away now because you have to go to the container and paginate through it.
Wow. My work flow with a stacking WM is that I get my tiled windows how I like them, but then if I need a new window for some reason, I just open it and it plops on top of my tiled windows without interacting with them at all. Seems more productive to me.
> This is opposed to a traditional tiling WM where you'd either need to open the app in another workspace, use some stacking feature or worst of all shove the new window into the current view by resizing some other window(s) which is often not ideal.
I use Awesome Window Manager and one feature I like about it is this:
Say I've got my terminal in workspace 1, Firefox in workspace 2, and Emacs in workspace 3. There are often times I need to use either the terminal or Emacs (or both) while viewing a website. So with a keystroke, I can tell it to combine any two or three workspaces and all the windows are shown tiled together. In a sense, it creates a new temporary workspace with all 3 windows. As soon as I leave this workspace, it restores it to the original configuration. No need to move windows from one workspace to another and remember to move them back.
This is the one feature that I'm really missing from Mac OS.
It's a bit arcane written that way, but each workspace is a tag. Pressing Mod4 + Control + 2 means to show workspace 2. The effect is cumulative. If you now press Mod4 + Control + 3, it will be showing both workspace 2 and 3 simultaneously (and tiling the combined set of windows).
If you press Mod4 + Control + 3 again, it will remove workspace 3 from view.
If you now just leave to go to some workspace, (e.g. Mod4 + 5), it will only show workspace 5.
I'm still a Niri newbie, but I'm enjoying the scrolling as a ways to have "subworkspaces": when I'm working on a full-stack project, for example, I can scroll between the backend and the frontend, while arranging my windows in such a way that anything useful (e.g. the browser) remains resident on screen.
You can get similar functionality with tabbed windows, but I'm still trying to decide which workflow I prefer; scrolling feels a bit more "organic", while tabs are superior for density.
Checking the video and impressed how people remember all the programs they've running on the canvas and their location. In i3 have been using i3-renameworkspaces to know what is opened in other workspaces because kept forgetting.
Conceptually, it's like an infinite 2D canvas windows, divided into strips (strip is a workspace), and you then scroll through an infinite ribbon of windows in each strip.
Seems interesting, but also slower and less flexible than traditional tiling WMs (least of all because of the slow scrolling animations, but also because it seems to prefer scrolling instead of jumping-towards).
Like most of the 'tiling with gaps' patches I see, these feel like trying to look fancy without necessarily delivering big value. I'd be interested to hear why people want a scrolling WM. Is it merely more visually pleasing?