minimalistic X status bar in pure Go
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
.gitignore
.travis.yml
LICENSE.md
README.md
gobar.go
gobar_test.go
parser.go
parser_test.go

README.md

Build Status

gobar is a minimalistic X status bar written in pure Go.

Supports xinerama, EWMH, font antialiasing and possibly some other fancy looking names and shortcuts.

screenshot

Two gobar instances, both fed by osop.

For detailed configuration see my dotfiles.

screenshot

installation

First, you have to get Go. Note that version >= 1.1 is required.

Then, just

$ go get github.com/distatus/gobar

should get you going.

usage

Command line options reference follows:

-h --help displays help message and exits.

--bottom places bar on bottom of the screen (defaults to false).

--geometries takes comma separated list of monitor geometries (defaults to 0x16+0+0).

Each geometry is in form of <width>x<height>+<x>+<y>. If <width>/<height> is 0, screen width/height is used.

If geometry is empty, bar is not drawn on a respective monitor.

If there are less geometries than monitors, last geometry is used for subsequent monitors.

--fonts takes comma separated list of fonts.

Each font element is in form of <ttf file path>[:<font size>].

If omitted, or if incorrect path is specified, defaults to whatever it can find in fontconfig configuration.

If <font size> part is omitted or incorrect, defaults to 12.

--fg takes main foreground color. Should be in form 0xAARRGGBB (defaults to 0xFFFFFFFF).

--bg takes main background color. Should be in form 0xAARRGGBB (defaults to 0xFF000000).

Other than that, an input string should be piped into the gobar executable.

A really simple example could be displaying current date and time.

$ while :; do date; sleep 1; done | gobar

Special tokens can also be used in the input string to allow nice formatting.

Input string formatting syntax

Each token should be preceded with { and will be active until }. Note that {text} is also treated as valid token and will output text. Escaping with \ will print bracket(s) literally.

F<num> sets active font, <num> should be index of one of the elements from fonts list specified in --fonts=.

S<num>,<num>... specifies monitors to draw on. Multiple, comma separated, numbers can be specified. If not specified, draws to all available monitors. Negative number can be specified to set on which monitors to not draw.

CF0xAARRGGBB sets active foreground color.

CB0xAARRGGBB sets active background color.

AR aligns next text piece to the right.