Tiling window managers suck less

Wolfgang on Youtube says that tiling window managers suck. But he is a(n ex-)tiling window manager user himself, so it can be just an overstatement designed to poke. Therefore let’s be lenient.

His list of reasons is:

  1. Tiling WMs take too much time and effort to configure
  2. Steep learning curve that doesn’t amount to any real gain in productivity
  3. GUI apps look like crap in tiling window managers
  4. Keyboard-centric paradigm conflicts with apps that use mouse
  5. Re-arranging, moving and resizing windows is a chore
  6. Some UI elements are not displayed correctly and require manual configuration
  7. No Alt-Tab or App Overview functionality
  8. Picture-In-Picture and dropdown terminals
  9. Most relevant apps already include tiling functionality one way or another

1.-2. Steep learning curve and effort to configure

In the current state of affairs these issues are greatly mitigated by distros and distro flavours that offer a proof-of-concept desktop experience based on whatever window manager and other choices happen to be the favourites of the developers’ of the distro. Getting started with whichever window manager is a matter of installing the distro or distro flavour that provides the window manager pre-configured.

The learning is less of a curve and configuration is less of an effort when it is in appropriate perspective with the purpose. The purpose is to make the workflow more effective. If the workflow in fact becomes more effective, then the time spent on learning and configuration has been worth it. Conversely, if the window manager happens to be unconfigurable, there will be no opportunity to improve one’s workflow and opportunity for efficiency will be lost, which makes all work with such a window manager (as found in MS Windows and Apple Mac) an effort that will never be worth it.

3. GUI apps look like crap in tiling window managers

This is true for GUI apps that do not tile well. For example Gimp (the image graphics programme) opens, by design, several tool windows laid out separately over the desktop. I’d say this is just poor design. GUI apps that do not tile (and reflow) well have not had enough thought and care put into their GUI. By the way, the painful mismatch between Gimp and tiling window managers is not even among Wolfgang’s examples.

Maybe artists truly need their apps designed the way Gimp is. However, tiling window managers have a solution even for Gimp: This single sore-thumb application can be configured to open in floating mode. I know, configuring…

Mind you, terminals and terminal apps such as text editors can also “look like crap” in tiling window managers when the requirement for the code or text happens to be strictly e.g. 80 columns/characters or less, nothing more. In such case one would prefer a steady fixed window size for the terminal. Now that would really suck, but again, luckily every tiling window manager I know of has a floating mode.

4. Keyboard-centric paradigm conflicts with apps that use mouse

Wolfgang says, “GUI apps are mostly controlled by mouse which conflicts with tiling window managers’ keyboard centred paradigm.” This is only true for fundamentalist keyboard purists.

At least awm and bspwm can handle mouse pretty well to rearrange windows and to drag windows from one output (monitor) to another, just like stackers can. While i3wm cannot rearrange this way by mouse, it provides convenient mouse access to tiled window edges to resize connected windows at one go. That is, windows that are tiled against each other, i.e. they share a common border, can all be resized by one mouse-drag in i3wm. This feature is (according to me) called snapborder.

Lately MS Windows has copied this so-called snapborder from Linux window managers. Let’s repeat: Stackers copied snapborder, which is (optionally) a mouse-operated tiling feature, from tilers!

5. Re-arranging, moving and resizing windows is a chore

On this point I happen to agree with Wolfgang, but it is more of a chore in stackers. In tilers, once you learn how to do it (in several it can be done by mouse), it will be quite snappy.

In stackers, re-arranging, moving and resizing remains a chore forever. For example, in stackers, open windows are allowed to overlap naturally. But when the user has many windows open, it is hardly likely that all the windows are supposed to overlap. You want at least some be seen side by side, and this is really a chore to achieve in stackers.

In contrast, tilers tile windows naturally with multiple windows. A single window is always maximised in tilers. The beginning user of a tiling window manager only runs into complications (of attaining a specific arrangement or of a necessity to learn a keybind or configuration) when there is a need to have a single window non-maximised or when there is a need to have a window overlapping with a second window, but not with a third window on the same workspace. For example I have not seen that bspwm has any overlapping at all, except in so-called monocle layout, which maximises all windows of the workspace so that they are all overlapping.

Luckily there are other tilers, and i3wm uses so-called container logic to group several windows of the same size, which can be either tiled in their own right or overlapping in a part of workspace, regardless of the mode of the overall workspace. That is, in i3wm a container is a sub-workspace unit that can contain several windows with an autonomous layout. This is tiling at its best; I’d even say window management at its best.

Intermezzo: Awesome Window Manager a.k.a. awm

If one wants a not-too-steep dive from stackers into tilers, then Awesome Window Manager or awm is the best cross-over with many important features of stacking window managers, such as layers,1 true taskbar (with windows’ titles, not just a statusbar with some system and workspace info) and true minimise/iconify (vanish the window, but leave its title visible on the taskbar).

When a user who is used to stacking clicks on the taskbar of an open window the first time, he would expect the window to be raised and to come to focus, and if the window is already raised and in focus, he would expect it to vanish from view (minimise/iconify). This is exactly how Awesome Window Manager and its taskbar behave. Different from other tilers, awm’s default configuration lowers floating out-of-focus windows, as is normal in stackers. Because layers!

