]> git.sur5r.net Git - i3/i3status/blob - man/i3status.man
manpage: give a better example of the color_good option (Thanks Kamila)
[i3/i3status] / man / i3status.man
1 i3status(1)
2 ===========
3 Michael Stapelberg <michael+i3@stapelberg.de>
4 v2.2, September 2010
5
6 == NAME
7
8 i3status - Generates a status line for dzen2 or xmobar
9
10 == SYNOPSIS
11
12 i3status [-c configfile] [-h] [-v]
13
14 == OPTIONS
15
16 -c::
17 Specifies an alternate configuration file path. By default, i3status looks for
18 configuration files in the following order:
19
20 1. ~/.i3status/config
21 2. ~/.config/i3status/config (or $XDG_CONFIG_HOME/i3status/config if set)
22 3. /etc/i3status/config
23 4. /etc/xdg/i3status/config (or $XDG_CONFIG_DIRS/i3status/config if set)
24
25 == DESCRIPTION
26
27 i3status is a small program (less than 1000 SLOC) for generating a status bar
28 for dzen2, xmobar or similar programs. It is designed to be very efficient by
29 issuing a very small number of system calls, as one generally wants to update
30 such a status line every second. This ensures that even under high load, your
31 status bar is updated correctly. Also, it saves a bit of energy by not hogging
32 your CPU as much as spawning the corresponding amount of shell commands would.
33
34 == CONFIGURATION
35
36 Since version 2, the configuration file for i3status will be parsed using
37 libconfuse. This makes configuration easier in the programmer’s point of
38 view and more flexible for the user at the same time.
39
40 The basic idea of i3status is that you can specify which "modules" should
41 be used (the order directive). You can then configure each module with its
42 own section. For every module, you can specify the output format. See below
43 for a complete reference.
44
45 .Sample configuration
46 -------------------------------------------------------------
47 general {
48         output_format = "dzen2"
49         colors = true
50         interval = 5
51 }
52
53 order  = "ipv6"
54 order += "disk /"
55 order += "run_watch DHCP"
56 order += "run_watch VPN"
57 order += "wireless wlan0"
58 order += "ethernet eth0"
59 order += "battery 0"
60 order += "cpu_temperature 0"
61 order += "load"
62 order += "time"
63
64 wireless wlan0 {
65         format_up = "W: (%quality at %essid, %bitrate) %ip"
66         format_down = "W: down"
67 }
68
69 ethernet eth0 {
70         # if you use %speed, i3status requires the cap_net_admin capability
71         format_up = "E: %ip (%speed)"
72         format_down = "E: down"
73 }
74
75 battery 0 {
76         format = "%status %percentage %remaining"
77 }
78
79 run_watch DHCP {
80         pidfile = "/var/run/dhclient*.pid"
81 }
82
83 run_watch VPN {
84         pidfile = "/var/run/vpnc/pid"
85 }
86
87 time {
88         format = "%Y-%m-%d %H:%M:%S"
89 }
90
91 load {
92         format = "%5min"
93 }
94
95 cpu_temperature 0 {
96         format = "T: %degrees °C"
97         path = "/sys/devices/platform/coretemp.0/temp1_input"
98 }
99
100 disk "/" {
101         format = "%free"
102 }
103 -------------------------------------------------------------
104
105 === General
106
107 The +colors+ directive will disable all colors if you set it to +false+. You can
108 also specify the colors that will be used to display "good", "degraded" or "bad"
109 values using the +color_good+, +color_degraded+ or +color_bad+ directives,
110 respectively. Those directives are only used if color support is not disabled by
111 the +colors+ directive. The input format for color values is the canonical RGB
112 hexadecimal triplet (with no separators between the colors), prefixed by a hash
113 character ("#").
114
115 *Example configuration*:
116 -------------------------------------------------------------
117 color_good = "#00FF00"
118 -------------------------------------------------------------
119
120 Likewise, you can use the +color_separator+ directive to specify the color that
121 will be used to paint the separator bar. The separator is always output in
122 color, even when colors are disabled by the +colors+ directive.
123
124 The +interval+ directive specifies the time in seconds for which i3status will
125 sleep before printing the next status line.
126
127 Using +output_format+ you can chose which format strings i3status should
128 use in its output. Currently available are:
129
130 dzen2::
131 Dzen is a general purpose messaging, notification and menuing program for X11.
132 It was designed to be scriptable in any language and integrate well with window
133 managers like dwm, wmii and xmonad though it will work with any windowmanger
134 xmobar::
135 xmobar is a minimalistic, text based, status bar. It was designed to work
136 with the xmonad Window Manager.
137 none::
138 Does not use any color codes. Separates values by the pipe symbol.
139
140 === IPv6
141
142 This module gets the IPv6 address used for outgoing connections (that is, the
143 best available public IPv6 address on your computer).
144
145 *Example format_up*: +%ip+
146
147 *Example format_down* +no IPv6+
148
149 === Disk
150
151 Gets used, free, available and total amount of bytes on the given mounted filesystem.
152
153 *Example order*: +disk /mnt/usbstick+
154
155 *Example format*: +%free (%avail)/ %total+
156
157 === Run-watch
158
159 Expands the given path to a pidfile and checks if the process ID found inside
160 is valid (that is, if the process is running). You can use this to check if
161 a specific application, such as a VPN client or your DHCP client is running.
162
163 *Example order*: +run_watch DHCP+
164
165 === Wireless
166
167 Gets the link quality and ESSID of the given wireless network interface. You
168 can specify different format strings for the network being connected or not
169 connected.
170
171 *Example order*: +wireless wlan0+
172
173 *Example format*: +W: (%quality at %essid, %bitrate) %ip+
174
175 === Ethernet
176
177 Gets the IP address and (if possible) the link speed of the given ethernet
178 interface. Getting the link speed requires the cap_net_admin capability. Set
179 it using +setcap cap_net_admin=ep $(which i3status)+.
180
181 *Example order*: +ethernet eth0+
182
183 *Example format*: +E: %ip (%speed)+
184
185 === Battery
186
187 Gets the status (charging, discharging, running), percentage and remaining
188 time of the given battery. If you want to use the last full capacity instead
189 of the design capacity (when using the design capacity, it may happen that
190 your battery is at 23% when fully charged because it’s old. In general, I
191 want to see it this way, because it tells me how worn off my battery is.),
192 just specify +last_full_capacity = true+.
193
194 *Example order*: +battery 0+
195
196 *Example format*: +%status %remaining+
197
198 === CPU-Temperature
199
200 Gets the temperature of the given thermal zone.
201
202 *Example order*: +cpu_temperature 0+
203
204 *Example format*: +T: %degrees °C+
205
206 === CPU Usage
207
208 Gets the percentual CPU usage from +/proc/stat+.
209
210 *Example order*: +cpu_usage+
211
212 *Example format*: +%usage+
213
214 === Load
215
216 Gets the system load (number of processes waiting for CPU time in the last
217 5, 10 and 15 minutes).
218
219 *Example order*: +load+
220
221 *Example format*: +%5min %10min %15min+
222
223 === Time
224
225 Formats the current system time. See +strftime(3)+ for the format.
226
227 *Example order*: +time+
228
229 *Example format*: +%Y-%m-%d %H:%M:%S+
230
231 === DDate
232
233 Outputs the current discordian date in user-specified format. See +ddate(1)+ for
234 details on the format string.
235 *Note*: Neither *%.* nor *%X* are implemented yet.
236
237 *Example order*: +ddate+
238
239 *Example format*: +%{%a, %b %d%}, %Y%N - %H+
240
241 === Volume
242
243 Outputs the volume of the specified mixer on the specified device. Works only
244 on Linux because it uses ALSA.
245
246 *Example order*: +volume master+
247
248 *Example format*: +♪: %volume+
249
250 *Example configuration*:
251 -------------------------------------------------------------
252 volume master {
253         format = "♪: %volume"
254         device = "default"
255         mixer = "Master"
256         mixer_idx = 0
257 }
258 -------------------------------------------------------------
259
260 == Using i3status with dzen2
261
262 After installing dzen2, you can directly use it with i3status. Just ensure that
263 +output_format+ is set to +dzen2+.
264
265 *Example for usage of i3status with dzen2*:
266 --------------------------------------------------------------
267 i3status | dzen2 -fg white -ta r -w 1280 \
268 -fn "-misc-fixed-medium-r-normal--13-120-75-75-C-70-iso8859-1"
269 --------------------------------------------------------------
270
271 == Using i3status with xmobar
272
273 To get xmobar to start, you might need to copy the default configuration
274 file to +~/.xmobarrc+. Also, ensure that the +output_format+ option for i3status
275 is set to +xmobar+.
276
277 *Example for usage of i3status with xmobar*:
278 ---------------------------------------------------------------------
279 i3status | xmobar -o -t "%StdinReader%" -c "[Run StdinReader]"
280 ---------------------------------------------------------------------
281
282 == SEE ALSO
283
284 +strftime(3)+, +date(1)+, +glob(3)+, +dzen2(1)+, +xmobar(1)+
285
286 == AUTHORS
287
288 Michael Stapelberg and contributors
289
290 Thorsten Toepper
291
292 Baptiste Daroussin