Cortile – Linux auto tiling manager with hot corner support
github.com
github.com
Niri[1] and PaperWM[2] for example, these Scrolling WMs provide a way to tile your apps in a way that feels natural. It's like having multiple monitors without having multiple monitors.
When I first used PaperWM on Gnome, I just couldn't think of a reason why somebody would even use their computer the normal way when these exist.
[1]: https://github.com/YaLTeR/niri
[2]: https://github.com/paperwm/PaperWM
PS: Check out Niri's releases section for videos.
The point behind tiling WMs and why a lot of people use lightweight IDEs (meaning multi-window IDEs) is that the idea of virtual desktops is used as a state management and state chronic restoration tool.
A lot of i3/sway users I've seen (including me) are using virtual desktops to not forget what they were working on before the current task. Each dependency that created a sub task in their workflow is represented by a "new layer set of windows". If they have multiple monitors, each monitor has a dedicated place for tools. E.g. the browser window for research, the debugging output, the app window they're working on etc.
Why I think scrolling WMs don't integrate nicely with this is because they lose the state of the historic placement of windows, which is kinda bad for this kind of workflow. But it might be just my bubble of devs that I interacted with.
Would be nice to hear how you were using tiling WMs before that? Was your workflow similar at all to what I described?
You can still use a Scrolling WM to tile everything the way you would on a Tiling WM and that is where it shines. It's a fantastic solution to the screen estate problem, which tiling managers struggle with.
You're right that they are a bit different but I personally don't see the need for tiling when Scrolling WMs provide the same functionality (vertical and horizontal tiling + workspaces) as well :D
When I moved to Hyprland after having tried almost every DE and tiling WM, I had to write my own layout plugin (hyprscroller) because of how much I missed PaperWM.
If you moved from classic DEs with floating windows and lots of mouse to a tiling WM, scrolling adds another advantage. You can even ignore it and use it as a classic tiling WM, but you also have all the advantages of scrolling once you find a use for them.
[1] hyprslidr: https://gitlab.com/magus/hyprslidr
[2] hyprscroller: https://github.com/dawsers/hyprscroller
Though need to extend hyprland to support layout outside viewport: https://github.com/hyprwm/Hyprland/issues/5489
Scrolling WMs are too "linear", so jumping to arbitrary locations becomes harder. E.g.: I can jump from workspace 1 to workspace 7 in O(1), but on a scrolling WM there's no equivalent action to jump right such a large, arbitrary distance.
Mind you, scrolling WMs still sound nice. If you don't _want_ multiple workspaces (or maybe just one or two), they'll likely work out better. They sound like a superb solution for a living room display or touch-only devices. In fact, I'm looking forward to experimenting with niri on my mobile phone.
Scrolling fixes that problem because I can quickly use my touchpad to scroll through multiple windows, that can be set to 70% of the total width. This means I can actually see what the other apps are doing in realtime. This is different because scrolling WMs 'make you feel' like you're using multiple monitors, since switching to the other windows is very similar.
Scrolling WMs still have workspaces though, so that's not going anywhere but it's one of those 'see it to believe it' things. Scrolling WMs really changed my perspective.
I used almost every DE and tiling window manager before I arrived to PaperWM, and when I moved to Hyprland because of its simplicity and the control it gave me, I had to write a scrolling layout because of how much I missed PaperWM.
- Having a scrolling layout doesn't prevent you from using workspaces, you have both. I use workspaces, some of which are scrolling with rows and columns depending on the task associated to them.
- Jumping to arbitrary locations also takes just one keystroke (and no mouse). For example, hyprscroller supports marks. Set a mark to a window, and you can jump (and get immediate focus) to that window with a key combination. You can move to your editor, e-mail program etc, with one key press, even if they are in different workspaces and not seen on the screen (kind of like in vim)
- You don't need to browse through stacks of hidden windows, they can all be at their preferred size and "seen" at the same time. Once you accept the paradigm, it is very fast, and there is support for overview modes where you can see all your windows scaled to fit the monitor.
- You can automatically resize a set of windows to fit your monitor with a key stroke, allowing you to have all your currently needed windows (editor, docs, browser) visible at the same time, while you don't "lose" the rest, they are simply outside of the monitor area, a keystroke away, and keeping their original size.
It changed the way I work so much I had to write my own plugin as soon as I moved to Hyprland. You basically forget about the mouse and resizing/moving windows.
I'm not exactly sold on the window scrolling idea yet but switching between Karousel and Polonium[1] which is a traditional twm for Kwin is very easy so I'll be experiment with both.
Personally, I've given up of controlling all pieces of my DE like setting up busses and keyboard shortcuts. KDE already does all of this brilliantly and kwin scripts get the rest so I can have my cake and eat it too.
This is a pretty good overview. There have been several HN discussions on this matter.
I’m not saying Vaxry is right or did nothing wrong, or that Drew’s portrayal is wrong, but what you linked is just Drew’s personal musings on the situation.
I’ve seen someone be viciously attacked online for being bigoted against people who are less mentally able, only for it to surface after the attacks (and professional consequences) that the “bigotry” was calling someone a moron a few times.
Be careful about taking sides when you have only one side of the story. Not long ago HN harassed a Google employee for supposedly stealing a JavaScript accessibility project, only for it to later come to light that the accuser was dealing with some difficult personal situations that caused him to portray the entire thing lopsidedly.
Drew's personal musings on the situation form a reasonable overview in this case. Even a fraction of the evidence publicized is enough to justify the label "toxic."
I see a wm's main developer attacking a developer of another wm, and it's not pretty.
I'd love to see a vertical version of this for phones and tablets.
From a aesthetic perspective, niri has slow animations and has one every time you move. That tells me it's not focused on moving instantly and as fast as possible from one window to another, so it's not for me. Sure you can probably configure it to do it differently, and if it was the only option in town I'm sure I wouldn't be too sad, it seems great. But it's made by and for people with different needs and wants than me.
> It's like having multiple monitors without having multiple monitors.
That's what tiling window managers are at the most basic level for me. 9 tags, 9 monitors in one! But also, I can display multiple tags at once.
For context, I recently switched to the KDE window manager (KWin) after a decade of xmonad, to simplify my configuration. KWin supports some tiling but isn't really built for it, so I had some minor annoyances. I ran cortile and it perfectly auto-tiled my windows and allows me to still adjust the sizes with the mouse!
Thank you to the author!
I'd say some default shortcuts conflict with commonly used browser shortcuts, namely ctrl-shift-t and ctrl-shift-r . It's quite easy to configure these, but I found it to be a strange choice for default shortcuts.
I use a plasma widget called "Command Output" to replicate most of what I needed from waybar, and set up Breeze to not have title bars, and added a plugin to get rounded window corners, and I don't miss hyprland at all anymore.
https://github.com/comalice/dotfiles if you're interested.
I like kde's batteries included stuff, but none of the tiling functionality matched i3.
I do love the simplicity and speed of DWM.
NEVER understood why you needed to create a whole new WM for the creation of some solid window patterns with shortcuts.
The full-on tiling managers are often very stripped down, and there are a lot of nice little bells and whistles in the big boys that can be made optional.
I mean, this gets at my whole issue with WM/DEs, why can't they ALL be more modular? At the end of the day, they're just a collection of programs.
I share a lot of my config between Sway and Hyprland because of this modularity. They are flexible enough that you could configure them to look and run just like KDE and no one would be the wiser.
I guess the advantage over i3 would be that those desktop environments have better integration with certain apps and a coherent look and feel. For example, on Ubuntu, which uses a modified GNOME, you can add tiling while still enjoying stuff like the volume control widget, gnome-control-center, consistent file open dialogs, and so on.
For anyone who wants i3 but doesn't want to configure it, the only other option I know of was regolith:
https://regolith-desktop.com/ or https://regolith-linux.org/
This looks like a nice fit for my xfwm machine and I'm excited to try it.
This certainly looks interesting. Cannot comment on it's current state, as I still use bismuth on x11
Not a bad thing, I love Go. It surprised me is all.
But yes, it requires such extensibility support from the compositor, unlike this project that works with any X11 compositor because it just relies on EWMH.
I'm not entirely sure what you mean here or how it is related to hot corners.
The compositor itself can move windows anywhere (it is in full control). A client moving the windows of other clients is not permitted, although compositor-specific interfaces exist for this. There's no standard here because a stacking compositor implements completely different semantics from a tiling compositor. I'm sure that protocol extensions will come up for niche use cases over time.