]> git.sur5r.net Git - i3/i3.github.io/blobdiff - docs/4.16/i3status.html
save docs for 4.16
[i3/i3.github.io] / docs / 4.16 / i3status.html
diff --git a/docs/4.16/i3status.html b/docs/4.16/i3status.html
new file mode 100644 (file)
index 0000000..568e79c
--- /dev/null
@@ -0,0 +1,669 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"\r
+    "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">\r
+<head>\r
+<link rel="icon" type="image/x-icon" href="/favicon.ico">\r
+<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />\r
+<meta name="generator" content="AsciiDoc 8.6.8" />\r
+<title>i3: i3status(1)</title>\r
+<link rel="stylesheet" href="/css/style.css" type="text/css" />\r
+<link rel="stylesheet" href="/css/xhtml11.css" type="text/css" />\r
+<script type="text/javascript">\r
+/*<![CDATA[*/\r
+document.addEventListener("DOMContentLoaded", function(){asciidoc.footnotes(); asciidoc.toc(2);}, false);\r
+/*]]>*/\r
+</script>\r
+<script type="text/javascript" src="/js/asciidoc-xhtml11.js"></script>\r
+</head>\r
+<body class="article">\r
+\r
+        <div id="main">\r
+            <a href="/"><h1 id="title">i3 - improved tiling WM</h1></a>\r
+                        <ul id="nav">\r
+                                <li><a style="border-bottom: 2px solid #fff" href="/docs">Docs</a></li>\r
+                                <li><a href="/screenshots">Screens</a></li>\r
+                                <li><a href="https://faq.i3wm.org/">FAQ</a></li>\r
+                                <li><a href="/contact">Contact</a></li>\r
+                                <li><a href="https://github.com/i3/i3/issues">Bugs</a></li>\r
+                        </ul>\r
+        <br style="clear: both">\r
+<div id="content">\r
+<div id="header">\r
+<h1>i3status(1)</h1>\r
+<span id="author">Michael Stapelberg</span><br />\r
+<span id="email"><tt>&lt;<a href="mailto:michael@i3wm.org">michael@i3wm.org</a>&gt;</tt></span><br />\r
+<span id="revnumber">version 2.9,</span>\r
+<span id="revdate">March 2015</span>\r
+<div id="toc">
+  <div id="toctitle">Table of Contents</div>
+  <noscript><p><b>JavaScript must be enabled in your browser to display the table of contents.</b></p></noscript>
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_name">1. NAME</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>i3status - Generates a status line for i3bar, dzen2 or xmobar</p></div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_synopsis">2. SYNOPSIS</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>i3status [-c configfile] [-h] [-v]</p></div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_options">3. OPTIONS</h2>\r
+<div class="sectionbody">\r
+<div class="dlist"><dl>\r
+<dt class="hdlist1">\r
+-c\r
+</dt>\r
+<dd>\r
+<p>\r
+Specifies an alternate configuration file path. By default, i3status looks for\r
+configuration files in the following order:\r
+</p>\r
+<div class="olist arabic"><ol class="arabic">\r
+<li>\r
+<p>\r
+~/.i3status.conf\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+~/.config/i3status/config (or $XDG_CONFIG_HOME/i3status/config if set)\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+/etc/i3status.conf\r
+</p>\r
+</li>\r
+<li>\r
+<p>\r
+/etc/xdg/i3status/config (or $XDG_CONFIG_DIRS/i3status/config if set)\r
+</p>\r
+</li>\r
+</ol></div>\r
+</dd>\r
+</dl></div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_description">4. DESCRIPTION</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>i3status is a small program for generating a status bar for\r
+i3bar, dzen2, xmobar or similar programs. It is designed to be very\r
+efficient by issuing a very small number of system calls, as one generally\r
+wants to update such a status line every second. This ensures that even under\r
+high load, your status bar is updated correctly. Also, it saves a bit of energy\r
+by not hogging your CPU as much as spawning the corresponding amount of shell\r
+commands would.</p></div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_configuration">5. CONFIGURATION</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>The basic idea of i3status is that you can specify which "modules" should\r
+be used (the order directive). You can then configure each module with its\r
+own section. For every module, you can specify the output format. See below\r
+for a complete reference.</p></div>\r
+<div class="listingblock">\r
+<div class="title">Sample configuration</div>\r
+<div class="content">\r
+<pre><tt>general {\r
+        output_format = "dzen2"\r
+        colors = true\r
+        interval = 5\r
+}\r
+\r
+order += "ipv6"\r
+order += "disk /"\r
+order += "run_watch DHCP"\r
+order += "run_watch VPNC"\r
+order += "path_exists VPN"\r
+order += "wireless wlan0"\r
+order += "ethernet eth0"\r
+order += "battery 0"\r
+order += "cpu_temperature 0"\r
+order += "load"\r
+order += "tztime local"\r
+order += "tztime berlin"\r
+\r
+wireless wlan0 {\r
+        format_up = "W: (%quality at %essid, %bitrate) %ip"\r
+        format_down = "W: down"\r
+}\r
+\r
+ethernet eth0 {\r
+        # if you use %speed, i3status requires the cap_net_admin capability\r
+        format_up = "E: %ip (%speed)"\r
+        format_down = "E: down"\r
+}\r
+\r
+battery 0 {\r
+        format = "%status %percentage %remaining %emptytime"\r
+        format_down = "No battery"\r
+        status_chr = "⚇ CHR""\r
+        status_bat = "⚡ BAT"\r
+        status_full = "☻ FULL"\r
+        path = "/sys/class/power_supply/BAT%d/uevent"\r
+        low_threshold = 10\r
+}\r
+\r
+run_watch DHCP {\r
+        pidfile = "/var/run/dhclient*.pid"\r
+}\r
+\r
+run_watch VPNC {\r
+        # file containing the PID of a vpnc process\r
+        pidfile = "/var/run/vpnc/pid"\r
+}\r
+\r
+path_exists VPN {\r
+        # path exists when a VPN tunnel launched by nmcli/nm-applet is active\r
+        path = "/proc/sys/net/ipv4/conf/tun0"\r
+}\r
+\r
+tztime local {\r
+        format = "%Y-%m-%d %H:%M:%S"\r
+}\r
+\r
+tztime berlin {\r
+        format = "%Y-%m-%d %H:%M:%S %Z"\r
+        timezone = "Europe/Berlin"\r
+}\r
+\r
+load {\r
+        format = "%5min"\r
+}\r
+\r
+cpu_temperature 0 {\r
+        format = "T: %degrees °C"\r
+        path = "/sys/devices/platform/coretemp.0/temp1_input"\r
+}\r
+\r
+disk "/" {\r
+        format = "%free"\r
+}</tt></pre>\r
+</div></div>\r
+<div class="sect2">\r
+<h3 id="_general">5.1. General</h3>\r
+<div class="paragraph"><p>The <tt>colors</tt> directive will disable all colors if you set it to <tt>false</tt>. You can\r
+also specify the colors that will be used to display "good", "degraded" or "bad"\r
+values using the <tt>color_good</tt>, <tt>color_degraded</tt> or <tt>color_bad</tt> directives,\r
+respectively. Those directives are only used if color support is not disabled by\r
+the <tt>colors</tt> directive. The input format for color values is the canonical RGB\r
+hexadecimal triplet (with no separators between the colors), prefixed by a hash\r
+character ("#").</p></div>\r
+<div class="paragraph"><p><strong>Example configuration</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>color_good = "#00FF00"</tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p>Likewise, you can use the <tt>color_separator</tt> directive to specify the color that\r
+will be used to paint the separator bar. The separator is always output in\r
+color, even when colors are disabled by the <tt>colors</tt> directive. This option has\r
+no effect when <tt>output_format</tt> is set to <tt>i3bar</tt> or <tt>none</tt>.</p></div>\r
+<div class="paragraph"><p>The <tt>interval</tt> directive specifies the time in seconds for which i3status will\r
+sleep before printing the next status line.</p></div>\r
+<div class="paragraph"><p>Using <tt>output_format</tt> you can chose which format strings i3status should\r
+use in its output. Currently available are:</p></div>\r
+<div class="dlist"><dl>\r
+<dt class="hdlist1">\r
+i3bar\r
+</dt>\r
+<dd>\r
+<p>\r
+i3bar comes with i3 and provides a workspace bar which does the right thing in\r
+multi-monitor situations. It also comes with tray support and can display the\r
+i3status output. This output type uses JSON to pass as much meta-information to\r
+i3bar as possible (like colors, which blocks can be shortened in which way,\r
+etc.).\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+dzen2\r
+</dt>\r
+<dd>\r
+<p>\r
+Dzen is a general purpose messaging, notification and menuing program for X11.\r
+It was designed to be scriptable in any language and integrate well with window\r
+managers like dwm, wmii and xmonad though it will work with any windowmanger\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+xmobar\r
+</dt>\r
+<dd>\r
+<p>\r
+xmobar is a minimalistic, text based, status bar. It was designed to work\r
+with the xmonad Window Manager.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+term\r
+</dt>\r
+<dd>\r
+<p>\r
+Use ANSI Escape sequences to produce a terminal-output as close as possible to\r
+the graphical outputs. This makes debugging your config file a little bit\r
+easier because the terminal-output of i3status becomes much more readable, but\r
+should only used for such quick glances, because it will only support very\r
+basic output-features (for example you only get 3 bits of color depth).\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+none\r
+</dt>\r
+<dd>\r
+<p>\r
+Does not use any color codes. Separates values by the pipe symbol by default.\r
+This should be used with i3bar and can be used for custom scripts.\r
+</p>\r
+</dd>\r
+</dl></div>\r
+<div class="paragraph"><p>It&#8217;s also possible to use the color_good, color_degraded, color_bad directives\r
+to define specific colors per module. If one of these directives is defined\r
+in a module section its value will override the value defined in the general\r
+section just for this module.</p></div>\r
+<div class="paragraph"><p>If you don&#8217;t fancy the vertical separators between modules i3status/i3bar\r
+uses by default, you can employ the <tt>separator</tt> directive to configure how\r
+modules are separated. You can either disable the default separator altogether\r
+setting it to the empty string. You might then define separation as part of a\r
+module&#8217;s format string. This is your only option when using the i3bar output\r
+format as the separator is drawn by i3bar directly otherwise. For the other\r
+output formats, the provided non-empty string will be automatically enclosed\r
+with the necessary coloring bits if color support is enabled.</p></div>\r
+<div class="paragraph"><p><strong>Example configuration</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>general {\r
+    output_format = "xmobar"\r
+    separator = "  "\r
+}\r
+\r
+order += "load"\r
+order += "disk /"\r
+\r
+load {\r
+    format = "[ load: %1min, %5min, %15min ]"\r
+}\r
+disk "/" {\r
+    format = "%avail"\r
+}</tt></pre>\r
+</div></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_ipv6">5.2. IPv6</h3>\r
+<div class="paragraph"><p>This module gets the IPv6 address used for outgoing connections (that is, the\r
+best available public IPv6 address on your computer).</p></div>\r
+<div class="paragraph"><p><strong>Example format_up</strong>: <tt>%ip</tt></p></div>\r
+<div class="paragraph"><p><strong>Example format_down</strong>: <tt>no IPv6</tt></p></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_disk">5.3. Disk</h3>\r
+<div class="paragraph"><p>Gets used, free, available and total amount of bytes on the given mounted filesystem.</p></div>\r
+<div class="paragraph"><p>These values can also be expressed in percentages with the percentage_used,\r
+percentage_free, percentage_avail and percentage_used_of_avail formats.</p></div>\r
+<div class="paragraph"><p>Byte sizes are presented in a human readable format using a set of prefixes\r
+whose type can be specified via the "prefix_type" option. Three sets of\r
+prefixes are available:</p></div>\r
+<div class="dlist"><dl>\r
+<dt class="hdlist1">\r
+binary\r
+</dt>\r
+<dd>\r
+<p>\r
+IEC prefixes (Ki, Mi, Gi, Ti) represent multiples of powers of 1024.\r
+This is the default.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+decimal\r
+</dt>\r
+<dd>\r
+<p>\r
+SI prefixes (k, M, G, T) represent multiples of powers of 1000.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+custom\r
+</dt>\r
+<dd>\r
+<p>\r
+The custom prefixes (K, M, G, T) represent multiples of powers of 1024.\r
+</p>\r
+</dd>\r
+</dl></div>\r
+<div class="paragraph"><p>It is possible to define a low_threshold that causes the disk text to be\r
+displayed using color_bad. The low_threshold type can be of threshold_type\r
+"bytes_free", "bytes_avail", "percentage_free", or "percentage_avail", where\r
+the former two can be prepended by a generic prefix (k, m, g, t) having\r
+prefix_type. So, if you configure low_threshold to 2, threshold_type to\r
+"gbytes_avail", and prefix_type to "binary", and the remaining available disk\r
+space is below 2 GiB, it will be colored bad. If not specified, threshold_type\r
+is assumed to be "percentage_avail" and low_threshold to be set to 0, which\r
+implies no coloring at all.</p></div>\r
+<div class="paragraph"><p>You can define a different format with the option "format_not_mounted"\r
+which is used if the path is not a mount point. So you can just empty\r
+the output for the given path with adding »format_not_mounted=""«\r
+to the config section.</p></div>\r
+<div class="paragraph"><p><strong>Example order</strong>: <tt>disk /mnt/usbstick</tt></p></div>\r
+<div class="paragraph"><p><strong>Example format</strong>: <tt>%free (%avail)/ %total</tt></p></div>\r
+<div class="paragraph"><p><strong>Example format</strong>: <tt>%percentage_used used, %percentage_free free, %percentage_avail avail</tt></p></div>\r
+<div class="paragraph"><p><strong>Example prefix_type</strong>: <tt>custom</tt></p></div>\r
+<div class="paragraph"><p><strong>Example low_threshold</strong>: <tt>5</tt></p></div>\r
+<div class="paragraph"><p><strong>Example threshold_type</strong>: <tt>percentage_free</tt></p></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_run_watch">5.4. Run-watch</h3>\r
+<div class="paragraph"><p>Expands the given path to a pidfile and checks if the process ID found inside\r
+is valid (that is, if the process is running). You can use this to check if\r
+a specific application, such as a VPN client or your DHCP client is running.</p></div>\r
+<div class="paragraph"><p><strong>Example order</strong>: <tt>run_watch DHCP</tt></p></div>\r
+<div class="paragraph"><p><strong>Example format</strong>: <tt>%title: %status</tt></p></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_path_exists">5.5. Path-exists</h3>\r
+<div class="paragraph"><p>Checks if the given path exists in the filesystem. You can use this to check if\r
+something is active, like for example a VPN tunnel managed by NetworkManager.</p></div>\r
+<div class="paragraph"><p><strong>Example order</strong>: <tt>path_exists VPN</tt></p></div>\r
+<div class="paragraph"><p><strong>Example format</strong>: <tt>%title: %status</tt></p></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_wireless">5.6. Wireless</h3>\r
+<div class="paragraph"><p>Gets the link quality, frequency and ESSID of the given wireless network\r
+interface. You can specify different format strings for the network being\r
+connected or not connected.</p></div>\r
+<div class="paragraph"><p>The special interface name <tt>_first_</tt> will be replaced by the first wireless\r
+network interface found on the system (excluding devices starting with "lo").</p></div>\r
+<div class="paragraph"><p><strong>Example order</strong>: <tt>wireless wlan0</tt></p></div>\r
+<div class="paragraph"><p><strong>Example format</strong>: <tt>W: (%quality at %essid, %bitrate / %frequency) %ip</tt></p></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_ethernet">5.7. Ethernet</h3>\r
+<div class="paragraph"><p>Gets the IP address and (if possible) the link speed of the given ethernet\r
+interface. Getting the link speed requires the cap_net_admin capability. Set\r
+it using <tt>setcap cap_net_admin=ep $(which i3status)</tt>.</p></div>\r
+<div class="paragraph"><p>The special interface name <tt>_first_</tt> will be replaced by the first non-wireless\r
+network interface found on the system (excluding devices starting with "lo").</p></div>\r
+<div class="paragraph"><p><strong>Example order</strong>: <tt>ethernet eth0</tt></p></div>\r
+<div class="paragraph"><p><strong>Example format</strong>: <tt>E: %ip (%speed)</tt></p></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_battery">5.8. Battery</h3>\r
+<div class="paragraph"><p>Gets the status (charging, discharging, running), percentage, remaining\r
+time and power consumption (in Watts) of the given battery and when it&#8217;s\r
+estimated to be empty. If you want to use the last full capacity instead of the\r
+design capacity (when using the design capacity, it may happen that your\r
+battery is at 23% when fully charged because it’s old. In general, I want to\r
+see it this way, because it tells me how worn off my battery is.), just specify\r
+<tt>last_full_capacity = true</tt>. You can hide seconds in the remaining time and\r
+empty time estimations by setting <tt>hide_seconds = true</tt>.</p></div>\r
+<div class="paragraph"><p>If you want the battery percentage to be shown without decimals, add\r
+<tt>integer_battery_capacity = true</tt>.</p></div>\r
+<div class="paragraph"><p>If your battery is represented in a non-standard path in /sys, be sure to\r
+modify the "path" property accordingly, i.e. pointing to the uevent file on\r
+your system. The first occurence of %d gets replaced with the battery number,\r
+but you can just hard-code a path as well.</p></div>\r
+<div class="paragraph"><p>It is possible to define a low_threshold that causes the battery text to be\r
+colored red. The low_threshold type can be of threshold_type "time" or\r
+"percentage". So, if you configure low_threshold to 10 and threshold_type to\r
+"time", and your battery lasts another 9 minutes, it will be colored red.</p></div>\r
+<div class="paragraph"><p>Optionally custom strings including any UTF-8 symbols can be used for different\r
+battery states. This makes it possible to display individual symbols\r
+for each state (charging, discharging, full)\r
+Of course it will also work with special iconic fonts, such as FontAwesome.\r
+If any of this special status strings is omitted, the default (CHR, BAT, FULL)\r
+is used.</p></div>\r
+<div class="paragraph"><p><strong>Example order</strong>: <tt>battery 0</tt></p></div>\r
+<div class="paragraph"><p><strong>Example format</strong>: <tt>%status %remaining (%emptytime %consumption)</tt></p></div>\r
+<div class="paragraph"><p><strong>Example format_down</strong>: <tt>No battery</tt></p></div>\r
+<div class="paragraph"><p><strong>Example status_chr</strong>: <tt>⚇ CHR</tt></p></div>\r
+<div class="paragraph"><p><strong>Example status_bat</strong>: <tt>⚡ BAT</tt></p></div>\r
+<div class="paragraph"><p><strong>Example status_full</strong>: <tt>☻ FULL</tt></p></div>\r
+<div class="paragraph"><p><strong>Example low_threshold</strong>: <tt>30</tt></p></div>\r
+<div class="paragraph"><p><strong>Example threshold_type</strong>: <tt>time</tt></p></div>\r
+<div class="paragraph"><p><strong>Example path</strong>: <tt>/sys/class/power_supply/CMB1/uevent</tt></p></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_cpu_temperature">5.9. CPU-Temperature</h3>\r
+<div class="paragraph"><p>Gets the temperature of the given thermal zone. It is possible to\r
+define a max_threshold that will color the temperature red in case the\r
+specified thermal zone is getting too hot. Defaults to 75 degrees C.</p></div>\r
+<div class="paragraph"><p><strong>Example order</strong>: <tt>cpu_temperature 0</tt></p></div>\r
+<div class="paragraph"><p><strong>Example format</strong>: <tt>T: %degrees °C</tt></p></div>\r
+<div class="paragraph"><p><strong>Example max_threshold</strong>: <tt>42</tt></p></div>\r
+<div class="paragraph"><p><strong>Example path</strong>: <tt>/sys/devices/platform/coretemp.0/temp1_input</tt></p></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_cpu_usage">5.10. CPU Usage</h3>\r
+<div class="paragraph"><p>Gets the percentual CPU usage from <tt>/proc/stat</tt> (Linux) or <tt>sysctl(3)</tt> (FreeBSD/OpenBSD).</p></div>\r
+<div class="paragraph"><p><strong>Example order</strong>: <tt>cpu_usage</tt></p></div>\r
+<div class="paragraph"><p><strong>Example format</strong>: <tt>%usage</tt></p></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_load">5.11. Load</h3>\r
+<div class="paragraph"><p>Gets the system load (number of processes waiting for CPU time in the last\r
+1, 5 and 15 minutes). It is possible to define a max_threshold that will\r
+color the load value red in case the load average of the last minute is\r
+getting higher than the configured threshold. Defaults to 5.</p></div>\r
+<div class="paragraph"><p><strong>Example order</strong>: <tt>load</tt></p></div>\r
+<div class="paragraph"><p><strong>Example format</strong>: <tt>%1min %5min %15min</tt></p></div>\r
+<div class="paragraph"><p><strong>Example max_threshold</strong>: <tt>"0,1"</tt></p></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_time">5.12. Time</h3>\r
+<div class="paragraph"><p>Outputs the current time in the local timezone.\r
+To use a different timezone, you can set the TZ environment variable,\r
+or use the <tt>tztime</tt> module.\r
+See <tt>strftime(3)</tt> for details on the format string.</p></div>\r
+<div class="paragraph"><p><strong>Example order</strong>: <tt>time</tt></p></div>\r
+<div class="paragraph"><p><strong>Example format</strong>: <tt>%Y-%m-%d %H:%M:%S</tt></p></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_tztime">5.13. TzTime</h3>\r
+<div class="paragraph"><p>Outputs the current time in the given timezone.\r
+If no timezone is given, local time will be used.\r
+See <tt>strftime(3)</tt> for details on the format string.\r
+The system&#8217;s timezone database is usually installed in <tt>/usr/share/zoneinfo</tt>.\r
+Files below that path make for valid timezone strings, e.g. for\r
+<tt>/usr/share/zoneinfo/Europe/Berlin</tt> you can set timezone to <tt>Europe/Berlin</tt>\r
+in the <tt>tztime</tt> module.</p></div>\r
+<div class="paragraph"><p><strong>Example order</strong>: <tt>tztime berlin</tt></p></div>\r
+<div class="paragraph"><p><strong>Example format</strong>: <tt>%Y-%m-%d %H:%M:%S %Z</tt></p></div>\r
+<div class="paragraph"><p><strong>Example timezone</strong>: <tt>Europe/Berlin</tt></p></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_ddate">5.14. DDate</h3>\r
+<div class="paragraph"><p>Outputs the current discordian date in user-specified format. See <tt>ddate(1)</tt> for\r
+details on the format string.\r
+<strong>Note</strong>: Neither <strong>%.</strong> nor <strong>%X</strong> are implemented yet.</p></div>\r
+<div class="paragraph"><p><strong>Example order</strong>: <tt>ddate</tt></p></div>\r
+<div class="paragraph"><p><strong>Example format</strong>: <tt>%{%a, %b %d%}, %Y%N - %H</tt></p></div>\r
+</div>\r
+<div class="sect2">\r
+<h3 id="_volume">5.15. Volume</h3>\r
+<div class="paragraph"><p>Outputs the volume of the specified mixer on the specified device. Works only\r
+on Linux because it uses ALSA.\r
+A simplified configuration can be used on FreeBSD and OpenBSD due to\r
+the lack of ALSA,  the <tt>device</tt> and <tt>mixer</tt> options can be\r
+ignored on these systems. On these systems the OSS API is used instead to\r
+query <tt>/dev/mixer</tt> directly if <tt>mixer_dix</tt> is -1, otherwise\r
+<tt>/dev/mixer</tt>+mixer_idx+.</p></div>\r
+<div class="paragraph"><p><strong>Example order</strong>: <tt>volume master</tt></p></div>\r
+<div class="paragraph"><p><strong>Example format</strong>: <tt>♪: %volume</tt>\r
+<strong>Example format_muted</strong>: <tt>♪: 0%%</tt></p></div>\r
+<div class="paragraph"><p><strong>Example configuration</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>volume master {\r
+        format = "♪: %volume"\r
+        format_muted = "♪: muted (%volume)"\r
+        device = "default"\r
+        mixer = "Master"\r
+        mixer_idx = 0\r
+}</tt></pre>\r
+</div></div>\r
+</div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_universal_module_options">6. Universal module options</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>When using the i3bar output format, there are a few additional options that\r
+can be used with all modules to customize their appearance:</p></div>\r
+<div class="dlist"><dl>\r
+<dt class="hdlist1">\r
+align\r
+</dt>\r
+<dd>\r
+<p>\r
+        The alignment policy to use when the minimum width (see below) is not\r
+        reached. Either <tt>center</tt> (default), <tt>right</tt> or <tt>left</tt>.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
+min_width\r
+</dt>\r
+<dd>\r
+<p>\r
+        The minimum width (in pixels) the module should occupy. If the module takes\r
+        less space than the specified size, the block will be padded to the left\r
+        and/or the right side, according to the defined alignment policy. This is\r
+        useful when you want to prevent the whole status line from shifting when\r
+        values take more or less space between each iteration.\r
+        The option can also be a string. In this case, the width of the given text\r
+        determines the minimum width of the block. This is useful when you want to\r
+        set a sensible minimum width regardless of which font you are using, and at\r
+        what particular size. Please note that a number enclosed with quotes will\r
+        still be treated as a number.\r
+</p>\r
+</dd>\r
+</dl></div>\r
+<div class="paragraph"><p><strong>Example configuration</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>disk "/" {\r
+    format = "%avail"\r
+    align = "left"\r
+    min_width = 100\r
+}</tt></pre>\r
+</div></div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_using_i3status_with_dzen2">7. Using i3status with dzen2</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>After installing dzen2, you can directly use it with i3status. Just ensure that\r
+<tt>output_format</tt> is set to <tt>dzen2</tt>.</p></div>\r
+<div class="paragraph"><p><strong>Example for usage of i3status with dzen2</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>i3status | dzen2 -fg white -ta r -w 1280 \\r
+-fn "-misc-fixed-medium-r-normal--13-120-75-75-C-70-iso8859-1"</tt></pre>\r
+</div></div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_using_i3status_with_xmobar">8. Using i3status with xmobar</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>To get xmobar to start, you might need to copy the default configuration\r
+file to <tt>~/.xmobarrc</tt>. Also, ensure that the <tt>output_format</tt> option for i3status\r
+is set to <tt>xmobar</tt>.</p></div>\r
+<div class="paragraph"><p><strong>Example for usage of i3status with xmobar</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>i3status | xmobar -o -t "%StdinReader%" -c "[Run StdinReader]"</tt></pre>\r
+</div></div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_what_about_memory_usage_or_cpu_frequency">9. What about memory usage or CPU frequency?</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>While talking about two specific things, please understand this section as a\r
+general explanation why your favorite information is not included in i3status.</p></div>\r
+<div class="paragraph"><p>Let’s talk about memory usage specifically. It is hard to measure memory in a\r
+way which is accurate or meaningful. An in-depth understanding of how paging\r
+and virtual memory work in your operating system is required. Furthermore, even\r
+if we had a well-defined way of displaying memory usage and you would\r
+understand it, I think that it’s not helpful to repeatedly monitor your memory\r
+usage. One reason for that is that I have not run out of memory in the last few\r
+years.  Memory has become so cheap that even in my 4 year old notebook, I have\r
+8 GiB of RAM. Another reason is that your operating system will do the right\r
+thing anyway: Either you have not enough RAM for your workload, but you need to\r
+do it anyway, then your operating system will swap. Or you don’t have enough\r
+RAM and you want to restrict your workload so that it fits, then the operating\r
+system will kill the process using too much RAM and you can act accordingly.</p></div>\r
+<div class="paragraph"><p>For CPU frequency, the situation is similar. Many people don’t understand how\r
+frequency scaling works precisely. The generally recommended CPU frequency\r
+governor ("ondemand") changes the CPU frequency far more often than i3status\r
+could display it. The display number is therefore often incorrect and doesn’t\r
+tell you anything useful either.</p></div>\r
+<div class="paragraph"><p>In general, i3status wants to display things which you would look at\r
+occasionally anyways, like the current date/time, whether you are connected to\r
+a WiFi network or not, and if you have enough disk space to fit that 4.3 GiB\r
+download.</p></div>\r
+<div class="paragraph"><p>However, if you need to look at some kind of information more than once in a\r
+while (like checking repeatedly how full your RAM is), you are probably better\r
+off with a script doing that, which pops up an alert when your RAM usage reaches\r
+a certain threshold. After all, the point of computers is not to burden you\r
+with additional boring tasks like repeatedly checking a number.</p></div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_external_scripts_programs_with_i3status">10. External scripts/programs with i3status</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>In i3status, we don’t want to implement process management again. Therefore,\r
+there is no module to run arbitrary scripts or commands. Instead, you should\r
+use your shell, for example like this:</p></div>\r
+<div class="paragraph"><p><strong>Example for prepending the i3status output</strong>:</p></div>\r
+<div class="listingblock">\r
+<div class="content">\r
+<pre><tt>#!/bin/sh\r
+# shell script to prepend i3status with more stuff\r
+\r
+i3status | while :\r
+do\r
+        read line\r
+        echo "mystuff | $line" || exit 1\r
+done</tt></pre>\r
+</div></div>\r
+<div class="paragraph"><p>Put that in some script, say <tt>.bin/my_i3status.sh</tt> and execute that instead of i3status.</p></div>\r
+<div class="paragraph"><p>Note that if you want to use the JSON output format (with colors in i3bar), you\r
+need to use a slightly more complex wrapper script. There are examples in the\r
+contrib/ folder, see <a href="http://code.i3wm.org/i3status/tree/contrib">http://code.i3wm.org/i3status/tree/contrib</a></p></div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_signals">11. SIGNALS</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>When receiving <tt>SIGUSR1</tt>, i3status’s nanosleep() will be interrupted and thus\r
+you will force an update. You can use killall -USR1 i3status to force an update\r
+after changing the system volume, for example.</p></div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_see_also">12. SEE ALSO</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p><tt>strftime(3)</tt>, <tt>date(1)</tt>, <tt>glob(3)</tt>, <tt>dzen2(1)</tt>, <tt>xmobar(1)</tt></p></div>\r
+</div>\r
+</div>\r
+<div class="sect1">\r
+<h2 id="_authors">13. AUTHORS</h2>\r
+<div class="sectionbody">\r
+<div class="paragraph"><p>Michael Stapelberg and contributors</p></div>\r
+<div class="paragraph"><p>Thorsten Toepper</p></div>\r
+<div class="paragraph"><p>Baptiste Daroussin</p></div>\r
+<div class="paragraph"><p>Axel Wagner</p></div>\r
+<div class="paragraph"><p>Fernando Tarlá Cardoso Lemos</p></div>\r
+</div>\r
+</div>\r
+</div>\r
+<div id="footnotes"><hr /></div>\r
+<div id="footer" lang="de">\r
+© 2009-2011 Michael Stapelberg, <a href="/impress.html">Impressum</a>\r
+</div>\r
+</body>\r
+</html>\r