xmonad : a lightweight X11 window manager. http://xmonad.org ------------------------------------------------------------------------ About: Xmonad is a tiling window manager for X. Windows are managed using automatic tiling algorithms, which can be dynamically configured. Windows are arranged so as to tile the screen without gaps, maximising screen use. All features of the window manager are accessible from the keyboard: a mouse is strictly optional. Xmonad is written and extensible in Haskell, and custom layout algorithms may be implemented by the user in config files. A guiding principle of the user interface is predictability: users should know in advance precisely the window arrangement that will result from any action, leading to an intuitive user interface. Xmonad provides three tiling algorithms by default: tall, wide and fullscreen. In tall or wide mode, all windows are visible and tiled to fill the plane without gaps. In fullscreen mode only the focused window is visible, filling the screen. Alternative tiling algorithms are provided as extensions. Sets of windows are grouped together on virtual workspaces and each workspace retains its own layout. Multiple physical monitors are supported via Xinerama, allowing simultaneous display of several workspaces. Adhering to a minimalist philosophy of doing one job, and doing it well, the entire code base remains tiny, and is written to be simple to understand and modify. By using Haskell as a configuration language arbitrarily complex extensions may be implemented by the user using a powerful `scripting' language, without needing to modify the window manager directly. For example, users may write their own tiling algorithms. ------------------------------------------------------------------------ Building: Get the dependencies Firstly, you'll need the C X11 library headers. On many platforms, these come pre-installed. For others, such as Debian, you can get them from your package manager: apt-get install libx11-dev It is likely that you already have some of these dependencies. To check whether you've got a package run 'ghc-pkg list some_package_name' mtl http://hackage.haskell.org/cgi-bin/hackage-scripts/package/mtl-1.0 unix http://hackage.haskell.org/cgi-bin/hackage-scripts/package/unix-2.0 X11 http://hackage.haskell.org/cgi-bin/hackage-scripts/package/X11-1.2.3 X11-extras: http://hackage.haskell.org/cgi-bin/hackage-scripts/package/X11-extras-0.4 And then build with Cabal: runhaskell Setup.lhs configure --prefix=$HOME runhaskell Setup.lhs build runhaskell Setup.lhs install --user ------------------------------------------------------------------------ Notes for using the darcs version If you're building the darcs version of xmonad, be sure to also use the darcs version of X11-extras, which is developed concurrently with xmonad. darcs get http://code.haskell.org/X11-extras Not using X11-extras from darcs, is the most common reason for the darcs version of xmonad to fail to build. ------------------------------------------------------------------------ Running xmonad: Add: $HOME/bin/xmonad to the last line of your .xsession or .xinitrc file. ------------------------------------------------------------------------ XMonadContrib There are various contributed modules that can be used with xmonad. Examples include an ion3-like tabbed layout, a prompt/program launcher, and various other useful modules. XMonadContrib is available at: 0.3 release: http://www.xmonad.org/XMonadContrib-0.3.tar.gz darcs version: darcs get http://code.haskell.org/XMonadContrib ------------------------------------------------------------------------ Other useful programs: For a program dispatch menu: dmenu http://www.suckless.org/download/ or gmrun (in your package system) For custom status bars: dzen http://gotmor.googlepages.com/dzen A nicer xterm replacment, that supports resizing better: urxvt http://software.schmorp.de/pkg/rxvt-unicode.html Authors: Spencer Janssen Don Stewart Jason Creighton