mirror of
https://github.com/xmonad/xmonad.git
synced 2025-05-19 08:30:21 -07:00
150 lines
4.7 KiB
Plaintext
150 lines
4.7 KiB
Plaintext
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:
|
|
|
|
Obtain the dependent libraries, then build with:
|
|
|
|
runhaskell Setup.lhs configure --user --prefix=$HOME
|
|
runhaskell Setup.lhs build
|
|
runhaskell Setup.lhs install --user
|
|
|
|
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, you can find
|
|
them here:
|
|
|
|
http://haskell.org/ghc
|
|
|
|
For example, in Debian you would install GHC with:
|
|
|
|
apt-get install ghc6
|
|
|
|
It shouldn't be necessary to compile GHC from source -- every common
|
|
system has a pre-build binary version.
|
|
|
|
* 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
|
|
|
|
Typically you need: libXinerama libXext libX11
|
|
|
|
* Cabal
|
|
|
|
xmonad requires a recent version of Cabal, >= 1.2.0. If you're using
|
|
GHC 6.8, then it comes bundled with the right version. If you're
|
|
using GHC 6.6.x, you'll need to build and install Cabal from hackage
|
|
first:
|
|
|
|
http://hackage.haskell.org/cgi-bin/hackage-scripts/package/Cabal
|
|
|
|
You can check which version you have with the command:
|
|
|
|
$ ghc-pkg list Cabal
|
|
Cabal-1.2.2.0
|
|
|
|
* Haskell libraries: mtl, unix, X11
|
|
|
|
Finally, you need the Haskell libraries xmonad depends on. Since
|
|
you've a working GHC installation now, most of these will be
|
|
provided. To check whether you've got a package run 'ghc-pkg list
|
|
some_package_name'. You will need the following packages:
|
|
|
|
mtl http://hackage.haskell.org/cgi-bin/hackage-scripts/package/mtl
|
|
unix http://hackage.haskell.org/cgi-bin/hackage-scripts/package/unix
|
|
X11 http://hackage.haskell.org/cgi-bin/hackage-scripts/package/X11
|
|
|
|
* Build xmonad:
|
|
|
|
Once you've got all the dependencies in place (which should be
|
|
straightforward), build xmonad:
|
|
|
|
runhaskell Setup.lhs configure --user --prefix=$HOME
|
|
runhaskell Setup.lhs build
|
|
runhaskell Setup.lhs install --user
|
|
|
|
And you're done!
|
|
|
|
------------------------------------------------------------------------
|
|
|
|
Running xmonad:
|
|
|
|
Add:
|
|
|
|
$HOME/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/cgi-bin/hackage-scripts/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/cgi-bin/hackage-scripts/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
|