Is there a keyboard-centric desktop/WM available?

I know of the awesome window manager, which after some customization may suit my desires, but I was wondering if there is a keyboard-centric desktop environment that doesn't require too much tweaking to make it really useful. Of course gnome and I'm sure KDE have nice shortcuts, and the ability to set them up how you want, but that becomes a problem because in a lot of cases the keyboard ends out conflicting with built-in program behavior.

Any suggestions?


There are plenty! (However, all the ones that I know of are also tiling window managers.)

  • XMonad is likely the one with the largest user community. It has extensive documentation and works well with GNOME/EWMH extensions (albeit you have to activate them in the configuration file). The configuration file has Haskell syntax, but it's certainly possible to edit it without knowing much about Haskell, by just copying+pasting examples from the documentation. Default keybindings are vim-inspired, though they can all be remapped (including using chained keybindings like Emacs' C-a C-b C-c). It's available in Ubuntu as package xmonad.

  • Bluetile is an offspring of XMonad: it supports a simplified configuration file, and integrates well with the GNOME desktop by default. Unfortunately, it's not available in Ubuntu 10.04, so you have to install from source.

  • DWM is the "inspiring father" of XMonad and Awesome. It's very lean and fast, and available as package dwm in Ubuntu 10.04. However, by design, to change the configuration you have to edit a header file in the sources and recompile; most documentation about the available options is only available as mailing list posts. It does not support GNOME/EWMH by default, you will have to patch it; the Echinus fork of DWM started this way. Most dwm users will frown upon a "desktop environment" so it's probably not the right choice if you like GNOME gimmicks. Default key bindings are vim-like; they can be remapped, but there's no option for chained key-combos.

  • Awesome started off as a fork of DWM.

  • Ion is a tiling window manager fully programmable in Lua: also the "configuration file" is a Lua script, so you can map any key to any action (provided you know enough Lua for the task). No support for GNOME or EWMH extensions, as far as I know. Available in Ubuntu 10.04 as package ion3.

  • wmii is the predecessor of DWM (same author). It can be fully controlled by the keyboard, but has a smaller selection of layouts, and the configuration format is based on a "virtual filesystem", which makes very complex things possible but (IMHO) also simple things rather complicated. Available in Ubuntu 10.04 as package wmii.

  • larswm can configure a key binding for all the operations it supports. Documentation comes in the form of a man page, clear and complete. The user community is now very small, and the mailing list used to be silent for months. No support for EWMH/desktop extensions. Available as package larswm.

  • ratpoison, as the name says, forces you not to use the mouse. Every action is accomplished by a key stroke. Default keybindings are inspired by GNU screen and Emacs; they can be rebound, subject to the constraint that there is always a global "prefix key" to initiate the action. StumpWM is a rewrite of ratpoison in Common Lisp, which adds the nice option to hack the WM while you're running it. No support for EWMH/desktop extensions (by design, I'd say). Both are available in Ubuntu 10.04 (packages ratpoison and stumpwm).


Use Meta or Ctrl-Alt modifiers for desktop shortcuts.

Most programs use Ctrl or Alt modifiers for their shortcuts (or use the function keys with no modifiers).

Most programs don't use Ctrl-Alt shortcuts and almost never use Meta shortcuts, so you should be safe using these without conflict.