summaryrefslogtreecommitdiffstats
path: root/CONFIG
blob: 3bf63db536ab2555035d8706958199e34f617fa5 (plain)
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
== Configuring xmonad ==

xmonad is configured by creating and editing the Haskell file:

    ~/.xmonad/xmonad.hs

xmonad then uses default settings from this file as arguments to the
window manager.

== 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" }

This will run 'xmonad', the window manager, with your settings passed as
arguments.

Overriding default settings like this (using "record update syntax"),
will yield the shortest config file, as you only have to describe values
that differ from the defaults.

An alternative is to inline the entire default config file from xmonad,
and edit values you wish to change. This is requires more work, but some
users may find this easier. 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, try mod-q. xmonad will attempt
to compile this file, and run it. If it is unable to, the defaults are
used. This requires GHC and xmonad are in your $PATH settings. If
GHC isn't in your path, you can still 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.