Tiling vs Stacking - Desktop Customization & Workflow

Users browsing this thread: 1 Guest(s)
venam
Administrators
Hello fellow nixers,
In this thread we're going to discuss two prominent ways of laying windows on the screen: tiling and stacking.

There was a long thread on reddit that inspired me to open this for further discussion.

I thought the pros and cons were not as developed as they could be and rotated around the "It works for me why wouldn't it work for you too".

Let's also dismiss in this argument the hybrid window manager, tiling but that allows floating. Because why not make the opposite too, floating but that allows some tiling.

Also it needs to be said that tiling strictly refers to the windows not overlapping and not the management in itself.

Here are some of the arguments:
  • Tiling WMs: The aspect ratio of windows might not be respected (not always true if you add gaps in the equation)
  • Tiling WMs: When you resize one terminal it will send SIGWINCH to all other terminals because they'll also be resized.
  • Tiling WMs: It is hard, when there are many windows open, to manipulate the tree and replace the windows in the order wanted or find the wanted window (not always true)
  • Stacking WMs: Is the desktop metaphor (maybe?)
  • Tiling WMs: allows you to see all the windows on a workspace at the same time (but what about the windows on different workspaces?)
  • Stacking WMs: Allows you to overlay windows and thus gain space on the screen when it gets cluttered (see desktop metaphor)


And here are the arguments related to the management and so that are not true arguments (AKA misconceptions):
  • Tiling WMs: Places all the windows at the right position and with the right size for you
  • Stacking WMs: You have to spend all your time thinking about how to place windows and resize them
  • Tiling WMs: Are keyboard driven
  • Stacking WMs: Are mouse driven
  • Tiling WMs: Need a lot of time to configure
  • Stacking WMs: Are resources heavy
  • Tiling WMs: have better workspace management (or do they? why? Stacking has workspaces too)
  • Stacking WMs: Need to have decoration so that you can drag them around with the mouse
  • Tiling WMs: Allow better grouping of windows

Overall, it's hard to find a lot of *valid* arguments just for the concepts of tiling and stacking themselves without bringing the management part into it.

Please bump this thread with more pros and cons.
mrtn
Members
Before giving arguments or try to decide what to use, you should be aware of your usage of your computer.

For me, it's either a fullscreen-program or some windows side-by-side. In addition, i don't really 'stack' windows. If the space is running out, i move windows to different workspaces anyway. So, the discovery of tiling wm's were actually a great improvement. Before i3, I used gnome, and to place windows side-by-side, i had to arrange them in an additional step... Now i just open another window on the same workspace and i'm good to go.

So, for me is the biggest pro of using a tiling-wm the reduction of steps to arrange my windows in a way i like them.
jkl
Long time nixers
Another pro for Tiling WMs: It is the standard as of UNIX v8.

However, for me (personally), neither Tiling nor Stacking WMs are the way to go. I mostly work on laptops with little screen space, so my abilities to arrange windows without losing information are limited. I tend to use my systems (both Windows and BSD) in monocle mode, having one full-screen window per screen all the time. Humans can't multi-task anyway.
venam
Administrators
(02-07-2017, 10:53 AM)jkl Wrote: I mostly work on laptops with little screen space, so my abilities to arrange windows without losing information are limited. I tend to use my systems (both Windows and BSD) in monocle mode, having one full-screen window per screen all the time. Humans can't multi-task anyway.

(02-07-2017, 08:54 AM)mrtn Wrote: For me, it's either a fullscreen-program or some windows side-by-side.

Same for me, I think most of us end up converging to monotasking.

(02-07-2017, 10:53 AM)jkl Wrote: Another pro for Tiling WMs: It is the standard as of UNIX v8.
So it used Blit apparently. Are you sure it was strictly tiling because it looks like it's stacking ( http://doc.cat-v.org/bell_labs/blit/blit.pdf )?
Quote:The screen is not big enough (no matter how big it might be). Therefore, windows must overlap. The desires for overlap and asynchronism led to the development of layers, an implementation of overlapping, asynchronously updated windows.
Also, this is probably more like terminal multiplexing than X window management.
jkl
Long time nixers
(02-07-2017, 11:16 AM)venam Wrote: Are you sure it was strictly tiling because it looks like it's stacking ( http://doc.cat-v.org/bell_labs/blit/blit.pdf )?

Whoops! Sorry, I retract my claim.

(02-07-2017, 11:16 AM)venam Wrote: Also, this is probably more like terminal multiplexing than X window management.

There was no X when Blit was designed, so of course it did not revolve around X windows. It was not Blit's fault that there were not many other graphical applications available though. Blit could also show (e.g.) a clock, so it was technically not limited to pure terminals.
venam
Administrators
(02-07-2017, 11:26 AM)jkl Wrote: Blit could also show (e.g.) a clock, so it was technically not limited to pure terminals.
Definitely, I agree with that.

