GROUP TEST TILING MANAGERS

TILING WINDOW MANAGERS GROUP TEST Marco Fioretti tries a way to handle the windows on your screen that will make you forget you ever had a mouse.

On Test Tiling window managers Reclaim your screen and get more done! Bluetile URL http://bluetile.org indow Managers (WMs should be able to on getting Version 0.6 from now on) are those things done, rather than Licence BSD Wessential components continuously having to rearrange A reduced, preconfigured of every desktop computer that windows by hand. To work even version of , made for control, move and decorate the faster, many operations that people who want to start tiling windows in which all our programs traditional WMs attach to icons and as soon as possible. run. In a normal WM, you can spend entries only have keyboard a significant amount of time just shortcuts here. Add to that the Herbstluftwm moving and resizing windows. The possibility of not using the mouse URL http://herbstluftwm.org subjects of this Group Test were even on many popular programs, Version 0.6.2 invented to avoid such annoyances. websites and web services, and you Licence BSD A semi-manual tiler that’s Tiling WMs deal with the can understand why some people much easier to use than its windows you need as if they were, prefer this way of working. name would suggest. you know, tiles – simple! They The very nature of tiling WMs is automatically place and size all the also the reason why this may be the windows in order to always cover Group Test with the ugliest all the available screen space, but screenshots you’ll see for a while, URL http://i3wm.org without any overlap. What really but it’s not our fault. These Version 4.7.2 makes a WM a tiling one, however, programs want to fill every available Licence BSD is the capability to automatically pixel with window content, not with A clean with repeat the whole process, all by panels, menus, icons and real a few little tools that make it itself, every time you open or close window borders. That leaves very, quite powerful. a window. very little that remains visible in a Tiling WMs are made to ignore print-size screenshot. It’s not a bug, Spectrwm eye candy and save your time: you it’s a feature! URL http://spectrwm.org Version 2.5.0 Tiling WMs deal with the windows you Licence ISC “ Yes, Spectrwm tiles windows in need as if they were tiles – simple!” pure UNIX/ style even on Windows (and Mac OS). THE CRUCIAL CRITERIA A window manager shapes our should really be the last time you spend Xmonad interaction with the computer much working on a WM until you decide to URL http://xmonad.org more than raw processing power, or change it. That’s why we only pleasant wallpapers. A really good WM considered WMs actively maintained Version 0.11 makes you forget it exists, because it and supported WMs, which will install Licence BSD doesn’t slow down your CPU and does immediately on any distribution. The of tiling window what you need without you even This time, we deliberately focused on managers. Can do pretty much realising that you asked for it. The same providing a general feeling and an everything, if you just find the should be true for upgrades: it is overview of the possibilities of right recipe for it. unavoidable that you’ll spend some time something that is hard to define by on the initial configuration, but this comparing lists of features.

54 www.linuxvoice.com TILING WINDOW MANAGERS GROUP TEST

Tiling and window management Installation How many ways are there to tile windows? At least the installation should be a point-and-click business.

