about summary refs log tree commit diff stats
path: root/README
blob: b4fde501384219f90bccb506287dbf4dfb7b8d68 (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
dwm - dynamic window manager
============================
dwm is an extremely fast, small, and dynamic window manager for X.


Requirements
------------
In order to build dwm you need the Xlib header files.


Installation
------------
Edit config.mk to match your local setup (dwm is installed into
the /usr/local namespace by default).

Afterwards enter the following command to build and install dwm (if
necessary as root):

    make clean install


Running dwm
-----------
Add the following line to your .xinitrc to start dwm using startx:

    exec dwm

In order to connect dwm to a specific display, make sure that
the DISPLAY environment variable is set correctly, e.g.:

    DISPLAY=foo.bar:1 exec dwm

(This will start dwm on display :1 of the host foo.bar.)

In order to display status info in the bar, you can do something
like this in your .xinitrc:

    while true
    do
        echo `date` `uptime | sed 's/.*,//'`
        sleep 1
    done | dwm


Configuration
-------------
The configuration of dwm is done by creating a custom config.h
and (re)compiling the source code.
.sd { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Doc */ .highlight .s2 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Double */ .highlight .se { color: #0044dd; background-color: #fff0f0 } /* Literal.String.Escape */ .highlight .sh { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Heredoc */ .highlight .si { color: #3333bb; background-color: #fff0f0 } /* Literal.String.Interpol */ .highlight .sx { color: #22bb22; background-color: #f0fff0 } /* Literal.String.Other */ .highlight .sr { color: #008800; background-color: #fff0ff } /* Literal.String.Regex */ .highlight .s1 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Single */ .highlight .ss { color: #aa6600; background-color: #fff0f0 } /* Literal.String.Symbol */ .highlight .bp { color: #003388 } /* Name.Builtin.Pseudo */ .highlight .fm { color: #0066bb; font-weight: bold } /* Name.Function.Magic */ .highlight .vc { color: #336699 } /* Name.Variable.Class */ .highlight .vg { color: #dd7700 } /* Name.Variable.Global */ .highlight .vi { color: #3333bb } /* Name.Variable.Instance */ .highlight .vm { color: #336699 } /* Name.Variable.Magic */ .highlight .il { color: #0000DD; font-weight: bold } /* Literal.Number.Integer.Long */
c{0: 0 (((1 integer)) <- ((copy)) ((2 literal))) -- nil
c{0: 1 (((2 integer)) <- ((copy)) ((23 literal))) -- nil
c{0: 2 (((3 boolean)) <- ((copy)) ((nil literal))) -- nil
c{0: 3 (((4 integer)) <- ((copy)) ((24 literal))) -- nil
c{0: 4 (((5 boolean)) <- ((copy)) ((t literal))) -- nil
c{0: 5 (((6 integer)) <- ((copy)) ((1 literal))) -- nil
c{0: 6 (((7 integer-boolean-pair-array-address)) <- ((copy)) ((1 literal))) -- nil
c{0: 7 (((8 integer-boolean-pair-address)) <- ((index-address)) ((7 integer-boolean-pair-array-address) (deref)) ((6 integer))) -- nil
c{1: 0 ✓ (((1 integer)) <- ((copy)) ((2 literal)))
c{1: 1 ✓ (((2 integer)) <- ((copy)) ((23 literal)))
c{1: 2 ✓ (((3 boolean)) <- ((copy)) ((nil literal)))
c{1: 3 ✓ (((4 integer)) <- ((copy)) ((24 literal)))
c{1: 4 ✓ (((5 boolean)) <- ((copy)) ((t literal)))
c{1: 5 ✓ (((6 integer)) <- ((copy)) ((1 literal)))
c{1: 6 ✓ (((7 integer-boolean-pair-array-address)) <- ((copy)) ((1 literal)))
c{1: 7 ✓ (((8 integer-boolean-pair-address)) <- ((index-address)) ((7 integer-boolean-pair-array-address) (deref)) ((6 integer)))
cn0: convert-names in main
cn0: (((1 integer)) <- ((copy)) ((2 literal))) nil nil
cn0: checking arg ((2 literal))
cn0: checking oarg ((1 integer))
maybe-add: ((1 integer))
cn0: (((2 integer)) <- ((copy)) ((23 literal))) nil nil
cn0: checking arg ((23 literal))
cn0: checking oarg ((2 integer))
maybe-add: ((2 integer))
cn0: (((3 boolean)) <- ((copy)) ((nil literal))) nil nil
cn0: checking arg ((nil literal))
cn0: checking oarg ((3 boolean))
maybe-add: ((3 boolean))
cn0: (((4 integer)) <- ((copy)) ((24 literal))) nil nil
cn0: checking arg ((24 literal))
cn0: checking oarg ((4 integer))
maybe-add: ((4 integer))
cn0: (((5 boolean)) <- ((copy)) ((t literal))) nil nil
cn0: checking arg ((t literal))
cn0: checking oarg ((5 boolean))
maybe-add: ((5 boolean))
cn0: (((6 integer)) <- ((copy)) ((1 literal))) nil nil
cn0: checking arg ((1 literal))
cn0: checking oarg ((6 integer))
maybe-add: ((6 integer))
cn0: (((7 integer-boolean-pair-array-address)) <- ((copy)) ((1 literal))) nil nil
cn0: checking arg ((1 literal))
cn0: checking oarg ((7 integer-boolean-pair-array-address))
maybe-add: ((7 integer-boolean-pair-array-address))
cn0: (((8 integer-boolean-pair-address)) <- ((index-address)) ((7 integer-boolean-pair-array-address) (deref)) ((6 integer))) nil nil
cn0: checking arg ((7 integer-boolean-pair-array-address) (deref))
maybe-add: ((7 integer-boolean-pair-array-address) (deref))
cn0: checking arg ((6 integer))
maybe-add: ((6 integer))
cn0: checking oarg ((8 integer-boolean-pair-address))
maybe-add: ((8 integer-boolean-pair-address))
cn1: (((1 integer)) <- ((copy)) ((2 literal)))
cn1: (((2 integer)) <- ((copy)) ((23 literal)))
cn1: (((3 boolean)) <- ((copy)) ((nil literal)))
cn1: (((4 integer)) <- ((copy)) ((24 literal)))
cn1: (((5 boolean)) <- ((copy)) ((t literal)))
cn1: (((6 integer)) <- ((copy)) ((1 literal)))
cn1: (((7 integer-boolean-pair-array-address)) <- ((copy)) ((1 literal)))
cn1: (((8 integer-boolean-pair-address)) <- ((index-address)) ((7 integer-boolean-pair-array-address) (deref)) ((6 integer)))
schedule: main
run: main 0: (((1 integer)) <- ((copy)) ((2 literal)))
run: main 0: 2 => ((1 integer))
mem: ((1 integer)): 1 <= 2
run: main 1: (((2 integer)) <- ((copy)) ((23 literal)))
run: main 1: 23 => ((2 integer))
mem: ((2 integer)): 2 <= 23
run: main 2: (((3 boolean)) <- ((copy)) ((nil literal)))
run: main 2: nil => ((3 boolean))
mem: ((3 boolean)): 3 <= nil
run: main 3: (((4 integer)) <- ((copy)) ((24 literal)))
run: main 3: 24 => ((4 integer))
mem: ((4 integer)): 4 <= 24
run: main 4: (((5 boolean)) <- ((copy)) ((t literal)))
run: main 4: t => ((5 boolean))
mem: ((5 boolean)): 5 <= t
run: main 5: (((6 integer)) <- ((copy)) ((1 literal)))
run: main 5: 1 => ((6 integer))
mem: ((6 integer)): 6 <= 1
run: main 6: (((7 integer-boolean-pair-array-address)) <- ((copy)) ((1 literal)))
run: main 6: 1 => ((7 integer-boolean-pair-array-address))
mem: ((7 integer-boolean-pair-array-address)): 7 <= 1
run: main 7: (((8 integer-boolean-pair-address)) <- ((index-address)) ((7 integer-boolean-pair-array-address) (deref)) ((6 integer)))
mem: ((6 integer)) => 1
array-len: ((1 integer-boolean-pair-array))
mem: ((1 integer)) => 2
run: main 7: 4 => ((8 integer-boolean-pair-address))
mem: ((8 integer-boolean-pair-address)): 8 <= 4
schedule: done with routine nil