On most of my desktop and laptop systems I run a tiling window manager, either i3, awesome or ratpoison, and the xmobar or i3bar text status bar, filled with data by i3status.These files are needed to get the setup running.
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


Axel’s Tiling Window Manager Setup

History, Background and Reasoning

The Early Days: FVWM

While being a heavy FVWM user for nearly 15 years, I now run tiling window managers on all my “desktops” and laptops, ranging from a first generation 7" ASUS EeePC 701 4G netbook (unfortunately died in early 2014, has been replaced by a 9" ASUS EeePC 900A) over a Sun UltraSparc 10 to a full-fledged multihead workstation from Dalco at work and several generations of Thinkpads ranging from an A31 over a T61 to an X240.

Tasting Blood with Ratpoison

My ASUS EeePC 701 running Debian GNU/Linux Sid was the first box where I did not use FVWM anymore, because with a resolution of 800×480 on a 7 inch screen, you a) want to waste as few pixels as possible by title bars, borders, … and b) most of the time anything else than fullscreen windows doesn’t make sense, moving windows around with the mouse makes even less sense.

So I’ve chosen ratpoison for the EeePC (and would still use it on that box) since it makes windows fullscreen by default and the keybindings are nearly identical to GNU Screen and therefore easy to learn respectively I didn’t have to learn anything to use it.

After more and more fine tuning involving the xmobar text status bar, filled with data by i3status, I started this git repository to track my own changes, to share the setup with some other of my boxes (like the UltraSparc or my bed-side terminal, an older ThinkPad A31).

Advancing to Awesome

Getting used with a fullscreen and tiling setup on the EeePC I more and more wanted something for my everyday ThinkPad T61, too. But while ratpoison is really perfect for the small EeePC screen, it proved too clumsy for more complex window arrangements and multiple virtual desktops.

So I looked through the other tiling window managers in Debian, trying out i3 (3.x versions), scrotwm (nowadays called spectrwm), wmii, awesome and some ion successors (tritium and anion3 the latter now being superseeded by notion). I eventually stuck with awesome, first the 2.x version from Debian 5.0 Lenny, now the 3.x version from Debian 6.0 Squeeze and later.

In general I liked the idea of using the — on Linux mostly unused — Windows key as window manager meta key. I even configured my ratpoison to use that in addition to the original Ctrl-T prefix.

Dropping Awesome in Favour of i3

A few years later I got annoyed by awesome (≥ 3.5) and the awesome-extra widget libraries package diverging (by the latter not being updated to awesome 3.5 and hence becoming unusable unless you put the awesome package on hold with a 3.4.x version), so I looked again at i3 (now the 4.x versions) and eventually started migrating to it.

Repository Name and URLs

So this repository is no more a ratpoison-only setup. But since I neither want to change the repository name nor any URL I decided that I stick with having “ratpoison” in the name. The amount of “rodent” usage you need with this setup hasn’t changed anyway, so without the relation to the window manager of this name, the name is still fitting (as it fits to the window manager of that name :-).


These files are needed to get the setup running. The setup currently runs on Debian Sid, Debian 8 Jessie and Debian 7 Wheezy as well as Ubuntu 14.04 Trusty, and 16.04 Xenial. It probably also still runs on older releases.

Since most of the configuration files included are not expected to reside in .ratpoison, some symlinks are necessary where config file paths cannot be set via command line options or where it would be to tedious to always type them:

~/.gitconfig   → gitconfig
~/.gitignore   → gitignore
~/.xsession    → xsession
~/.screenrc    → screenrc
~/.colordiffrc → colordiffrc
~/.lintianrc   → lintianrc
~/.emacs       → emacs.el

These symbolic links can also be automatically set up by calling bin/setup-symlinks.sh from this repository.

Source Code

Sources available on my own Git server, on GitHub, and on GitLab. (An ancient, read-only and no more updated version can also be found on Gitorious.)


Required Software Packages

Needs at least the following Debian packages (besides essential packages) to be installed:

Used Fonts

Fonts used for xmobar:

Optional Software Packages

Used if available but except the system tray stuff recommended anyway:

Unfortunately necessary for using ETH's new printing system:

Kernel Modules

Linux kernel modules which may be used by some features of xmobar, but do not seem to be loaded automatically (write them into /etc/modules):

  • acpi_cpufreq
  • coretemp

Software Packages used by Scripts or Keybindings

Only used in non-necessary scripts or keybindings:

Software Packages used in Commented Code

Only in commented code (i.e. currently not used):

Other Configuration Files

The repository also contains some configuration files which I usually want on every desktop, but which are more or less independent of the desktop setup respectively could also be used on non-desktop machines.

I’ll probably split them off into their separate repository somewhen in the future, maybe using vcsh.

Debian Metapackages

The project’s subdirectory abe-desktop resembles a Debian source package which generates several .deb metapackages.

Metapackages for my Desktop Setup

The following metapackages provide all the dependencies mentioned above:

  • abe-desktop-ratpoison: Contains dependencies for the ratpoison-based desktop
  • abe-desktop-awesome: Contains dependencies for the awesome-based desktop
  • abe-desktop-common: Contains dependencies common to both, the ratpoison-based and the awesome-based desktop.
  • abe-desktop: Contains dependencies on all of the above plus optional dependencies on other common metapackages I maintain.

Some of these packages recommend or suggest other metapackages which previously were part of this repository but have been split off into their own git repository.

APT Repository

All those metapackages are usually also available from my APT repository.