ost distros have binary packages of these WMs, but if yours doesn’t you Mcan build your own. Actual installation of any of these WMs should not be a problem at all – unless you happen to use a very old or niche distribution, that is. In all other cases, you should easily find a binary package ready to be installed with a few clicks. When this is not the case, it should still be possible to install at least Xmonad and Bluetile without really compiling anything. Haskell programs such as these have their own distro-independent online repository, called HackageDB (https://hackage.haskell.org). All the packages you can find there, including those for Bluetile and Xmonad, can be installed with the so-called Haskell Platform. All you need is binary packages, which really should exist for almost any Two general cases of windows tiling (here shown in Herbstluftwm) that may require special distribution, for that platform and its installer, care: multi-window programs like Gimp (bottom) and temporary, pop-up windows. called cabal. Once you have them, you will also be able to get the two Haskell WMs up and utomatic placement and sizing of In i3, programs are aligned horizontally running in ways similar to using yum or windows, so they don’t overlap or vertically, inside several semi- apt-get from the command line with: Aunless you really want them to, is independent containers. Only the focused #> cabal update the raison d’être of tiling WMs. All our WMs window in the container is displayed. You #> cabal install xmonad provide at least three different tiling get a list of windows at the top of each algorithms, as well as ways to add new container. Spectrwm has a top (or left) ones and remap all keyboard shortcuts so resizeable master area, reserved for the they don’t interfere with those of your applications that “currently need most favourite programs. attention”. All the other windows go into a Some WMs, like Herbsluftwm and i3, separate stack. You can put any window leave you more control of windows. you want in the master area, or in a Others, like Xmonad and Bluetile, are “auto floating layer, and change stacking mode tilers”: they will apply the chosen tiling on the fly. Spectrwm also acknowledges scheme automatically, while still allowing “quirks” – instructions to handle certain manual or custom placement. Spectrwm programs in special ways. For example, is somewhere in the middle. Our this configuration command: competitors can also show one window at Gimp: FLOAT + ANYWHERE a time, full screen basically means “let the Gimp application Multi-window tiling layouts differ in how do as it pleases”. they partition the screen and in how they Herbstluftwm is based on “frames”, decide where the next windows goes: you which can be empty or contain many may have, for example, horizontal or windows, and be split into sub-frames. By vertical stacks, actual grids with rows and default, there are nine full-screen Binary packages for many tiling Wms are available columns, or windows being added in spiral , which you can name in the standard repositories of most distros. sequences (as happens with Xmonad and however you want. Bluetile) or in binary tree structures VERDICT (herbsluftwm and i3). VERDICT Bluetile Herbstluftwm Xmonad makes it easy to have a Bluetile i3 Herbstluftwm different tiling mode in each . Spectrwm i3 Xmonad Spectrwm To place windows manually in this WM, Xmonad press Alt+Left Click and drag them.

www.linuxvoice.com 55 GROUP TEST TILING WINDOW MANAGERS

Customisation User interface User friendliness is a feature. Make your WM work for your. t first sight, the behaviour of all configurability of hotkeys and tiling he Xmonad community has already our tiling window managers is the schemes, and in what you can do with published thousands of lines of code Asame: they all completely cover their optional status bars. Tthat you can use to customise it, from your screen with windows, without any Whatever WM you choose, do yourself complex configuration files to third-party decoration worth mentioning, and let you a favour: before you even get started, extensions and assorted hacks. The “Manage do everything without even looking at your change the default terminal to one of Hooks” mechanism of Xmonad is widely used mouse. The big differences are in the those we recently reviewed in LV004. to define actions to perform automatically on certain windows when, for example, the corresponding programs start. Bluetile Testing changes is easy: save the new code Bluetile is not an independent WM done ancestor, Bluetile starts up with a friendly and type xmonad –recompile to check if it from scratch, but is rather a version of and window title bars with works. If it does, type xmonad --restart or Xmonad, tweaked and preconfigured unusual but effective grid menus (see press Alt+Q to load the new configuration. especially for people without much time. screenshot), and the taskbar has the only Bluetile is very closely related to Xmonad, It’s also set up to integrate well in the built-in “Quit” button you’ll see in this but this doesn’t mean that it can reuse code or traditional Gnome desktop. Group Test. Other buttons increase or tricks developed for its ancestor. Unlike This integration with a mainstream decrease the number of windows in the Xmonad, Bluetile doesn’t come with the is enough, in our Bluetile master area. You can also move capability to compile and load new code on opinion, to make Bluetile quite different windows or maximise any of them with the spot. from Xmonad. For example, unlike its the mouse. Spectrwm partially supports the EWMH (Extended Window Manager Hints) standard. Programs like can use it to control whole workspaces or single windows. You can write simple scripts, for example, that move to a different workspace, resize or maximise a specific Spectrwm window, as Bluetile is the only WM in soon as some condition occurs. this test that by default I3 and Herbstluftwm provide similar gives windows a title bar functionality, but in different ways. The i3-msg with a pop-up, grid-like utility understands the traditional IPC (Inter menu. Process Communication) protocol. Coupled with i3-nagbar it can do almost anything. The herbstclient tool, by contrast, passes Herbstluftwm whatever command you give it from the Herbstluftwm isn’t a random string, but default terminal. To toggle between all command line to Herbstluftwm. The actions German for “Autumn Air”. Its default status the available tiling schemes on the fly, you can perform in this way include, but are bar is the friendlier of the bunch: press Alt+Space. Herbstluftwm is not limited to, workspace reconfiguration and workspace numbers and the name of the configured by issuing commands with the changing the style of the window borders. active window on the left, date and time herbstclient utility. This makes it possible, Another area in which you can play at will is on the right. It is also easy to add gauges in principle, to change the configuration (dynamic) configuration of mouse focus. Both and other graphic information with a automatically, depending on the time of Xmonad and i3, for example, have settings custom panel. The main to the day, system load or any other event dedicated to define whether the focus should remember is Alt+Enter, which opens the that can trigger a script. follow the mouse or not. Disabling this behaviour even temporarily is very useful if you don’t want to find yourself suddenly typing in another window of your laptop because you brushed its touchpad by mistake.

VERDICT Bluetile Herbstluftwm i3 Well done status bar, sensible Spectrwm Xmonad tiling algorithm. The only really difficult part of Herbstluftwm is its name.

56 www.linuxvoice.com TILING WINDOW MANAGERS GROUP TEST i3 I3 is primarily designed for “advanced just grab and drag the borders of a users and developers”. Working in i3 is window with your mouse to resize them. Accessories also meant to be similar to using the The status bar is almost invisible with text editor: many keybindings are similar, the default settings, even for a WM that’s We all like extras. and there is a mode to resize windows supposed to be frugal with pixels. You can independent from normal operations. In change the workspace names from sing the whole screen is all good, but spite of that, this is a WM in which you can numbers to anything you want. sooner or later you’ll probably start Ulonging for some status info. Or maybe you think that you would switch to a tiling WM, if only it had menus and launchers. Don’t worry. There’s no need to give up these niceties in order to use a tiling WM. It is necessary, however, to install and configure It’s hard to see it from this screenshot, but i3 provides some extra tools manually, in the good old both a status bar with Unix and X-Window tradition. The dzen2 utility, workspace buttons, and title for example, adds a spartan, but effective bars for each window. status bar with customisable icons. Other common tools that you can bind to dedicated hotkeys are scrot, for screenshots, Spectrwm and xlock for locking the screen. The feh Spectrwm (originally named “Scrotwm”!), pretty fast and relatively easy to use. We program can add wallpapers. was created “by hackers, for hackers”, with couldn’t figure out why, but on the Fedora Recipes in the Xmonad documentation and ports for Windows and Mac OS X 20 test box used for this Group Test the FAQ explain how to add system trays such as developed to “make those systems useful Alt+Shift+Enter combination did not start trayer, or clipboards like parcellite. Then for Unix people”. Talk about attitude! a terminal as the says. Thanks there’s dmenu, an application launcher that The interface consists of an adequate to the integration with the dmenu would work in any of our WMs. Once you have status bar on the top, complete with launcher, bound to Alt+P, we had three installed it, press Alt+P to launch it, type the workspace numbers (or names), and is terminals open in a beat. first letters of the program you want to start and press Enter. While Xmonad comes out on top in this category, the other WMs aren’t far behind. Spectrewm, for example, can get the content of its status bar from any program associated with its bar_action option. A very powerful choice, reusable also as input for xmobar, is The stacking (on the right) the Conky system monitor: start it in text and master areas of mode, setting out_to_x no and out_to_console Spectrwm. yes, and it will send any system data it is able to collect to the status bar of your WM. Xmonad Xmonad has a really bare look – if you can Looks aside, Xmonad can do, or at least call the absence of practically any visual emulate in some way, practically element in its default configuration a look. everything you are used to do in more Don’t let that fool you though. Xmonad is popular WMs. The lack of a real button or like Emacs: both programs can be hot key to minimise a window, for customised in endless ways. It is possible example, is compensated by the to decorate windows, and easy to make possibility to send the same window to a them float. separate workspace.

Xmonad status bars (the yellow stripe split in two for convenience) can contain any data you want.

VERDICT Xmonad really exploits Bluetile every pixel you give it – no Herbstluftwm default status bar, no buttons, i3 Spectrwm nothing. However, that’s still Xmonad not enough to make certain websites readable when tiled.

www.linuxvoice.com 57 GROUP TEST TILING WINDOW MANAGERS Desktop integration Keep the rest of the desktop happy.

e’re referring to integration example, to make sessions start with with the so-called display the right mix of applications, you are Wmanagers, and with modern supposed to play with .xsession files desktops in general. For example, and similar stuff. This isn’t rocket unless you know what you were doing, science by any means, but it’s probably you might get to the end of your first unknown territory for everybody who session in a and started using Linux less than a few wonder how to get out of it (many of us years ago. had this same sensation the first time Bluetile is the best from this point of we tried Gnome 3). view, since you don’t need a dedicated Telling Gnome (or KDE) to start a tiling WM is easy, and Of course, there are keyboard login to use it. This program is makes it fit in better with the rest of the desktop. shortcuts for this in all the window specifically designed to integrate with managers we’re looking at here. Gnome. You can log in as usual, and sessions list of your display manager. However, depending on what distro and Otherwise, depending on your WM you’re running, the next user may distribution, you will have to edit one or end up staring at a black screen, “You will probably need to more of the files called .session, .xinitrc instead of the normal display Manager, do a bit of extra work keep and .gnomerc in your home directory, and your programs may want to as explained in the relevant “restore from crash” at your next login. novice users happy.” documentation of each WM. Rumour The bottom line: to run a tiling WM on has it that it’s faster to edit the a computer shared with Linux novices then start it from a terminal. To start it .gnomerc file, but we couldn’t verify it in who won’t accept anything different automatically, launch the - our tests. than a vanilla login screen, you will session-properties tool, and add probably need to do a bit of extra work Bluetile to the list of start-up apps. VERDICT to make them happy. If the binary package of a WM Bluetile Herbstluftwm The reason is that tiling WMs often includes a .desktop configuration file i3 Spectrwm deal with these issues according to the (as those for Fedora 20 do) it should Xmonad Linux standard from 10 years ago. For show up without such tricks in the Documentation Ask and it shall be given, seek and ye shall find…

ith programs like these, the There’s even a “How to write a config first and possibly the only file” page, which gives instructions on Wtwo pieces of how to test new configurations. The documentation you may need are, official FAQ and wiki are great too. The without question, a cheatsheet with all official blog and Twitter account are Cheatsheets are an absolute must when using a tiling WM. the available hot keys, and the dead, but the mailing list, Reddit group instructions to remap those keys to and IRC channel (#xmonad at irc. whatever you prefer. There’s a good, if freenode.net) are active. Luckily, a great tutorial on the Arch incomplete cheatsheet with the main The homepage of Bluetile offers just Linux wiki (https://wiki.archlinux.org/ default bindings for Xmonad shown in a list of the most used hotkeys. That index.php/spectrwm) fills this void. The the screenshot, which you can isn’t a problem, as you can reuse most two man pages for Herbstluftwm and download at www.haskell.org/ of the XMonad resources to learn how its valet application, herbstclient, haskellwiki/File:Xmbindings.png. to use and configure Bluetile. remain the primary sources of Xmonad also has the most After the Xmonad/Bluetile pair, the information for this WM. documentation and online support. The best documentation is that of i3: much mandatory starting point is the official less than that for the Haskell duo, but VERDICT Guided Tour (http://xmonad.org/tour. more than enough to explain everything Bluetile Herbstluftwm html). In addition to that, the website you may need. The Spectrwm man i3 Spectrwm offers many links to guides for pretty page is good, but is pretty much the Xmonad much anything you may think of. only official documentation there is.

58 www.linuxvoice.com TILING WINDOW MANAGERS GROUP TEST OUR VERDICT Tiling window managers

e said it right at the monitor, before deciding that tiling You can easily complement the Xmonad status bar with a system beginning: a window is not for you. tray for icons and notifiers of any kind. Wmanager forces you to Herbstluftwm is a worthy effort, reconsider how you use your but not really ahead of the 1st Xmonad computer. Therefore, in a Group competition in any field. The same Licence BSD Version 0.11 Test like this, feature lists matter could be said for Spectrwm. Bluetile less than helping you to ask is good, but, in our opinion, only http://xmonad.org yourself the right questions. Can because it is a (very well done) The current version of Xmonad is some years old, but that’s only you be more productive with Xmonad showcase. because the code is completely mature. nothing to click on, and windows We like i3 a lot. It’s simple, well that keep resizing themselves to designed and documented, and 2nd i3 completely hide that wonderful accessories like the nagbar and Licence BSD Version 4.7.2 wallpaper of your last holiday? i3-msg are very powerful. First, a warning: the first time that Xmonad has been defined by its http://i3wm.org you’re reading a web page and click developers as more of a “ for I3 is a good match between completeness, ease of use, and on “Open Link In New Window” writing tiling WMs” than an actual, very powerful tools to extend it. 3rd Spectrwm “Can you really be more productive with Licence ISC Version 2.5.0 windows that keep resizing themselves? ” http://spectrwm.org It may take a bit more time to make it work just like you need, you’ll find that the page you were finished product, and we tend to but the “quirks” and other features of Spectrwm can do a lot. just reading suddenly gets four agree. You can and should build times smaller and flies to another yourself your perfect tiling WM with part of the screen. You may find the components that Xmonad 4th Herbstluftwm this a little annoying. What’s more, provides. Yes, we know: Haskell Licence BSD Version 0.6.2 several popular websites become looks like some ancient scroll http://spectrwm.org completely unusable if the browser straight from Atlantis but… do you A great tool, and dynamically reconfigurable with easy shell window is too narrow. To use such really care? With so many ready scripts – it just needs more documentation. sites in a tiling WM (without having configuration files online, and its to zoom out so much that it makes active community, you just need to your eyes hurt), you must learn to ask politely to find out what code 5th Bluetile make the browser window float, at (or lines in a configuration file) you Licence BSD Version 0.6 least temporarily. need to copy and paste to get http://bluetile.org So, be patient! Schedule at least a Xmonad working right for you. Bluetile comes in last only because we wanted to put couple of hours to practise, with a So Xmonad it is – but you may completely independent projects first – it’s still a great WM! printed cheatsheet right beside your wish to practise with Bluetile first… YOU MAY ALSO WISH TO TRY… If you’ve been bitten by the tiling bug you’ll for volume control and clipboard, email compiler and know how to start it. Alopex and find plenty out there to try. Bspwm, for notification and supports autohiding widgets. Monsterwm have the same requirement. example, does things the old Unix way: it The common ancestor and inspiration for Want more? Point your favourite browser doesn’t do much by itself, but you can glue it all the current tiling managers for Linux is to the tiling window manager comparison together with a few small utilities to make it called , which is still around. Its main table at the fantastic wiki do what you want. Besides, it can split any disadvantage is that you have to recompile it (https://wiki.archlinux.org/index.php/ window in two whenever you feel like it. Then to make it load changes in configuration. This Comparison_of_Tiling_Window_ there is , which has ready shortcuts isn’t really a big deal, but you need to install a Managers#Comparison_table).

www.linuxvoice.com 59