On Tiling Window Managers

February 19, 2012

We all know how to use computers in today’s world, in other words, we know how to use some mainstream computer software that implements a single approach to specific problems among many alternatives. Some of those alternatives didn’t make it into the mainstream for good reason, e.g. lack of usability/efficiency, unnecessary complexity. Some couldn’t make it due to human species being silly, as always. Others, including the concept that constitutes the subject of this article, didn’t make it for mostly technical issues that were present in past, solved today. The author, who has absolutely no claim of being an expert on window managers but has enthusiastically tried many in years, will be discussing particularly about a window manager concept, which is slowly but surely making its way back into the mainstream.

Operating system vendors like to hide things and their alternatives to lower the learning curve of their systems, that approach actually helped us easily use computers. So why should we suddenly consider the alternatives? Because;

  • We know more about computers in general now, enough to handle a little more complexity for the sake of efficiency.
  • There is a shift in everyday computing mediums towards devices with different input mechanisms than mouse and keyboard, e.g. mobile, tablets. Conventional interface concepts are failing on those devices.

Similar to many other terms that are long lost and forgotten in realms of mainstream operating systems, there exist terms like “windowing system”, “window manager” and “desktop environment”. Average Linux or BSD user knows about them, because user either chooses the distribution according to which ones they are distributed with or they are asked to pick one on installation (also partly because the author is not sure if there is an “average” BSD user out there). Others use them everyday without knowing the distinction between them, simply because [they are unaware of the] / [there are no] alternatives.

A windowing system provides a layer of abstraction over the graphical hardware together with some basic functionality for window managers to handle graphical interfaces of programs. A window manager, as the name suggests, manages those graphical interfaces (to actual programs) as windows. The definition of a desktop environment is a little fuzzier than it was five years ago, because modern environments do not completely rely on the desktop metaphor anymore. However, we can simply say a desktop environment is a combination of icons, toolbars, widgets, folders, and all other stuff that helps you interface with the programs and operating system functionality.

The characteristics of a windowing system -in most cases- is not visible to end-user, so I am skipping that part of the combination altogether. Window managers, however, are crucial. Mainstream window manager concepts are compositing and stacking/floating window managers. They actually differ in their capabilities (compositing managers are technically and visually superior), but the important characteristics of such managers are;

  • Each window has a decoration on top of it (the bar that usually includes a window title and “minimize”, ”maximize” and “close” buttons.)
  • Windows can overlap.

One of the most significant alternatives to that approach is tiling window managers. They are actually pretty simple. Their behaviour may vary, but general characteristics are as follows:

  • Users don’t just manage particular windows, they manage the screen instead.
  • Windows don’t float freely on screen and they don’t overlap.
  • User can split the screen horizontally or vertically. Each fragment is called a frame, Each frame can also be subdivided.

  • User accesses windows through frames. There are ways of switching through windows and picking a particular window among the window list.
  • Since you don’t have to hold and move windows with mouse, tiling window managers don’t necessarily provide window decoration.
  • There is an active frame that will encapsulate the newly created window e.g a browser or a file manager. (This one might not be general.)

Some tiling window managers manage windows and frames in more intelligent and autonomous ways while some gives user complete control.

Tiling window managers are around since the beginning of 80’s, even MS Windows 1.0 (1985) featured a basic tiling window system but tiling windows didn’t make it into mainstream. Mostly because;

  • Window management actions on a tiling wm heavily rely on keyboard shortcuts on a conventional PC with input mechanisms like keyboard and mouse. That sets the learning curve of a tiling window manager higher than conventional floating windows.
  • Graphics hardware and displays of personal computers were not good enough. Unless the hardware and display provide enough display resolution, an interface that employs a small area on screen won’t be usable.
  • The floating window manager approach went well with the desktop metaphor.

An average computer/tablet has ridiculously advanced graphics hardware nowadays, and we don’t need the desktop metaphor anymore. Furthermore, devices that avail different input mechanisms like touchscreens are in widespread use today, so only input devices argument still partly applies. (Learning keyboard shortcuts isn’t really that hard after all.) In fact, Microsoft provides a very simplified window tiling alternative with new Metro interface of its Windows 8 operating system. The advantages of tiling window managers are;

  • They maximize screen usage and efficiency of graphical interfaces by tiling non-overlapping windows to the whole screen. Every visible window is completely accessible. This approach is very important for general multitasking computer user profile of today. But it is especially more important to professionals who work on different software from their software stack simultaneously.

  • They eliminate the need for window decorations, which again means more usable screen space.
  • The lack of multiplied superfluous decoration provides elegance of simplicity. User doesn’t get bored of the interface, because the visibility of desktop interface is minimal.

Recent tablet and mobile devices currently employ an “every program runs in fullscreen” approach with some pseudo-workspace-management functionality. (Screen size of most mobile devices are not big enough to avail advanced window management, so they are not the focus of this article.) While this approach is considered mostly adequate for everyday usage of a tablet device, that is subject to change, soon. As more people starts to use their tablets for serious work, they will need more advanced window management. If user writes an article, he/she will need to keep a little dictionary tab on the right side of the screen, a graphics designer will need to split the screen in half and have vectoral graphics application and color scheme editor open, side by side. These specific functionality might be provided by software vendors in an ad-hoc fashion, but it is impossible to anticipate all possible combinations.

There are some experiments to bring the conventional floating window functionality to tablets, which is extremely wrong. Window decoration is completely useless unless it is easily dragged by user. While that is a very easy task using a mouse, it is not so with a finger on touchscreen since human finger is never as precise as a mouse. In order to be useful, such window decoration needs to waste much larger area in a much smaller (and more valuable) screen space. Furthermore, if two windows overlap in such way that they are nearly on top of each other, user will not be able to select the window below, therefore will first move the above window.

Tablet usage is much more natural with a tiling window manager. User can split the screen from specified points horizontally or vertically by a simple finger gesture. The divisions can be destructed with the same gesture in opposite direction. All other common functionality like frame movement and switching through windows can be provided using similar gestures.

Rumor has it that Apple will use Retina Display technology (4x dpi) on iPad3, which is good but they don’t seem to be interested in implementing anything like a tiling wm to their systems any time soon. The author has absolutely no idea what Google does or plans for Android tablet systems. Microsoft, on the other hand, already started creating grounds for tiling window management with Metro:

It is highly possible that either tiling window managers or a successor will eventually dominate the tablet interface market. Popular operating systems are also shifting towards uniform interface systems among different devices. So we may even see real tiling window managers penetrating desktops soon. An important questions is, how that would effect the user interface and web site design. It depends. On the one hand, such shift in user interface management would favor extreme fluid design practices if that successor gives user complete horizontal/vertical frame size control, while on the other hand, designing multiple interfaces for several common frame sizes would be favorable if the frame management is semi-autonomous.

Finally, in case somebody out there is still reading, I want to end this post with some tiling wm suggestions. Being a Lisper, my personal preference for X Window System is Stumpwm, a tiling window manager which perfectly does the job and handles multiple monitor setups much better than big brothers. Another very popular alternative I strongly suggest is xmonad, which is a dynamically tiling wm. There are also good alternatives like awesome that support both floating and tiling windows. I read about some tiling window managers for Windows like bug.n but I have never tried them, so Google is your friend. 🙂

UPDATE: daimrod (in freenode) pointed me here, it seems Amazon currently uses awesome in Kindle Touch.


One Response to “On Tiling Window Managers”

  1. […] we can use them simultaneously (maybe with a little help of tiling window managers that makes it incredibly easy to use programs simultaneously). No duplicated possibly-broken […]

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: