to provide the correct version. The header block is terminated by a newline and
consists of a single JSON hash:
-*Example*:
-----------------
+*Minimal example*:
+------------------------------
{ "version": 1 }
-----------------
+------------------------------
+
+*All features example*:
+------------------------------
+{ "version": 1, "stop_signal": 10, "cont_signal": 12, "click_events": true }
+------------------------------
(Note that before i3 v4.3 the precise format had to be +{"version":1}+,
byte-for-byte.)
+status_command+ in the bar configuration at
http://code.stapelberg.de/git/i3/tree/contrib/trivial-bar-script.sh?h=next
+=== Header in detail
+
+version::
+ The version number (as an integer) of the i3bar protocol you will use.
+stop_signal::
+ Specify to i3bar the signal (as an integer) to send to stop your
+ processing.
+ The default value (if none is specified) is SIGSTOP.
+cont_signal::
+ Specify to i3bar the signal (as an integer)to send to continue your
+ processing.
+ The default value (if none is specified) is SIGCONT.
+click_events::
+ If specified and true i3bar will write a infinite array (same as above)
+ to your stdin.
+
=== Blocks in detail
full_text::
when it is associated.
Colors are specified in hex (like in HTML), starting with a leading
hash sign. For example, +#ff0000+ means red.
+min_width::
+ The minimum width (in pixels) of the block. If the content of the
+ +full_text+ key take less space than the specified min_width, the block
+ will be padded to the left and/or the right side, according to the +align+
+ key. This is useful when you want to prevent the whole status line to shift
+ when value take more or less space between each iteration.
+ The value can also be a string. In this case, the width of the text given
+ by +min_width+ determines the minimum width of the block. This is useful
+ when you want to set a sensible minimum width regardless of which font you
+ are using, and at what particular size.
+align::
+ Align text on the +center+ (default), +right+ or +left+ of the block, when
+ the minimum width of the latter, specified by the +min_width+ key, is not
+ reached.
name and instance::
Every block should have a unique +name+ (string) entry so that it can
be easily identified in scripts which process the output. i3bar
A boolean which specifies whether the current value is urgent. Examples
are battery charge values below 1 percent or no more available disk
space (for non-root users). The presentation of urgency is up to i3bar.
+separator::
+ A boolean which specifies whether a separator line should be drawn
+ after this block. The default is true, meaning the separator line will
+ be drawn. Note that if you disable the separator line, there will still
+ be a gap after the block, unless you also use +separator_block_width+.
+separator_block_width::
+ The amount of pixels to leave blank after the block. In the middle of
+ this gap, a separator line will be drawn unless +separator+ is
+ disabled. Normally, you want to set this to an odd value (the default
+ is 9 pixels), since the separator line is drawn in the middle.
If you want to put in your own entries into a block, prefix the key with an
underscore (_). i3bar will ignore all keys it doesn’t understand, and prefixing
}
------------------------------------------
+In the following example, the longest (widest) possible value of the block is
+used to set the minimum width:
+
+------------------------------------------
+{
+ "full_text": "CPU 4%",
+ "min_width": "CPU 100%",
+ "align": "left"
+}
+------------------------------------------
+
An example of a block which uses all possible entries follows:
*Example*:
"full_text": "E: 10.0.0.1 (1000 Mbit/s)",
"short_text": "10.0.0.1",
"color": "#00ff00",
+ "min_width": 300,
+ "align": "right",
"urgent": false,
"name": "ethernet",
- "instance": "eth0"
+ "instance": "eth0",
+ "separator": true,
+ "separator_block_width": 9
+}
+------------------------------------------
+
+=== Click events
+
+If enabled i3bar will send you notifications if the user clicks on a block and
+looks like this:
+
+name::
+ Name of the block, if set
+instance::
+ Instance of the block, if set
+x, y::
+ X11 root window coordinates where the click occured
+button:
+ X11 button ID (for example 1 to 3 for left/middle/right mouse button)
+
+*Example*:
+------------------------------------------
+{
+ "name": "ethernet",
+ "instance": "eth0",
+ "button": 1,
+ "x": 1320,
+ "y": 1400
}
------------------------------------------