What does HackerNews think of PaperWM?
Tiled scrollable window management for Gnome Shell
I used to have dual monitors, but now I use a super ultrawide 32:9 monitor. It required learning to use window managers since most OS's don't support multitasking setups like that, but I can use layouts now that I couldn't before. I also use PaperWM[1] with it and it feels particularly effective on ultrawides.
However, I love the concept of a scrollable window manager like PaperWM [3]. When I had a smaller screen (24" 16:9) I complained a lot about the unused space on my screen. With PaperWM I was finally happy with its dimensions, because I could have a huge IDE on the left and a small part of terminal on the right. This way I could see if something was being printed to the terminal, while my editor took up 80% of the screen.
[0]: https://i3wm.org/
[1]: https://swaywm.org/
I think this approach tries to solve the 'cramming too much windows in a single virtual desktop' that sometimes can be felt with tiling WMs. For example, when I'm drawing something in Krita I'd want to see some references of what I'm drawing - I'd just scroll a bit to unveil an adjacent Falkon window to browse some images on the internet, do some strokes and scroll back to Krita's window - without having to resize it in half.
Pure Gnome is not great for me. Gnome could be, but if any fix I apply will inevitably break, it simply isn't something I want to spend time on.
I am very interested in something like Material Shell (1) or PaperWM (2) both inspired by 10gui (3), but if the Gnome foundation layer will keep shaking anything above itself, I just do not want to bother with it.
(1) https://material-shell.com/
(2) https://github.com/paperwm/PaperWM
(3) https://web.archive.org/web/20140414061316/http://10gui.com/
But I get it, not for most people but then again my desktop is 21:9
https://github.com/paperwm/PaperWM
>16:9 screens are cramped
I think this depends on the screen size. Small screen, yes, because you mostly use apps full screen. Large screen, no because you can run side-by side
I find it funny, because I would say I have seen more floating window manager, when I was browsing GitHub, so I assume it is also quite easy to create a new one from scratch. Such floating VMs usually have 200-1000 LOC and die after 1 month after initial commit. Recently, xwm has been on HN [0] and it is small in terms of SLOC. There is smaller one called tinywm[1]. When we would compare them to i3[2] and sway, we can see they have thousand times larger codebase but they also bring a lot more features.
I keep my fingers crossed for more sophisticated WMs like PaperWM[3], which is "tiled scrollable window manager" to take off. They might synthesize ideas from floating and tiling managers and provide a better tool to manage windows on a screen.
[0]: https://github.com/mcpcpc/xwm
Instead of fitting all your windows within your monitor's boundaries, PaperWM sets all windows to take full height and gives you an infinite horizontal axis to arrange them on. I'm thoroughly enjoying it and vastly prefer it to tiling and floating windows
PaperWM[0] is an example of a tiled scrolling (window) manager based on GNOME SDK (Mutter) that runs in GNOME session.
I love the idea of a wm calculus I hope that it comes to life somehow.
What I can recommend you to look at, not sure it is very on-topic, is related to layouting is cassowary and constraint-based layout systems, autolayout is one of them, along the browser layout engine like css grid and flexbox.
A question to finish: what do you think of https://github.com/paperwm/PaperWM?
To my knowledge there's no any other tiling window manager that implements this mechanic(?) Ie. traditional tiling WMs force all windows in a workspace to fit within the monitor.
This mockup (and paperwm) organize the windows in a non-overlapping strip that is allowed to extend beyond the left and right monitor edges. This allows for a nice spatial map.
Say my monitor has room for two windows but I need to use 3 windows. With a tiled strip this workflow is quite nice: (| indicates the monitor edges, AA window content of window A, etc. ^ marks the active window)
C|AAB|
^^
|CAA|B
^
A tabbed tiling achieve something similar: eg. put A and C in a tabbed frame, but then it's not simple to view A and C at the same time.It's also possible to define more specialized operations: When one window is primarily used for input and two mostly for viewing (eg. editor, documentation, code-artifact) I use the following setup:
|AAB|C
^^
|AAC|B
^^
A workspace grid (a couple windows per workspace) also gives a spatial map, but does not allow to look at windows from different workspace at the same time.In addition we have a floating layer that can easily be toggled. Useful for windows I need access to from a large number of places (across workspaces, etc.)
We also implement touch-pad gestures to switch workspace and scroll the tiling left/right (only on wayland)
Things like "minimize" and "pin" are on the road map.