Still mentioning that because V8 used Blit, which was stacking, as a default graphical environment doesn't make a good argument, that's more of a genetic fallacy than anything else.
mrtn
Members
(02-07-2017, 11:16 AM)venam Wrote: mrtn Wrote:
For me, it's either a fullscreen-program or some windows side-by-side.

Same for me, I think most of us end up converging to monotasking.

It is actually monotasking for me. The only case i use it that way, is reading documentation/tutorials/etc when coding...
pyratebeard
Long time nixers
I tend to have most windows fullscreen as well. As others have mentioned it is handy when you want to read along side working to have two windows side by side, and this is easily accomplished with tiling.

The big thing that brought me on to tiling WMs is the keyboard driven element.
*Edit - and the minimalism

With regards to the argument about manipulating the windows to suit your needs, this comes with time. Each WM is slightly different but with a bit of perseverance it becomes easier. It took me a while to get use to herbstluftwm after awesome for example.

I also organise my workspaces so that I know which one to switch to in order to find a window. Does anybody else do something similar?
mrtn
Members
(03-07-2017, 09:49 AM)pyratebeard Wrote: I also organise my workspaces so that I know which one to switch to in order to find a window. Does anybody else do something similar?

Same here. Browser is on Workspace 1, Programming happens on 2 and my terminal emulator is open on 3. IRC is always on 0 - for all other workspaces, it's simply chaos.
acg
Members
(03-07-2017, 04:12 AM)mrtn Wrote: It is actually monotasking for me. The only case i use it that way, is reading documentation/tutorials/etc when coding...
This is what I do too, I don't have any issues arranging them side by side using keybindings on a stacking WM.

At home I use dual monitor with my tmux session on the second one and sometimes a little video on top of everything, at the corner. But lets be real I'm not always looking at my second monitor and most of the time my focus is on the primary monitor; even when I have to do something heavy on tmux, I switch it to the main display.

Of course when I need to open something different like GIMP, Spotify or similar, I run them on a different workspace. On single monitor my Tmux session goes to the first and browser to the second; that's how I'm used to arrange them.
argonaut · musician · developer · writer · http://albertocg.com
z3bra
Grey Hair Nixers
I got two different worklows myself. First one happens at work, and is rather boring: Tltwo huge monitors, one with a browser fullscreened, one with a tmux fullscreened.

Then there is my home flow. One small screen only. I usually move windows and resize them all the time with my mouse. I make heavy use of groups to hide windows together and background tasks to focus on things. for example, I have 2-3 terminals windows to code, then background them all, open a few browser windows (I use surf), then hide them all and bring back the terminals. If I need specific windows, I add what I need to a new group, amd show only this group, and so on. Works for me, and it makes me look like a wizard ;)
r4ndom
Members
(03-07-2017, 06:15 PM)z3bra Wrote: Works for me, and it makes me look like a wizard ;)

Like that :D Your workflow video inspired me to switch back to stacking.

For the last year I used a tiling WM, but after a while I got tired of resizing windows, switching workspaces when working in the browser and coding and so on. So I switched to stacking with wmutils extensions and it's nice to be back at it. I know I probably have to resize windows, but do not change others while doing so.

So for me the most imporatent argument in "tiling vs. stacking" is the personal preference.
hades
Long time nixers
I like i3 for the simple fact that I can mix floating and tiling. If I'm gonna be, say, using a terminal and a web browser at the same time, I don't want to sacrifice half my screen for the terminal. No, I'll just keep my term floating, and position it over the whitespace on the webpage I'm reading, and keep my browser fullscreen.

But when I wanna work on 3 files simultaneously in vim, push them to my github periodically, and monitor an IRC channel at the same time, tiling becomes valuable.
acg
Members
(04-07-2017, 11:31 AM)hades Wrote: But when I wanna work on 3 files simultaneously in vim, push them to my github periodically, and monitor an IRC channel at the same time, tiling becomes valuable.

Why not do this with a terminal multiplexer?

I think this is the case for most of us, we don't need too complex windows management since what we use "simultaneously" is a browser and a terminal emulator.
kyberkhrime
Members
(04-07-2017, 11:40 AM)acg Wrote: Why not do this with a terminal multiplexer?
On the other hand: Why do this in / with a terminal multiplexer? My window manager does his job quite well, and gives me a lot more flexibility than a terminal multiplexer.
acg
Members
(05-07-2017, 03:22 AM)kyberkhrime Wrote: On the other hand: Why do this in / with a terminal multiplexer? My window manager does his job quite well, and gives me a lot more flexibility than a terminal multiplexer.

Well yeah, this is my perspective, from a floating wm user. The most efficient for us is to set that to a terminal emulator when needed.

As for this argument, +1 to tiling, since it automatically handles a common scenario without external tools.