https://github.com/taffybar/taffybar
A gtk based status bar for tiling window managers such as XMonad
https://github.com/taffybar/taffybar
appindicator dbus ewmh gi-gtk gtk haskell haskell-gi mpris stack statusnotifieritem systray taffybar tiling-window-manager upower x11 xmobar xmonad
Last synced: 15 days ago
JSON representation
A gtk based status bar for tiling window managers such as XMonad
- Host: GitHub
- URL: https://github.com/taffybar/taffybar
- Owner: taffybar
- License: bsd-3-clause
- Created: 2011-08-12T06:10:24.000Z (almost 15 years ago)
- Default Branch: master
- Last Pushed: 2026-05-22T08:30:39.000Z (27 days ago)
- Last Synced: 2026-05-31T17:24:38.188Z (18 days ago)
- Topics: appindicator, dbus, ewmh, gi-gtk, gtk, haskell, haskell-gi, mpris, stack, statusnotifieritem, systray, taffybar, tiling-window-manager, upower, x11, xmobar, xmonad
- Language: Haskell
- Homepage: https://hackage.haskell.org/package/taffybar
- Size: 3.92 MB
- Stars: 713
- Watchers: 7
- Forks: 139
- Open Issues: 17
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Agents: AGENTS.md
Awesome Lists containing this project
- awesome-ricing - taffybar - A gtk based status bar for tiling window managers such as XMonad. (Haskell) (Packages / Bars, Panels, and Widgets)
README
# Taffybar
[](https://github.com/taffybar/taffybar/actions/workflows/nix.yml) [](https://hackage.haskell.org/package/taffybar) [](https://github.com/taffybar/taffybar/releases/latest) [](http://stackage.org/lts/package/taffybar) [](http://stackage.org/nightly/package/taffybar) [](https://matrix.to/#/#taffybar:matrix.org) [](https://gitter.im/taffybar/Lobby) [](https://github.com/taffybar/taffybar/blob/master/LICENSE)
## Summary
Taffybar is a 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 [GTK 3][] eye candy.
Taffybar also supports running under Wayland via `gtk-layer-shell`. Wayland
support is currently compositor-specific for some widgets, with Hyprland
workspaces, windows, and layout widgets available. Many widgets still rely on
X11/EWMH, so check the widget docs and examples (including
`example/taffybar-wayland.hs`) for what works on your setup.
## Package Release Status
| Package | Hackage | Unreleased commits |
| --- | --- | --- |
| `taffybar` | [](https://hackage.haskell.org/package/taffybar) | [](https://github.com/taffybar/taffybar/releases/latest) |
| `dbus-hslogger` | [](https://hackage.haskell.org/package/dbus-hslogger) | [](https://github.com/taffybar/taffybar/releases?q=dbus-hslogger) |
| `dbus-menu` | [](https://hackage.haskell.org/package/dbus-menu) | [](https://github.com/taffybar/taffybar/releases?q=dbus-menu) |
| `gi-wireplumber` | [](https://hackage.haskell.org/package/gi-wireplumber) | [](https://github.com/taffybar/taffybar/releases?q=gi-wireplumber) |
| `gtk-scaling-image` | [](https://hackage.haskell.org/package/gtk-scaling-image) | [](https://github.com/taffybar/taffybar/releases?q=gtk-scaling-image) |
| `gtk-sni-tray` | [](https://hackage.haskell.org/package/gtk-sni-tray) | [](https://github.com/taffybar/taffybar/releases?q=gtk-sni-tray) |
| `gtk-strut` | [](https://hackage.haskell.org/package/gtk-strut) | [](https://github.com/taffybar/taffybar/releases?q=gtk-strut) |
| `status-notifier-item` | [](https://hackage.haskell.org/package/status-notifier-item) | [](https://github.com/taffybar/taffybar/releases?q=status-notifier-item) |
| `xdg-desktop-entry` | [](https://hackage.haskell.org/package/xdg-desktop-entry) | [](https://github.com/taffybar/taffybar/releases?q=xdg-desktop-entry) |
[](https://github.com/taffybar/taffybar/blob/master/doc/screenshot.png)
[GTK 3]: https://www.gtk.org/
[XMonad]: https://xmonad.org/
[dwm]: https://dwm.suckless.org/
[xmobar]: https://codeberg.org/xmobar/xmobar
[gi-gtk]: https://hackage.haskell.org/package/gi-gtk
[Haskell]: https://www.haskell.org/
[GHC]: https://www.haskell.org/ghc/
## Taffybar is a library
As with window managers like [XMonad][] and [dwm][], Taffybar is most appropriately
described as a library that allows you to build an executable that is customized
to your tastes. Like [xmobar][] and [XMonad][], Taffybar is configured in [Haskell][].
Taffybar has a reasonably useful default configuration built in.
To use a different configuration, however, you must install a Haskell compiler
([GHC][]) that can compile your [`taffybar.hs`](https://github.com/taffybar/taffybar/blob/master/example/taffybar.hs) source file.
You then select from [the list of available widgets][widgets] for
functionality to add to your Taffybar. If the widget you need doesn't
exist, then create your own with GTK.
[widgets]: http://hackage.haskell.org/package/taffybar/docs/System-Taffybar-Widget.html
## Documentation
* [**Installation**][install]
Taffybar can be installed from Linux distribution packages,
or compiled from source.
* [**Configuration** (and compilation)][config]
Taffybar can recompile itself from `taffybar.hs`, similar to how
[XMonad][] recompiles itself from `xmonad.hs`.
There are a number of ways to compile your configuration.
* [**Customization**][custom]
Taffybar has a library of functions and widgets for collecting and
displaying information.
Many aspects of the bar's appearance can be changed using CSS.
* [**Running**][run]
Taffybar is one component of a desktop environment. To work
correctly, it requires other desktop components and system services.
* [**FAQ**][faq]
Assorted information.
* [**Contributing**][contrib]
[](https://github.com/taffybar/taffybar/labels/help%20wanted)
[](https://github.com/taffybar/taffybar/labels/easy)
Taffybar desperately needs contributors.
There is plenty to do; enquire within.
[install]: https://github.com/taffybar/taffybar/blob/master/doc/install.md
[config]: https://github.com/taffybar/taffybar/blob/master/doc/config.md
[custom]: https://github.com/taffybar/taffybar/blob/master/doc/custom.md
[run]: https://github.com/taffybar/taffybar/blob/master/doc/run.md
[faq]: https://github.com/taffybar/taffybar/blob/master/doc/faq.md
[contrib]: https://github.com/taffybar/taffybar/blob/master/doc/contrib.md