taffybar: A desktop bar similar to xmobar, but with more GUI

[ bsd3, library, program, system ] [ Propose Tags ]

Taffybar is a gtk+3 (through gtk2hs) 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.

[Skip to Readme]
Versions 0.1.0, 0.1.1, 0.1.2, 0.1.3, 0.2.0, 0.2.1, 0.3.0, 0.4.0, 0.4.1, 0.4.2, 0.4.3, 0.4.4, 0.4.5, 0.4.6, 1.0.0, 1.0.1, 1.0.2, 2.0.0, 2.1.0, 2.1.1, 2.1.2
Change log CHANGELOG.md
Dependencies base (>3 && <5), cairo, ConfigFile, containers, dbus (>=1.0.0 && <2.0.0), dbus-hslogger (>= && <, directory, dyre (>=0.8.6 && <0.9), either (>=, enclosed-exceptions (>=, filepath, gi-cairo, gi-gdk, gi-gdkpixbuf (>=2.0.16), gi-gdkx11, gi-glib, gi-gtk, gi-gtk-hs, glib, gtk-sni-tray (>=, gtk-strut (>=, gtk-traymanager (>=1.0.1 && <2.0.0), gtk3 (>=0.14.9), haskell-gi (>=0.21.2), haskell-gi-base (>=0.21.1), hslogger, HStringTemplate (==0.8.*), HTTP, multimap (>=1.2.1), network (<3), network-uri (<3), old-locale, optparse-applicative, parsec (>=3.1), process (>=, rate-limit (>=1.1.1), regex-compat, safe (>=0.3 && <1), split (>=, status-notifier-item (>=, stm, taffybar, template-haskell, text, time (>=1.4 && <2.0), time-locale-compat (==0.1.*), time-units (>=1.0.0), transformers (>=, transformers-base (>=0.4), tuple (>=, unix, utf8-string, X11 (>=, xdg-basedir (==0.2.*), xml, xml-helpers, xmonad, xmonad-contrib [details]
License BSD-3-Clause
Author Tristan Ravitch
Maintainer tristan@nochair.net
Category System
Home page http://github.com/taffybar/taffybar
Source repo head: git clone git://github.com/taffybar/taffybar.git
Uploaded by eyevanmalicesun at Wed Jun 13 19:56:11 UTC 2018
Distributions Debian:0.4.5, NixOS:2.1.2
Executables taffybar
Downloads 5878 total (200 in the last 30 days)
Rating 2.0 (votes: 1) [estimated by rule of succession]
Your Rating
  • λ
  • λ
  • λ
Status Docs not available [build log]
All reported builds failed as of 2018-06-13 [all 2 reports]
Hackage Matrix CI


  • System
    • System.Taffybar
      • System.Taffybar.Auth
      • Compat
        • System.Taffybar.Compat.GtkLibs
      • System.Taffybar.Context
      • System.Taffybar.DBus
        • System.Taffybar.DBus.Toggle
      • System.Taffybar.Hooks
      • Information
        • System.Taffybar.Information.Battery
        • System.Taffybar.Information.CPU
        • System.Taffybar.Information.CPU2
        • System.Taffybar.Information.DiskIO
        • System.Taffybar.Information.EWMHDesktopInfo
        • System.Taffybar.Information.MPRIS2
        • System.Taffybar.Information.Memory
        • System.Taffybar.Information.Network
        • System.Taffybar.Information.SafeX11
        • System.Taffybar.Information.StreamInfo
        • System.Taffybar.Information.X11DesktopInfo
        • XDG
          • System.Taffybar.Information.XDG.DesktopEntry
          • System.Taffybar.Information.XDG.Protocol
      • System.Taffybar.SimpleConfig
      • Support
        • System.Taffybar.Support.PagerHints
      • System.Taffybar.Util
      • System.Taffybar.Widget
        • System.Taffybar.Widget.Battery
        • System.Taffybar.Widget.CPUMonitor
        • System.Taffybar.Widget.CommandRunner
        • System.Taffybar.Widget.Decorators
        • System.Taffybar.Widget.DiskIOMonitor
        • System.Taffybar.Widget.FSMonitor
        • System.Taffybar.Widget.FreedesktopNotifications
        • Generic
          • System.Taffybar.Widget.Generic.AutoSizeImage
          • System.Taffybar.Widget.Generic.ChannelGraph
          • System.Taffybar.Widget.Generic.ChannelWidget
          • System.Taffybar.Widget.Generic.DynamicMenu
          • System.Taffybar.Widget.Generic.Graph
          • System.Taffybar.Widget.Generic.Icon
          • System.Taffybar.Widget.Generic.PollingBar
          • System.Taffybar.Widget.Generic.PollingGraph
          • System.Taffybar.Widget.Generic.PollingLabel
          • System.Taffybar.Widget.Generic.VerticalBar
        • System.Taffybar.Widget.Layout
        • System.Taffybar.Widget.MPRIS2
        • System.Taffybar.Widget.NetworkGraph
        • System.Taffybar.Widget.SNITray
        • System.Taffybar.Widget.SimpleClock
        • System.Taffybar.Widget.Systray
        • Text
          • System.Taffybar.Widget.Text.CPUMonitor
          • System.Taffybar.Widget.Text.MemoryMonitor
          • System.Taffybar.Widget.Text.NetworkMonitor
        • System.Taffybar.Widget.Util
        • System.Taffybar.Widget.Weather
        • System.Taffybar.Widget.Windows
        • System.Taffybar.Widget.Workspaces
        • XDGMenu
          • System.Taffybar.Widget.XDGMenu.Menu
          • System.Taffybar.Widget.XDGMenu.MenuWidget
      • System.Taffybar.WindowIcon



network hack


Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info


Maintainer's Corner

For package maintainers and hackage trustees

Readme for taffybar-2.1.2

[back to package description]

Taffybar Hackage Commits Build Status Help Wanted Gitter chat License BSD3

<a href="https://github.com/taffybar/taffybar/blob/master/doc/screenshot.png">https://github.com/taffybar/taffybar/blob/master/doc/screenshot.png</a>

Taffybar is a gtk+3 (through gtk2hs and 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

Development Status

Taffybar has recently undergone a lot changes recently with the release of 2.0.0, but it's API should be pretty stable moving forward, with the exception of the ongoing gi-gtk migration (see #256. Though it does/will involve significant code changes, this migration should be pretty transparent, especially for users who don't do any advanced widget customization (i.e. that involves actually directly importing gtk2hs).


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