On top of this stacking-style behaviour, there is much fascinating tiling to discover in awm. This tiling window manager is notoriously difficult to configure and extend – in a scripting language called lua which works only sketchily – but there are excellent accessibly pre-configured awm editions available from Manjaro and Arcolinux which I have managed to alter on my own somewhat to reduce the layers-centric behaviour.

6. Some UI elements are not displayed correctly and require manual configuration

The examples Wolfgang uses here are popup dialogue boxes, Java and Wine apps. This is a real problem in poorly designed and unfinished tiling window managers, but it is actually to be expected in any poorly designed and unfinished window managers. It is not a problem in mature window managers like awm, dwm, i3wm, and bspwm. Besides, app designers should also design their dialogue boxes better, so that these definitely register as dialogue boxes for the display manager or so that they are usable even when tiled.

7. No Alt-Tab or App Overview functionality

Yes, I also miss arbitrary window switching and Expo-style overview occasionally. However, Rofi works splendidly around this in tiling window managers, so that any arbitrary window can be found and switched to in a snap. And awm has a fair Openbox- or Xfce-like window list of its own inbuilt.

8. Picture-In-Picture and dropdown terminals

Well, I hate the modern picture-in-picture as implemented in some browsers (or websites – sometimes it feels there is no difference between a browser and a website anymore) compared to opening the video stream in one’s own video player of choice, which is how it used to be in late 90’s. For the latter, the floating mode in tiling window managers is perfect, as floating mode in tiling window managers usually also means always-on-top (awm being the exception). Over the decades, MS Windows has completely lost the always-on-top feature, while stacking desktop environments in Linux are doing a good job of retaining it.

As to dropdown terminals, there is the floating mode again. Try the floating mode combined with scratchpad as implemented in i3wm (works like minimise/iconify) and all your dropdown needs are fulfilled.

9. Most relevant apps already include tiling functionality one way or another

Many notable file managers have dual split, yes, while other notable window managers (Thunar and Windows File Explorer) do not. To get a dual split with Thunar you need to have two Thunars open and tile the two windows. The easiest way to do this (i.e. the least number of peripheral steps required) is to have a tiling window manager.

Stacking window managers and desktop environments that implement some tiling mostly do a limited and unconfigurable job of whatever tiling they attempt. The best at it, as far as I have seen, is Openbox, but to make most of it, you really really need to get your hands dirty in configuring it, while in tiling window managers tiling just works out of the box.

One of my favourite features in tiling is snapborder. In tilers it is natural, while in stackers it always looks like an afterthought and only works halfway.

Anyway, if some tiling is good, then more of it must be better, right? And better still when the feature is configurable in detail.

Bonus point: Window tags and workspaces

Granted that stackers have multiple workspaces these days, but their implementation is, let’s say, on different principles compared to tilers. In a multihead setup (multiple monitors or outputs), stackers consider all outputs as a single large crooked workspace and switching to a different workspace switches away from all windows on all displays. This is a problem.

MS Windows has lately attempted to mitigate this problem by allowing a window to be displayed on all workspaces, but their implementation is half-baked. Namely, when the window is displayed on all workspaces, it is hard-coded to have all the same parameters when it comes to status and placement on all the workspaces. If you minimise the window on one workspace, it becomes minimised in all workspaces, which defeats the purpose of having it on different workspaces.

In contrast, all tilers implement multihead properly: Each output is its own workspace. Additionally, those that implement tags can display a window in multiple tags in different states, e.g. tiled in one tag, maximised in another, and floating in a third.

Of all tilers I have tried – awm, bspwm, dwm, i3wm, and qtile – only i3wm does not have window tagging, but I still prefer i3wm over other tilers because it can create a group of overlapping windows in a part of workspace, something that none other can do as far as I have tried. If tagging were to be added to such window groups, i3wm would be the best window manager ever.

Conclusion

To summarise, I can agree that tiling window managers suck due to time and effort needed to learn to use and configure them, but even in default configuration they suck less than stackers at actually managing windows. In my opinion, only tilers can be honoured with the name “window managers”. Stackers do not manage, they just display windows in whatever status and placement those windows happen to appear. In stackers, the user will have to do all the hard and dirty work of managing the windows, mostly by dragging with mouse which is the hardest work when using a computer. Now that sucks indeed.

Footnote

1 Layers can be e.g. “normal”, “bottom”, or “top”, describing which windows in the stack are above or below others. In well-configurable stacking window managers there is also an always-on-top function and a send-to-bottom function. In comparison, most tiling window managers only have two layers, more properly called modes: tiled versus floating, where floating means always-on-top at the same time. To compensate for lack of layers, tiling window managers tend to have multiple automatic (dynamic) layouts, one of which is monocle, which is the same as maximised in the world of stackers. Additionally, i3wm also has a well thought-out “scratchpad” which works the same as minimised among stackers, because the “scratchpad” windows are still accessible to window-switching tools like Rofi.

2 Replies to “Tiling window managers suck less”

  1. It’s good of course.
    But this are only words.
    Any picture for proof?
    (You talk about visual thing so you should show something)

Leave a Reply

Your email address will not be published. Required fields are marked *