/xmonad

The core of xmonad, a small but functional ICCCM-compliant tiling window manager

Primary LanguageHaskellOtherNOASSERTION

                    xmonad : a tiling window manager

                           http://xmonad.org

    xmonad is a tiling window manager for X. Windows are arranged
    automatically to tile the screen without gaps or overlap, maximising
    screen use. Window manager features are accessible from the
    keyboard: a mouse is optional. xmonad is written, configured and
    extensible in Haskell. Custom layout algorithms, key bindings and
    other extensions may be written by the user in config files. Layouts
    are applied dynamically, and different layouts may be used on each
    workspace. Xinerama is fully supported, allowing windows to be tiled
    on several physical screens.

Quick start:

  From hackage:

    cabal update
    cabal install xmonad xmonad-contrib

  Alternatively install development snapshots (from darcs):

    cabal install http://code.haskell.org/xmonad/xmonad.tar.gz \
        http://code.haskell.org/XMonadContrib/xmc.tar.gz

For the full story, read on.

Building:

 Building is quite straightforward, and requires a basic Haskell toolchain.
 On many systems xmonad is available as a binary package in your
 package system (e.g. on Debian or Gentoo). If at all possible, use this
 in preference to a source build, as the dependency resolution will be
 simpler.

 We'll now walk through the complete list of toolchain dependencies.

 * GHC: the Glasgow Haskell Compiler

    You first need a Haskell compiler. Your distribution's package
    system will have binaries of GHC (the Glasgow Haskell Compiler), the
    compiler we use, so install that first. If your operating system's
    package system doesn't provide a binary version of GHC and the
    cabal-install tool, you can find an installer for both here:

        http://haskell.org/platform/

    It shouldn't be necessary to compile GHC from source -- every common
    system has a pre-build binary version.

    Alternatively you can install from hackage

        http://haskell.org/ghc/
        http://haskell.org/cabal/download.html

 * X11 libraries:

    Since you're building an X application, 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 libxinerama-dev libxext-dev

------------------------------------------------------------------------

Running xmonad:

    Add:

         exec $HOME/.cabal/bin/xmonad

    to the last line of your .xsession or .xinitrc file.

------------------------------------------------------------------------

Configuring:

    See the CONFIG document

------------------------------------------------------------------------

XMonadContrib

    There are many extensions to xmonad available in the XMonadContrib
    (xmc) library. Examples include an ion3-like tabbed layout, a
    prompt/program launcher, and various other useful modules.
    XMonadContrib is available at:

        latest release: http://hackage.haskell.org/package/xmonad-contrib

        darcs version:  darcs get http://code.haskell.org/XMonadContrib

------------------------------------------------------------------------

Other useful programs:

 A nicer xterm replacement, that supports resizing better:

    urxvt       http://software.schmorp.de/pkg/rxvt-unicode.html

 For custom status bars:

    dzen        http://gotmor.googlepages.com/dzen
    xmobar http://hackage.haskell.org/package/xmobar

 For a program dispatch menu:

    dmenu       http://www.suckless.org/download/
    gmrun       (in your package system)

Authors:

    Spencer Janssen
    Don Stewart
    Jason Creighton