Log in



Tiling Window Managers pt.2: Bluetile

Wednesday, July 21st, 2010 by adam

(This is part 2 in a series on tiling window managers.)

What is Bluetile?

From the website:

Bluetile is a tiling window manager designed to integrate with the GNOME desktop environment. It provides both a traditional, stacking layout mode as well as tiling layouts where windows are arranged to use the entire screen without overlapping. Bluetile tries to make the tiling paradigm easily accessible to users coming from traditional window managers by drawing on known conventions and providing both mouse and keyboard access for all features.

In a nutshell, Bluetile is supposed to be the easy way into the tiling window managers paradigm. Does it succeed? Let’s find out.

Getting Started

Install Instructions

If you’re running ArchLinux

In a terminal, type:
$ sudo pacman -S ghc cabal-install gtk2hs-{*} xmonad-contrib
$ cabal update
$ cabal install bluetile

If you’re running Ubuntu

  1. Download the correct package (probably 32-bit) from the Bluetile homepage:
    http://www.bluetile.org/#download
  2. Install with GDebi (should be the default option in Firefox after clicking on the package link)

Running Bluetile

ArchLinux:

Bluetile should be installed under the .cabal/bin folder in your home folder.
To start Bluetile, hit Alt+F2 in Gnome and run:
$ ~/.cabal/bin/bluetile

Ubuntu:

Bluetile should be in your path. Just hit Alt+F2, type “bluetile” in the prompt, and hit Enter.

Using Bluetile

Once it starts, Bluetile pops up a helpful message window that explains the screen elements and some basic hotkeys.

On the left there is a sidebar which shows the available workspaces (10 by default), has buttons for the available window layouts, some buttons to change the layout, and a button to quit Bluetile.

Starting a program places it in the “master area,” which is the biggest frame. As other windows are started, they are in turn placed into the master area and the others are moved into the row of smaller windows to the “slave area” the the bottom (layout S) or side (layout D). Layout F makes the window in the “master area” fill the entire screen, with the other windows hidden behind it.

Hotkeys

One of the more prominent aspects of tiling window manager culture is a preference for the keyboard. There are many reasons for this, but the important thing is that tiling window managers invariably have hotkeys for almost everything.

There are quite a few hotkeys available to navigate and manipulate Bluetile’s areas. Unfortunately, they cannot be easily changed. On the upside (for me anyway), they all use the Super (Mod4 or Windows) key, which (usually) doesn’t interfere with other programs’ hotkeys.

Some useful hotkeys to know:

  • Super + Space: Moves focus to the window in the master area
  • Super + Shift + Space: Moves the focused window to the master area
  • Super + Shift + C: Closes the focused window
  • Super + <number>: Switch to numbered workspace
  • Super + P: Launch Gnome Run dialog
  • Super + Return: Launch terminal
  • Super + Shift + Q: Quit Bluetile

You can resize the areas by dragging the border areas between windows. There are also hotkeys that do the same thing, but they aren’t exactly intuitive.

Some area hotkeys:

  • Super + H or L: Resize the “master area”
  • Super + U or I: Resize the “slave area”
  • Super + Shift + J or K: Swap next/last window with the focused window

There are many more hotkeys available (see the project website).

The Good – What worked well

  • Integrates with Gnome
  • Bluetile is specifically designed to work with Gnome, so you get tiling and Gnome usability all in one environment.

  • Has sidebar that shows essential options
  • Sometimes it’s hard to remember what options are available without a reminder. The sidebar keeps the most important functions available without taxing your memory or making you dig around for documentation. And if you get frustrated, the default Gnome window manager Metacity is just a couple of clicks away.

  • Displays a basic intro on startup
  • For any introduction to a new paradigm, some sort of introduction is A Good Thing. Bluetile helpfully tells you the basics while encouraging experimentation.

The Bad – What didn’t work

  • Complicated to set up compared to others
  • With most window managers, you simply grab the package from your distro’s repos and choose it from the sessions list next time you log in. Bluetile makes you get the package yourself, and run the binary yourself. It’s not exactly difficult if you’re used to it; but for the new users Bluetile is aimed at, it may be too complicated.

  • No easy way to configure
  • While the project website says that a configuration app is planned, currently the only way to change anything about Bluetile is to change the source code. This includes hotkeys, color schemes, and everything else. This is problematic for the target audience; hopefully that configuration app will be ready soon.

  • Visual artifacts from title bars with some windows (Audacious, others)
  • Some window types don’t take well to the forced resizing inherent in window tiling. How a window manager handles these exceptions is a good measure of quality. Bluetile handles these exceptions fine, for the most part, but I encountered some issues with the Audacious media player where Bluetile added title bars to Audacious windows (in spite of EWMH hints to the contrary). When I closed Audacious, these title bars left white retrace artifacts in their wake. I haven’t checked the project’s bug tracker for this yet, so it may be fixed already.

The Ugly – What bothered me

  • Title bars
  • I’m used to Musca, which doesn’t bother with title bars. Most tiling window managers don’t, in my experience. Given the project’s goals, keeping window title bars makes some degree of sense. But they’re not exactly eye-candy, and it looks out of place compared to the rest of the Gnome desktop.

  • Built on xmonad
  • Xmonad needs the full Haskell toolchain to run, which makes it a bit bloated for a window manager. It’s not really a problem, just something that bugs me personally.
    Update: Jan, the author of Bluetile, has informed me that Bluetile only needs the Haskell toolchain to build, not run, so If you are using a binary package (ie. Ubuntu), this is a non-issue. I use ArchLinux, however, and there isn’t a package available.

Final Verdict

Bluetile is a good introduction to the world of tiling window managers. The installation complexity is kind of counter-productive to their stated project goals, though, and without an easy way to change Bluetile’s config options, there’s not a lot of room to grow. That said, it’s definitely the easiest-to-learn tiling window manager available, and not exactly the hardest to install either. Definitely check this out, especially if you’re looking for basic window tiling without sacrificing Gnome’s features.

Incoming search terms for the article:

4 Responses to “Tiling Window Managers pt.2: Bluetile”

  1. Jan says:

    Hi Adam!

    I’m the author of Bluetile. Thank you for taking the time to write this nice introduction and review of Bluetile! I agree with your points under “The Bad” and “The Ugly” and in all of those cases improvement should hopefully happen sooner than later. :-)

    Just wanted to clarify one thing: Bluetile is indeed based on xmonad, but that doesn’t mean it inherits the requirement for a full Haskell toolchain. Xmonad requires Haskell both at compile time as well as runtime, because xmonad’s configuration is a Haskell file as well. Bluetile only requires Haskell at compile time. So if you are not compiling Bluetile yourself, but install it from a package, you don’t need the Haskell toolchain.

    All in all I’m glad to hear that you think Bluetile is a good introduction to tiling window managers. That was the primary goal. :-)

    Best regards!
    Jan

    • adam says:

      Wow, the author himself!

      Thanks for the clarification. I’ve updated the post accordingly. I run ArchLinux, where there isn’t a binary package available, so I did have to compile it myself. You’re right that this is a non-issue in Ubuntu (and Debian, etc.), though.

      And thank you for making Bluetile!

  2. Very nice article, thanks! I’ve subscribed to your RSS feed. Please keep up posting.

  3. [...] Tiling Window Managers pt.2: Bluetile « Arcanotech [...]

Leave a Reply

Tags