Everything that’s old is new again. That’s how I see my rediscovery of tiling windows management for Windows and Linux. I run Bluetile with Gnome on my Fedora Linux machines and WinSplit on my Windows machines (see the figure). I haven’t needed to run it on my Centos servers, but half of them don’t even run a graphical interface.
Desktop and laptop users tend to be used to overlapping windows since this user interface has been a standard for years. But check out the history, and you find that tiled windows used to be more common. Even the first version of Microsoft Windows was tiled. I wrote a text-based tiled window system for the 8-bit MPM operating system many years ago.
Tiling is coming back into vogue with Windows 8 and tablets where space is at a premium but more than one window is often needed. Windows 7 has a nice snap feature for resizing windows. I went looking for a tiled interface to manage multiple large-screen displays, where having more than one app on a screen at a time is preferable. I often want to have a browser on one side and a notepad or word processor on the other to easily cut and paste information.
Linux has dozens of Window managers such as Awesome, dwm, Ion, and xmonad. I stumbled across Bluetile in my searching. I started using this variant of xmonad because I use Gnome a good bit. It’s also written in the Haskell functional programming language.
Bluetile is reasonably well integrated with Gnome, although the min/max icons are characters rather than graphics. I’ve also found a number of nits like missing title bars for applications that I use like rdesktop. I switched to Remmina to access my Windows machines because of this flaw.
Most of these window managers run on top of X Windows, so Linux platforms like Android need other solutions. This may become more of an issue as Android tablets and large-screen embedded applications emerge.
I run a mix of machines in the lab including most flavors of Windows. After finding Bluetile, it was only a short search to find a few Windows alternatives. That’s when I found WinSplit Revolution. Windawesome and Plumb also are out there.
Unlike many Linux tiled window managers, the Windows incarnations must work with the existing Windows window manager. For example, Bluetile can be a standalone window manager or it can work with Gnome, one of the major window managers that ships with many Linux distributions.
How To Tile
Tile management may seem simple, but its complexity becomes apparent when you’re trying to use braindead tile support like that found in Windows and most other overlapping window managers. If they have a tile option, it usually puts all of the windows for all applications into rows or columns.
This isn’t bad if you have two or three windows open, but try it with a dozen like I normally run on a multicore system with multiple screens. It gets worse when I have windows open to multiple virtual machines running on other servers.
The tiled window managers normally take a more refined approach. Bluetile has a template where new windows open an area, causing existing windows to become smaller to make room for the new application. Dragging a window to another area causes another shuffle where the windows move but the sizes remain the same. Typically, I do this to put a window in a larger area when it’s the primary application.
WinSplit uses a different approach. It also has templates for where windows will fit, but windows are then explicitly placed into a pane area. The difference is the window is simply sized to fit into that area. It can be resized, but that doesn’t affect other adjacent windows like it does for Bluetile.
My optimum window manager would combine all these features along with others like tabbed and virtual screen management. It would also integrate remote display management and the ability to group windows and applications together for viewing as well as moving their display windows to other machines and displays.
We’ve all seen TV renditions of users flicking images from screen to screen. As our systems become more interconnected, these types of operations need to be standard features. I haven’t found the optimum interface for my window managers, though I’m trying Compiz. I haven’t had time to write my own, but I’m interested in hearing about your solutions.