aboutsummaryrefslogtreecommitdiffstats
path: root/CONFIG
blob: e7c5f4179dd5b4a6020cc5712ef847abff695bab (plain) (blame)
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
== Configuring xmonad ==

xmonad is configured by creating and editing the Haskell file:

    ~/.xmonad/xmonad.hs

xmonad then uses settings from this file as arguments to the window manager,
on startup.

== A simple example ==

Here is a basic example, which takes defaults from xmonad, and overrides 
the border width, default terminal, and some colours:

    --
    -- An example, simple ~/.xmonad/xmonad.hs file.
    -- It overrides a few basic settings, reusing all the other defaults,
    -- 

    import XMonad

    main = xmonad $ defaultConfig
        { borderWidth        = 2
        , terminal           = "urxvt"
        , normalBorderColor  = "#cccccc"
        , focusedBorderColor = "#cd8b00" }

You can find the defaults in the file:

    XMonad/Config.hs

== Checking your xmonad.hs is correct ==

Place this text in ~/.xmonad/xmonad.hs, and then check that it is
syntactically and type correct by loading it in the Haskell
interpreter:

    $ ghci ~/.xmonad/xmonad.hs
    GHCi, version 6.8.1: http://www.haskell.org/ghc/  :? for help
    Loading package base ... linking ... done.
    Ok, modules loaded: Main.

    Prelude Main> :t main
    main :: IO ()

Ok, looks good.

== Loading your configuration ==

To have xmonad start using your settings, type 'mod-q'.  xmonad will
then load this new file, and run it.  If it is unable to, the defaults
are used. 

To load succesfully, both 'xmonad' and 'ghc' must be in your $PATH
environment variable.  If GHC isn't in your path, for some reason, you
can compile the xmonad.hs file yourself:

    $ cd ~/.xmonad
    $ ghc --make xmonad.hs
    $ ls
    xmonad    xmonad.hi xmonad.hs xmonad.o

When you hit mod-q, this newly compiled xmonad will be used.

== Where are the defaults? ==

The default configuration values are defined in the source file:

    XMonad/Config.hs

the XConfig data structure itself is defined in:

    XMonad/Core.hs

== Extensions ==

Since the xmonad.hs file is just another Haskell module, you may import
and use any Haskell code or libraries you wish. For example, you can use
things from the xmonad-contrib library, or other code you write
yourself.