aboutsummaryrefslogtreecommitdiff
path: root/dwmblocks.1
blob: d6872cc354cf0a4a51dbc458392ef185bb757f3a (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
.TH dwmblocks 1
.SH NAME
dwmblocks \- Modular status bar for dwm
.SH SYNOPSIS
.B dwmblocks
.RB [OPTIONS]
.SH DESCRIPTION
dwmblocks is a generator for the status bar of
.BR dwm (1).
.P
The status bar is made from concatenating "blocks" together.  Each
block is a shell script whose text output is used as part of the
status bar.  Blocks may be added or removed by editing the config.h
file.
.P
The block data structure contains the script name, an update interval
and an update signal.  The update interval defines the period (in
seconds) for each call to the corresponding script, replacing the
output.  The update signal defines a signal by which that block may be
forcibly called to replace output.
.P
The concatenated output of each block is then fed to the
.BR xsetroot (1)
command which sets the bar for dwm.
.SH OPTIONS
.TP
.B \-p
prints string for bar instead of setting X root.
.TP
.B \-d
sets delimiter.
.SH USAGE
dwmblocks is a single binary which can be executed at anytime, setting
the X window root.  Only one instance is expected to be executing at
any one time, though multiple instances will simply overwrite each
other.
.P
It is recommended to call dwmblocks early in the init process of your
system, close to when dwm is executed if possible.  See
https://git.aryadevchavali.com/dotfiles/tree/XServer/.xinitrc for an
example.
.SH CUSTOMIZATION
dwmblocks is customised by creating a custom config.h and
(re)compiling the source code. This keeps it fast, secure and simple.
.P
While some blocks may only require periodic calls (using the update
interval), others may require some external action to require a call.
A classical example is a volume block.  Volume may be altered based on
an external program.  Though simply setting a small update interval
may work adequately, a better solution is to force dwmblocks to update
that specific block when a change in volume is requested by the user.
This is done through sending a signal to the dwmblocks process.
.P
Say the update signal for the volume block is 10.  To force an update,
one may perform:
.sp
.RS 4
.nf
kill -44 $(pidof) dwmblocks
.fi
.RE
.P
using
.BR kill (1)
and
.BR pidof (1).
For a block with an update signal x, the kill command uses -<x+10>.

.SH SEE ALSO
.BR dmenu (1),
.BR st (1),
.SH BUGS
Send all bug reports with a patch to aryadev@aryadevchavali.com