Haskell Other
Clone or download
IvanMalison Merge pull request #410 from Magicloud/master
Bugfix: Expire time in millisecond is wrongly taken as second.
Latest commit 09c600c Aug 13, 2018
Failed to load latest commit information.
.github/ISSUE_TEMPLATE Add ask for help non-template Jun 18, 2018
app typo fix: this is taffybar, not gtk-sni-tray Aug 14, 2018
dbus-xml Rewrite Battery Information and Textual Battery May 13, 2018
doc Update screenshot May 11, 2018
icons Show player icons in MPRIS2 Widget May 5, 2018
src/System Bugfix: Expire time in millisecond is wrongly taken as second. Aug 14, 2018
.dockerignore Update dockerignore May 10, 2018
.gitignore Add workdirs to gitignore Oct 3, 2016
.travis.yml Don't pull latest docker image Apr 20, 2018
CHANGELOG.md Bump version Jul 5, 2018
Dockerfile Remove old source directory in docker build Jun 4, 2018
Dockerfile.base Add apt dependencies to base docker image Apr 23, 2018
LICENSE Add license badge Apr 12, 2018
README.md Update README Jul 5, 2018
Setup.hs Initial import Aug 12, 2011
my-taffybar.cabal.example Fix travis build Oct 26, 2017
quick-start.sh Fix links to point to taffybar/taffybar github Apr 27, 2018
stack-8.0.yaml Bump version of gtk-sni-tray Jul 15, 2018
stack-8.2.yaml Bump version of gtk-sni-tray Jul 15, 2018
stack-8.4.yaml Bump version of gtk-sni-tray Jul 15, 2018
stack.yaml Bump version of gtk-sni-tray Jul 15, 2018
stack.yaml.example Bump version of gtk-sni-tray Jul 15, 2018
taffybar.cabal Bump version of gtk-sni-tray Jul 15, 2018
taffybar.css Set all: unsert; Jun 16, 2018
taffybar.hs.example Remove xmonad-contrib from dependencies Jul 15, 2018
xmonad.hs.example Add new, more accurate network widgets May 4, 2018


Taffybar Hackage Commits Build Status Help Wanted Gitter chat License BSD3


Taffybar is a gtk+3 (through gi-gtk) based desktop information bar, intended primarily for use with XMonad, though it can also function alongside other EWMH compliant window managers. It is similar in spirit to xmobar, but it differs in that it gives up some simplicity for a reasonable helping of eye candy.


Taffybar has a number of non-haskell dependencies. It is recommended that you follow the installation instructions for haskell-gi before attempting to install taffybar.

In addition the the dependencies needed by haskell-gi, taffybar also needs the equivalent of libdbusmenu-gtk3-dev and libgirepository1.0-dev on Debian.


Taffybar itself can be installed in a number of different ways:


Though it is admittedly a bit complicated to set up properly, using stack is the preferred approach for installing taffybar, because it makes the build process stable and repeatable. Even if you are unfamiliar with stack, or even haskell in general, you should be able to get things working by using the taffybar's quick-start script:

curl -sSL https://raw.githubusercontent.com/taffybar/taffybar/master/quick-start.sh | bash

This script will clone the taffybar repository into a subdirectory of the default taffybar configuration directory, and copy the example cabal, stack and taffybar.hs files into the same location. It will then install a binary my-taffybar to $HOME/.local/bin, which can be executed to run taffybar. Note that with this approach, running the taffybar binary WILL NOT work; you must run the binary that is produced by the stack build in your local directory. The name of the binary can be changed in the cabal file in the taffybar configuration directory.

Running with stack

When you build with stack, it is recommended that you start taffybar with startTaffybar rather than dyreTaffybar, and use https://github.com/yamadapc/stack-run to execute the custom executable specified by your cabal and stack files. The maintainers have plans for a better solution (that does not require the user to use stack-run themselves) in #158.


Cabal installation is a simple matter of installing taffybar from hackage:

cabal install taffybar


Like xmobar and XMonad, taffybar is configured in haskell. Taffybar depends on dyre to automatically detect changes to its configuration file ($XDG_CONFIG_HOME/taffybar/taffybar.hs) and recompile when appropriate.

For more details about how to configure taffybar, see the full documentation. You can find a list of available widgets here


Taffybar desperately needs contributors. If you want to help, but don't know where to get started you can check out our "help wanted" and "easy" labels:

Help Wanted Help Wanted