Skip to content
An i3status alternative in golang
Go Ruby Shell
Branch: master
Clone or download
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
bar Add RefresherModule to allow middle-click to update data Nov 17, 2018
base Update to new version of netlink Jul 20, 2019
colors Fix golint warnings Sep 29, 2018
core Freeze TimedOutput when module finishes. Nov 18, 2018
format Expand unit formatting capabilities Feb 17, 2019
group Fix typos Dec 12, 2018
logging Add import comments to all packages Sep 3, 2018
modules Fix alsa header deprecation warning Jul 20, 2019
oauth Add force-refresh to setup-oauth Oct 15, 2018
outputs Use pango.Unit in output.Pango when adding units or formatted values Feb 17, 2019
pango Add pango support for units, with a default formatter Feb 17, 2019
rb Share more ruby code between generators Feb 17, 2019
samples Use night icon for weather if before sunrise Mar 16, 2019
sink Initialise sink.Value() with empty output Dec 10, 2018
testing Share more ruby code between generators Feb 17, 2019
timing Prevent schedulers from triggering after timing.TestMode() Dec 7, 2018
.gitignore Ignore coverage information generated by test.sh Mar 13, 2019
.rubocop.yml Add license headers to auxiliary files Dec 20, 2018
.travis.yml Remove unnecessary repotoken flag from goveralls Mar 13, 2019
CONTRIBUTING.md Add license headers to auxiliary files Dec 20, 2018
LICENSE Initial commit Feb 7, 2017
README.md Add license headers to auxiliary files Dec 20, 2018
barista.go Fix golint warnings Sep 29, 2018
barista_test.go Deflake main test some more Nov 19, 2018
build.sh Add license headers to auxiliary files Dec 20, 2018
test.sh Retry flaky tests before failing the suite Apr 30, 2019

README.md

Logo

Barista

Build Status GoDoc Go Report Card Coverage Status

Barista is an i3 status bar written in golang.

This is not an official Google product

Features

  • Based on push rather than fixed interval polling. This allows immediate updates for many modules, like volume, media, shell, etc.

  • Produces a single binary via go build. This makes it easy to set up the bar executable, since no import paths, environment variables, et al. need to be configured.

  • Good click handlers (especially media and volume), since we can wait for a command and update the bar immediately rather than waiting for the next 'tick'.

  • Configuration is code, providing oodles of customization options without needing myriad configuration options in a file somewhere. If/then/else, loops, functions, variables, and even other go packages can all be used seamlessly.

Usage

See samples/sample-bar.go for a sample bar.

To build your own bar, simply create a package main go file, import and configure the modules you wish to use, and call barista.Run().

To show your bar in i3, set the status_command of a bar { ... } section to be the newly built bar binary, e.g.

bar {
  position top
  status_command exec ~/bin/mybar
  font pango:DejaVu Sans Mono 10
}

See the quickstart for more details.

You can’t perform that action at this time.