1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
|
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 <i>predictability</i>: 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.2
X11-extras: http://hackage.haskell.org/cgi-bin/hackage-scripts/package/X11-extras-0.3
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
|