1I3STATUS(1)                        i3 Manual                       I3STATUS(1)
2
3
4

NAME

6       i3status - Generates a status line for i3bar, dzen2, xmobar or lemonbar
7

SYNOPSIS

9       i3status [-c configfile] [-h] [-v]
10

OPTIONS

12       -c
13           Specifies an alternate configuration file path. By default,
14           i3status looks for configuration files in the following order:
15
16            1. ~/.config/i3status/config (or $XDG_CONFIG_HOME/i3status/config
17               if set)
18
19            2. /etc/xdg/i3status/config (or $XDG_CONFIG_DIRS/i3status/config
20               if set)
21
22            3. ~/.i3status.conf
23
24            4. /etc/i3status.conf
25

DESCRIPTION

27       i3status is a small program for generating a status bar for i3bar,
28       dzen2, xmobar, lemonbar or similar programs. It is designed to be very
29       efficient by issuing a very small number of system calls, as one
30       generally wants to update such a status line every second. This ensures
31       that even under high load, your status bar is updated correctly. Also,
32       it saves a bit of energy by not hogging your CPU as much as spawning
33       the corresponding amount of shell commands would.
34

CONFIGURATION

36       The basic idea of i3status is that you can specify which "modules"
37       should be used (the order directive). You can then configure each
38       module with its own section. For every module, you can specify the
39       output format. See below for a complete reference.
40
41       Sample configuration.
42
43           general {
44                   output_format = "dzen2"
45                   colors = true
46                   interval = 5
47           }
48
49           order += "ipv6"
50           order += "disk /"
51           order += "run_watch DHCP"
52           order += "run_watch VPNC"
53           order += "path_exists VPN"
54           order += "wireless wlan0"
55           order += "ethernet eth0"
56           order += "battery 0"
57           order += "cpu_temperature 0"
58           order += "memory"
59           order += "load"
60           order += "tztime local"
61           order += "tztime berlin"
62
63           wireless wlan0 {
64                   format_up = "W: (%quality at %essid, %bitrate) %ip"
65                   format_down = "W: down"
66           }
67
68           ethernet eth0 {
69                   format_up = "E: %ip (%speed)"
70                   format_down = "E: down"
71           }
72
73           battery 0 {
74                   format = "%status %percentage %remaining %emptytime"
75                   format_down = "No battery"
76                   status_chr = "⚡ CHR"
77                   status_bat = "🔋 BAT"
78                   status_unk = "? UNK"
79                   status_full = "☻ FULL"
80                   path = "/sys/class/power_supply/BAT%d/uevent"
81                   low_threshold = 10
82           }
83
84           run_watch DHCP {
85                   pidfile = "/var/run/dhclient*.pid"
86           }
87
88           run_watch VPNC {
89                   # file containing the PID of a vpnc process
90                   pidfile = "/var/run/vpnc/pid"
91           }
92
93           path_exists VPN {
94                   # path exists when a VPN tunnel launched by nmcli/nm-applet is active
95                   path = "/proc/sys/net/ipv4/conf/tun0"
96           }
97
98           tztime local {
99                   format = "%Y-%m-%d %H:%M:%S"
100                   hide_if_equals_localtime = true
101           }
102
103           tztime berlin {
104                   format = "%Y-%m-%d %H:%M:%S %Z"
105                   timezone = "Europe/Berlin"
106           }
107
108           load {
109                   format = "%5min"
110           }
111
112           cpu_temperature 0 {
113                   format = "T: %degrees °C"
114                   path = "/sys/devices/platform/coretemp.0/temp1_input"
115           }
116
117           memory {
118                   format = "%used"
119                   threshold_degraded = "10%"
120                   format_degraded = "MEMORY: %free"
121           }
122
123           disk "/" {
124                   format = "%free"
125           }
126
127           read_file uptime {
128                   path = "/proc/uptime"
129           }
130
131
132   General
133       The colors directive will disable all colors if you set it to false.
134       You can also specify the colors that will be used to display "good",
135       "degraded" or "bad" values using the color_good, color_degraded or
136       color_bad directives, respectively. Those directives are only used if
137       color support is not disabled by the colors directive. The input format
138       for color values is the canonical RGB hexadecimal triplet (with no
139       separators between the colors), prefixed by a hash character ("#").
140
141       Example configuration:
142
143           color_good = "#00FF00"
144
145       Likewise, you can use the color_separator directive to specify the
146       color that will be used to paint the separator bar. The separator is
147       always output in color, even when colors are disabled by the colors
148       directive. This option has no effect when output_format is set to i3bar
149       or none.
150
151       The interval directive specifies the time in seconds for which i3status
152       will sleep before printing the next status line.
153
154       Using output_format you can choose which format strings i3status should
155       use in its output. Currently available are:
156
157       i3bar
158           i3bar comes with i3 and provides a workspace bar which does the
159           right thing in multi-monitor situations. It also comes with tray
160           support and can display the i3status output. This output type uses
161           JSON to pass as much meta-information to i3bar as possible (like
162           colors, which blocks can be shortened in which way, etc.).
163
164       dzen2
165           Dzen is a general purpose messaging, notification and menuing
166           program for X11. It was designed to be scriptable in any language
167           and integrate well with window managers like dwm, wmii and xmonad
168           though it will work with any window manager
169
170       xmobar
171           xmobar is a minimalistic, text based, status bar. It was designed
172           to work with the xmonad Window Manager.
173
174       lemonbar
175           lemonbar is a lightweight bar based entirely on XCB. It has full
176           UTF-8 support and is EWMH compliant.
177
178       term
179           Use ANSI Escape sequences to produce a terminal-output as close as
180           possible to the graphical outputs. This makes debugging your config
181           file a little bit easier because the terminal-output of i3status
182           becomes much more readable, but should only used for such quick
183           glances, because it will only support very basic output-features
184           (for example you only get 3 bits of color depth).
185
186       none
187           Does not use any color codes. Separates values by the pipe symbol
188           by default. This should be used with i3bar and can be used for
189           custom scripts.
190
191       It’s also possible to use the color_good, color_degraded, color_bad
192       directives to define specific colors per module. If one of these
193       directives is defined in a module section its value will override the
194       value defined in the general section just for this module.
195
196       If you don’t fancy the vertical separators between modules
197       i3status/i3bar uses by default, you can employ the separator directive
198       to configure how modules are separated. You can also disable the
199       default separator altogether by setting it to the empty string. You
200       might then define separation as part of a module’s format string. This
201       is your only option when using the i3bar output format as the separator
202       is drawn by i3bar directly otherwise. For the other output formats, the
203       provided non-empty string will be automatically enclosed with the
204       necessary coloring bits if color support is enabled.
205
206       i3bar supports Pango markup, allowing your format strings to specify
207       font, color, size, etc. by setting the markup directive to "pango".
208       Note that the ampersand ("&"), less-than ("<"), greater-than (">"),
209       single-quote ("'"), and double-quote (""") characters need to be
210       replaced with "&amp;", "&lt;", "&gt;", "&apos;", and "&quot;"
211       respectively. This is done automatically for generated content (e.g.
212       wireless ESSID, time).
213
214       Example configuration:
215
216           general {
217               output_format = "xmobar"
218               separator = "  "
219           }
220
221           order += "load"
222           order += "disk /"
223
224           load {
225               format = "[ load: %1min, %5min, %15min ]"
226           }
227           disk "/" {
228               format = "%avail"
229           }
230
231   IPv6
232       This module gets the IPv6 address used for outgoing connections (that
233       is, the best available public IPv6 address on your computer).
234
235       Example format_up: %ip
236
237       Example format_down: no IPv6
238
239   Disk
240       Gets used, free, available and total amount of bytes on the given
241       mounted filesystem.
242
243       These values can also be expressed in percentages with the
244       percentage_used, percentage_free, percentage_avail and
245       percentage_used_of_avail formats.
246
247       Byte sizes are presented in a human readable format using a set of
248       prefixes whose type can be specified via the "prefix_type" option.
249       Three sets of prefixes are available:
250
251       binary
252           IEC prefixes (Ki, Mi, Gi, Ti) represent multiples of powers of
253           1024. This is the default.
254
255       decimal
256           SI prefixes (k, M, G, T) represent multiples of powers of 1000.
257
258       custom
259           The custom prefixes (K, M, G, T) represent multiples of powers of
260           1024.
261
262       It is possible to define a low_threshold that causes the disk text to
263       be displayed using color_bad. The low_threshold type can be of
264       threshold_type "bytes_free", "bytes_avail", "percentage_free", or
265       "percentage_avail", where the former two can be prepended by a generic
266       prefix (k, m, g, t) having prefix_type. So, if you configure
267       low_threshold to 2, threshold_type to "gbytes_avail", and prefix_type
268       to "binary", and the remaining available disk space is below 2 GiB, it
269       will be colored bad. If not specified, threshold_type is assumed to be
270       "percentage_avail" and low_threshold to be set to 0, which implies no
271       coloring at all. You can customize the output format when below
272       low_threshold with format_below_threshold.
273
274       You can define a different format with the option "format_not_mounted"
275       which is used if the path does not exist or is not a mount point.
276       Defaults to "".
277
278       Example order: disk /mnt/usbstick
279
280       Example format: %free (%avail)/ %total
281
282       Example format: %percentage_used used, %percentage_free free,
283       %percentage_avail avail
284
285       Example prefix_type: custom
286
287       Example low_threshold: 5
288
289       Example format_below_threshold: Warning: %percentage_avail
290
291       Example threshold_type: percentage_free
292
293   Run-watch
294       Expands the given path to a pidfile and checks if the process ID found
295       inside is valid (that is, if the process is running). You can use this
296       to check if a specific application, such as a VPN client or your DHCP
297       client is running. There also is an option format_down. You can hide
298       the output with format_down="".
299
300       Example order: run_watch DHCP
301
302       Example format: %title: %status
303
304   Path-exists
305       Checks if the given path exists in the filesystem. You can use this to
306       check if something is active, like for example a VPN tunnel managed by
307       NetworkManager. There also is an option format_down. You can hide the
308       output with format_down="".
309
310       Example order: path_exists VPN
311
312       Example format: %title: %status
313
314   Wireless
315       Gets the link quality, frequency and ESSID of the given wireless
316       network interface. You can specify different format strings for the
317       network being connected or not connected. The quality is padded with
318       leading zeroes by default; to pad with something else use
319       format_bitrate, format_noise, format_quality or format_signal.
320
321       The special interface name _first_ will be replaced by the first
322       wireless network interface found on the system (excluding devices
323       starting with "lo").
324
325       Example order: wireless wlan0
326
327       Example format_up: W: (%quality at %essid, %bitrate / %frequency) %ip
328
329       Example format_down: W: down
330
331       Example format_bitrate: "%g %cb/s"
332
333       Example format_noise: "%03d%s"
334
335       Example format_quality: "%03d%s"
336
337       Example format_signal: "%03d%s"
338
339   Ethernet
340       Gets the IP address and (if possible) the link speed of the given
341       ethernet interface. If no IPv4 address is available and an IPv6 address
342       is, it will be displayed.
343
344       The special interface name _first_ will be replaced by the first
345       non-wireless network interface found on the system (excluding devices
346       starting with "lo").
347
348       Example order: ethernet eth0
349
350       Example format_up: E: %ip (%speed)
351
352       Example format_down: E: down
353
354   Battery
355       Gets the status (charging, discharging, unknown, full), percentage,
356       remaining time and power consumption (in Watts) of the given battery
357       and when it’s estimated to be empty. If you want to use the last full
358       capacity instead of the design capacity (when using the design
359       capacity, it may happen that your battery is at 23% when fully charged
360       because it’s old. In general, I want to see it this way, because it
361       tells me how worn off my battery is.), just specify last_full_capacity
362       = true. You can show seconds in the remaining time and empty time
363       estimations by setting hide_seconds = false.
364
365       If you want the battery percentage to be shown in another format, use
366       format_percentage. integer_battery_capacity = true is a legacy option
367       for format_percentage = "%.00f%s"
368
369       If your battery is represented in a non-standard path in /sys, be sure
370       to modify the path property accordingly, i.e. pointing to the uevent
371       file on your system. The first occurrence of %d gets replaced with the
372       battery number, but you can just hard-code a path as well.
373
374       It is possible to define a low_threshold that causes the battery text
375       to be colored color_bad. The low_threshold type can be of
376       threshold_type "time" or "percentage". So, if you configure
377       low_threshold to 10 and threshold_type to "time", and your battery
378       lasts another 9 minutes, it will be colored color_bad.
379
380       To show an aggregate of all batteries in the system, use "all" as the
381       number. In this case (for Linux), the /sys path must contain the "%d"
382       sequence. Otherwise, the number indicates the battery index as reported
383       in /sys.
384
385       Optionally custom strings including any UTF-8 symbols can be used for
386       different battery states. This makes it possible to display individual
387       symbols for each state (charging, discharging, unknown, full) Of course
388       it will also work with special iconic fonts, such as FontAwesome. If
389       any of these special status strings are omitted, the default (CHR, BAT,
390       UNK, FULL) is used.
391
392       Example order (for the first battery): battery 0
393
394       Example order (aggregate of all batteries): battery all
395
396       Example format: %status %remaining (%emptytime %consumption)
397
398       Example format_down: No battery
399
400       Example format_percentage: "%.02f%s"
401
402       Example status_chr: ⚡ CHR
403
404       Example status_bat: 🔋 BAT
405
406       Example status_unk: ? UNK
407
408       Example status_full: ☻ FULL
409
410       Example low_threshold: 30
411
412       Example threshold_type: time
413
414       Example path (%d replaced by title number):
415       /sys/class/power_supply/CMB%d/uevent
416
417       Example path (ignoring the number): /sys/class/power_supply/CMB1/uevent
418
419   CPU-Temperature
420       Gets the temperature of the given thermal zone. It is possible to
421       define a max_threshold that will color the temperature red in case the
422       specified thermal zone is getting too hot. Defaults to 75 degrees C.
423       The output format when above max_threshold can be customized with
424       format_above_threshold.
425
426       Example order: cpu_temperature 0
427
428       Example format: T: %degrees °C
429
430       Example max_threshold: 42
431
432       Example format_above_threshold: Warning T above threshold: %degrees °C
433
434       Example path: /sys/devices/platform/coretemp.0/temp1_input
435
436   CPU Usage
437       Gets the percentual CPU usage from /proc/stat (Linux) or sysctl(3)
438       (FreeBSD/OpenBSD).
439
440       It is possible to define a max_threshold that will color the load value
441       with color_bad in case the CPU average over the last interval is
442       getting higher than the configured threshold. Defaults to 95. The
443       output format when above max_threshold can be customized with
444       format_above_threshold.
445
446       It is possible to define a degraded_threshold that will color the load
447       value with color_degraded in case the CPU average over the last
448       interval is getting higher than the configured threshold. Defaults to
449       90. The output format when above degraded threshold can be customized
450       with format_above_degraded_threshold.
451
452       For displaying the Nth CPU usage, you can use the %cpu<N> format
453       string, starting from %cpu0. This feature is currently not supported in
454       FreeBSD.
455
456       Example order: cpu_usage
457
458       Example format: all: %usage CPU_0: %cpu0 CPU_1: %cpu1
459
460       Example max_threshold: 75
461
462       Example format_above_threshold: Warning above threshold: %usage
463
464       Example degraded_threshold: 25
465
466       Example format_above_degraded_threshold: Warning above degraded
467       threshold: %usage
468
469   Memory
470       Gets the memory usage from system on a Linux system from /proc/meminfo.
471       Other systems are currently not supported.
472
473       As format placeholders, total, used, free, available and shared are
474       available. These will print human readable values. It’s also possible
475       to prefix the placeholders with percentage_ to get a value in percent.
476
477       It’s possible to define a threshold_degraded and a threshold_critical
478       to color the status bar output in color_degraded or color_bad, if the
479       available memory falls below the given threshold. Possible values of
480       the threshold can be any integer, suffixed with an iec symbol (T, G, M,
481       K). Alternatively, the integer can be suffixed by a percent sign, which
482       then gets evaluated relatively to total memory.
483
484       If the format_degraded parameter is given and either the critical or
485       the degraded threshold applies, format_degraded will get used as format
486       string. It acts equivalently to format.
487
488       It’s also possible to define the unit for the various format
489       placeholders. As /proc/meminfo returns the memory in kB they will be
490       converted to the given unit. If no unit is given or the auto option is
491       used, the conversion will select the maximum possible unit.
492
493       As the converted format placeholder will be a decimal number, the
494       number of decimals can be configured via the decimals option. If no
495       such option is given the converted format placeholder will have one
496       decimal.
497
498       As Linux' meminfo doesn’t expose the overall memory in use, there are
499       multiple methods to distinguish the actually used memory.
500
501       Example memory_used_method: memavailable ("total memory" -
502       "MemAvailable", matches free command)
503
504       Example memory_used_method: classical ("total memory" - "free" -
505       "buffers" - "cache", matches gnome system monitor)
506
507       Example order: memory
508
509       Example format: %free %available (%used) / %total
510
511       Example format: %percentage_used used, %percentage_free free,
512       %percentage_shared shared
513
514       Example unit: auto, Ki, Mi, Gi, Ti
515
516       Example decimals: 0, 1, 2, 3
517
518       Example threshold_degraded: 10%
519
520       Example threshold_critical: 5%
521
522       Example format_degraded: Memory LOW: %free
523
524   Load
525       Gets the system load (number of processes waiting for CPU time in the
526       last 1, 5 and 15 minutes). It is possible to define a max_threshold
527       that will color the load value color_bad in case the load average of
528       the last minute is getting higher than the configured threshold.
529       Defaults to 5. The output format when above max_threshold can be
530       customized with format_above_threshold.
531
532       Example order: load
533
534       Example format: %1min %5min %15min
535
536       Example max_threshold: "0.1"
537
538       Example format_above_threshold: Warning: %1min %5min %15min
539
540   Time
541       Outputs the current time in the local timezone. To use a different
542       timezone, you can set the TZ environment variable, or use the tztime
543       module. See strftime(3) for details on the format string.
544
545       Example order: time
546
547       Example format: %Y-%m-%d %H:%M:%S
548
549   TzTime
550       Outputs the current time in the given timezone. If no timezone is
551       given, local time will be used. See strftime(3) for details on the
552       format string. The system’s timezone database is usually installed in
553       /usr/share/zoneinfo. Files below that path make for valid timezone
554       strings, e.g. for /usr/share/zoneinfo/Europe/Berlin you can set
555       timezone to Europe/Berlin in the tztime module. To override the locale
556       settings of your environment, set the locale option. To display time
557       only when the set timezone has different time from localtime, set
558       hide_if_equals_localtime to true.
559
560       Example order: tztime berlin
561
562       Example format: %Y-%m-%d %H:%M:%S %Z
563
564       Example timezone: Europe/Berlin
565
566       Example locale: de_DE.UTF-8
567
568       If you would like to use markup in this section, there is a separate
569       format_time option that is automatically escaped. Its output then
570       replaces %time in the format string.
571
572       Example configuration (markup):
573
574           tztime berlin {
575                   format = "<span foreground='#ffffff'>time:</span> %time"
576                   format_time = "%H:%M %Z"
577                   timezone = "Europe/Berlin"
578                   hide_if_equals_localtime = true
579           }
580
581   DDate
582       Outputs the current discordian date in user-specified format. See
583       ddate(1) for details on the format string. Note: Neither %. nor %X are
584       implemented yet.
585
586       Example order: ddate
587
588       Example format: %{%a, %b %d%}, %Y%N - %H
589
590   Volume
591       Outputs the volume of the specified mixer on the specified device.
592       PulseAudio and ALSA (Linux only) are supported. If PulseAudio is
593       absent, a simplified configuration can be used on FreeBSD and OpenBSD
594       due to the lack of ALSA, the device and mixer options can be ignored on
595       these systems. On these systems the OSS API is used instead to query
596       /dev/mixer directly if mixer_idx is -1, otherwise
597       /dev/mixer+mixer_idx+.
598
599       To get PulseAudio volume information, one must use the following format
600       in the device line:
601
602           device = "pulse"
603
604       or
605
606           device = "pulse:N"
607
608       where N is the index or name of the PulseAudio sink. You can obtain the
609       name of the sink with the following command:
610
611           $ pacmd list-sinks | grep name:
612                      name: <alsa_output.pci-0000_00_14.2.analog-stereo>
613
614       The name is what’s inside the angle brackets, not including them. If no
615       sink is specified the default sink is used. If the device string is
616       missing or is set to "default", PulseAudio will be tried if detected
617       and will fallback to ALSA (Linux) or OSS (FreeBSD/OpenBSD).
618
619       Example order: volume master
620
621       Example format: ♪ (%devicename): %volume
622
623       Example format_muted: ♪ (%devicename): 0%%
624
625       Example configuration:
626
627           volume master {
628                   format = "♪: %volume"
629                   format_muted = "♪: muted (%volume)"
630                   device = "default"
631                   mixer = "Master"
632                   mixer_idx = 0
633           }
634
635       Example configuration (PulseAudio):
636
637           volume master {
638                   format = "♪: %volume"
639                   format_muted = "♪: muted (%volume)"
640                   device = "pulse:1"
641           }
642
643           volume master {
644                   format = "♪: %volume"
645                   format_muted = "♪: muted (%volume)"
646                   device = "pulse:alsa_output.pci-0000_00_14.2.analog-stereo"
647           }
648
649   File Contents
650       Outputs the contents of the specified file. You can use this to check
651       contents of files on your system, for example /proc/uptime. By default
652       the function only reads the first 254 characters of the file, if you
653       want to override this set the Max_characters option. It will never read
654       beyond the first 4095 characters. If the file is not found "no file"
655       will be printed, if the file can’t be read "error read" will be
656       printed.
657
658       Example order: read_file UPTIME
659
660       Example format: "%title: %content"
661
662       Example format_bad: "%title - %errno: %error"
663
664       Example path: "/proc/uptime"
665
666       Example Max_characters: 255
667

UNIVERSAL MODULE OPTIONS

669       When using the i3bar output format, there are a few additional options
670       that can be used with all modules to customize their appearance:
671
672       align
673           The alignment policy to use when the minimum width (see below) is
674           not reached. Either center (default), right or left.
675
676       min_width
677           The minimum width (in pixels) the module should occupy. If the
678           module takes less space than the specified size, the block will be
679           padded to the left and/or the right side, according to the defined
680           alignment policy. This is useful when you want to prevent the whole
681           status line from shifting when values take more or less space
682           between each iteration. The option can also be a string. In this
683           case, the width of the given text determines the minimum width of
684           the block. This is useful when you want to set a sensible minimum
685           width regardless of which font you are using, and at what
686           particular size. Please note that a number enclosed with quotes
687           will still be treated as a number.
688
689       separator
690           A boolean value which specifies whether a separator line should be
691           drawn after this block. The default is true, meaning the separator
692           line will be drawn. Note that if you disable the separator line,
693           there will still be a gap after the block, unless you also use
694           separator_block_width.
695
696       separator_block_width
697           The amount of pixels to leave blank after the block. In the middle
698           of this gap, a separator symbol will be drawn unless separator is
699           disabled. This is why the specified width should leave enough space
700           for the separator symbol.
701
702       Example configuration:
703
704           disk "/" {
705               format = "%avail"
706               align = "left"
707               min_width = 100
708               separator = false
709               separator_block_width = 1
710           }
711

USING I3STATUS WITH DZEN2

713       After installing dzen2, you can directly use it with i3status. Just
714       ensure that output_format is set to dzen2. Note: min_width is not
715       supported.
716
717       Example for usage of i3status with dzen2:
718
719           i3status | dzen2 -fg white -ta r -w 1280 \
720           -fn "-misc-fixed-medium-r-normal--13-120-75-75-C-70-iso8859-1"
721

USING I3STATUS WITH XMOBAR

723       To get xmobar to start, you might need to copy the default
724       configuration file to ~/.xmobarrc. Also, ensure that the output_format
725       option for i3status is set to xmobar. Note: min_width is not supported.
726
727       Example for usage of i3status with xmobar:
728
729           i3status | xmobar -o -t "%StdinReader%" -c "[Run StdinReader]"
730

WHAT ABOUT CPU FREQUENCY?

732       While talking about specific things, please understand this section as
733       a general explanation why your favorite information is not included in
734       i3status.
735
736       Let’s talk about CPU frequency specifically. Many people don’t
737       understand how frequency scaling works precisely. The generally
738       recommended CPU frequency governor ("ondemand") changes the CPU
739       frequency far more often than i3status could display it. The display
740       number is therefore often incorrect and doesn’t tell you anything
741       useful either.
742
743       In general, i3status wants to display things which you would look at
744       occasionally anyways, like the current date/time, whether you are
745       connected to a WiFi network or not, and if you have enough disk space
746       to fit that 4.3 GiB download.
747
748       However, if you need to look at some kind of information more than once
749       in a while, you are probably better off with a script doing that, which
750       pops up. After all, the point of computers is not to burden you with
751       additional boring tasks like repeatedly checking a number.
752

EXTERNAL SCRIPTS/PROGRAMS WITH I3STATUS

754       In i3status, we don’t want to implement process management again.
755       Therefore, there is no module to run arbitrary scripts or commands.
756       Instead, you should use your shell, for example like this:
757
758       Example for prepending the i3status output:
759
760           #!/bin/sh
761           # shell script to prepend i3status with more stuff
762
763           i3status | while :
764           do
765                   read line
766                   echo "mystuff | $line" || exit 1
767           done
768
769       Put that in some script, say .bin/my_i3status.sh and execute that
770       instead of i3status.
771
772       Note that if you want to use the JSON output format (with colors in
773       i3bar), you need to use a slightly more complex wrapper script. There
774       are examples in the contrib/ folder, see
775       https://github.com/i3/i3status/tree/master/contrib
776

SIGNALS

778       When receiving SIGUSR1, i3status’s nanosleep() will be interrupted and
779       thus you will force an update. You can use killall -USR1 i3status to
780       force an update after changing the system volume, for example.
781

SEE ALSO

783       strftime(3), date(1), glob(3), dzen2(1), xmobar(1)
784

AUTHORS

786       Michael Stapelberg and contributors
787
788       Thorsten Toepper
789
790       Baptiste Daroussin
791
792       Axel Wagner
793
794       Fernando Tarlá Cardoso Lemos
795
796
797
798i3status 2.14                     11/09/2021                       I3STATUS(1)
Impressum