Bluetile is a tiling window manager for Linux, 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.

Bluetile started as a university project and topic of my thesis (you can find slides of my talks and the thesis online, but only in German). It now continues as an open source project. See the wiki for more background on the motivation behind Bluetile and its relationship to xmonad.

  • Designed to integrate with the GNOME desktop environment
  • Hybrid approach: Stacking window layout & tiling layouts available
  • All features accessible from mouse, as well as keyboard
  • Maximizing & minimizing windows in all layouts
  • Good multihead support
  • Proper handling of fullscreen applications


Bluetile 0.6 (on 2011/11/26): Now that XMonad 0.10 is out, it was possible to clean up Bluetile's code base and reference modules from xmonad-contrib 0.10 instead.

Furthermore, the modules XMonad.Hooks.ICCCMFocus (workaround for some problems with Java-based applications) and XMonad.Actions.PhysicalScreens (enumerating multiple monitors in a sensible manner) have been incorporated into the standard configuration.

Bluetile 0.5.3 (on 2010/08/10): Bluetile's theme is now configurable, including the font that is used. I also switched back to the old, grey-ish theme. For reference, below is the blue-ish theme, which was used for a few releases in an attempt to make the focused window stand out more. However, it was not very well received, apparently. Everyone is welcome to choose their own color combinations now. :-)

Bluetile should also now build on Ubuntu Maverick Meerkat thanks to a patch by Iain Lane.


Screenshot of stacking window layout Screenshot of tiled vertical layout


Bluetile is available in a number of Linux distributions. Check your package manager!

Bluetile is also available through the HackageDB. The current version is 0.6. You will need a Haskell compiler as well as 'cabal-install' to install Haskell packages form HackageDB. I recommend to get the Haskell Platform which contains all necessary software and is probably available through your distribution. Once you have the Haskell Platform, the following commands will install Bluetile from Hackage: If you get a message about unsatisfied dependencies "gtk" and "glade", you will need to install Gtk2Hs. Your distribution might include packages for it, otherwise you can get it from http://www.haskell.org/gtk2hs/.

If you install as a normal user, Cabal will put the binaries into the directory ~/.cabal/bin by default. Add this directory to your PATH or run the command as given below.

If you encounter problems during installation, have a look at the wiki for some more details.


Preferably you should start Bluetile from a terminal under GNOME + Metacity. Bluetile will replace the currently running window manager (if the window manager supports this) and start up.

This is a list of most keyboard shortcuts for Bluetile:

Win+ReturnLaunch terminal
Win+pLaunch GNOME "Run application" dialog
Win+aSwitch to stacking window layout
Win+sSwitch to tiled horizontal layout
Win+dSwitch to tiled vertical layout
Win+fSwitch to fullscreen layout
Win+jMove focus to the next window
Win+kMove focus to the previous window
Win+SpaceMove focus to the master window
Win+Shift+jSwap the focused window with the next window
Win+Shift+kSwap the focused window with the previous window
Win+Shift+SpaceSwap the focused window with the master window
Win+hShrink the master area
Win+lExpand the master area
Win+uShrink a slave area
Win+iExpand a slave area
Win+,Increment the number of windows in the master area
Win+.Decrement the number of windows in the master area
Win+Shift+cClose the focused window
Win+zMaximize/zoom focused window
Win+mMinimize focused window
Win+Shift+mRestore next minimized window
Win+oShow window menu for focused window
Win+tPush dialog window back into tiling
Win+bToggle to previously displayed workspace
Win+1 .. Win+9, Win+0Switch to workspace N
Win+Shift+1 .. Win+Shift+9, Win+Shift+0Move client to workspace N
Win+w, Win+e, Win+rSwitch to physical/Xinerama screens 1, 2 or 3
Win+Shift+w, Win+Shift+e, Win+Shift+rMove client to physical/Xinerama screen 1, 2 or 3
Win+F5Refresh layout
Win+Shift+qQuit Bluetile

Bluetile can be configured by editing the file ~/.bluetilerc .

One way to set up Bluetile as your default window manager under GNOME is to make sure that the environment variable WINDOW_MANAGER contains the path to the Bluetile binary before GNOME starts. This can be achieved by putting something like the following line into ~/.gnomerc:


Bluetile's repository is located at http://code.haskell.org/~jav/bluetile/. The wiki also has a page discussing the development of Bluetile.

Jan Vornberger