i3bar-protocol: add example (illustration-only!) shell script, clarify {"version":1} header
This commit is contained in:
parent
e53405c216
commit
f94edd9fc3
29
contrib/trivial-bar-script.sh
Executable file
29
contrib/trivial-bar-script.sh
Executable file
@ -0,0 +1,29 @@
|
||||
#!/bin/sh
|
||||
# vim:ts=4:sw=4:expandtab
|
||||
# © 2012 Michael Stapelberg, Public Domain
|
||||
|
||||
# This script is a trivial shell script to send your own output to i3bar while
|
||||
# using the JSON protocol.
|
||||
#
|
||||
# It is ugly and that is inherent to using JSON with shell scripts. You
|
||||
# _really_ should not do that. See i3status or i3status’s contrib/ directory
|
||||
# for examples of how to handle the output in higher-level languages.
|
||||
#
|
||||
# This example is purely for illustration of the protocol. DO NOT USE IT IN THE
|
||||
# REAL WORLD.
|
||||
|
||||
# Send the header so that i3bar knows we want to use JSON:
|
||||
echo '{ "version": 1 }'
|
||||
|
||||
# Begin the endless array.
|
||||
echo '['
|
||||
|
||||
# We send an empty first array of blocks to make the loop simpler:
|
||||
echo '[]'
|
||||
|
||||
# Now send blocks with information forever:
|
||||
while :;
|
||||
do
|
||||
echo ",[{\"name\":\"time\",\"full_text\":\"$(date)\"}]"
|
||||
sleep 1
|
||||
done
|
@ -1,7 +1,7 @@
|
||||
i3bar input protocol
|
||||
====================
|
||||
Michael Stapelberg <michael@i3wm.org>
|
||||
February 2012
|
||||
August 2012
|
||||
|
||||
This document explains the protocol in which i3bar expects its input. It
|
||||
provides support for colors, urgency, shortening and easy manipulation.
|
||||
@ -49,6 +49,9 @@ consists of a single JSON hash:
|
||||
{ "version": 1 }
|
||||
----------------
|
||||
|
||||
(Note that before i3 v4.3 the precise format had to be +{"version":1}+,
|
||||
byte-for-byte.)
|
||||
|
||||
What follows is an infinite array (so it should be parsed by a streaming JSON
|
||||
parser, but as described above you can go for a simpler solution), whose
|
||||
elements are one array per status line. A status line is one unit of
|
||||
@ -86,6 +89,10 @@ Please note that this example was pretty printed for human consumption.
|
||||
i3status and others will output single statuslines in one line, separated by
|
||||
\n.
|
||||
|
||||
You can find an example of a shell script which can be used as your
|
||||
+status_command+ in the bar configuration at
|
||||
http://code.stapelberg.de/git/i3/tree/contrib/trivial-bar-script.sh?h=next
|
||||
|
||||
=== Blocks in detail
|
||||
|
||||
full_text::
|
||||
|
Loading…
Reference in New Issue
Block a user