The tianbar package

[Tags:library, mit, program]

A desktop bar using WebKit for rendering as much as possible. Based on Taffybar.

[Skip to Readme]


Dependencies aeson, base (>3 && <5), blaze-html, blaze-markup, bytestring, containers, dbus, directory, filepath, gi-gdk, gi-gio, gi-glib, gi-gtk, gi-webkit2, haskell-gi-base, http-types, lens, mime-types, mtl, network, process, random, split, text, transformers, utf8-string, xdg-basedir, xmonad, xmonad-contrib [details]
License MIT
Author Alexey Kotlyarov
Stability Unknown
Category System
Home page
Source repository head: git clone git://
Uploaded Wed Oct 26 00:44:25 UTC 2016 by AlexeyKotlyarov
Distributions NixOS:
Downloads 4608 total (95 in the last 30 days)
0 []
Status Docs pending
Build status unknown [no reports yet]


  • System
    • Tianbar
      • System.Tianbar.XMonadLog


Maintainer's Corner

For package maintainers and hackage trustees

Readme for tianbar

Readme for tianbar-


Tianbar is a status bar for XMonad and possibly similar window managers. It is using WebKit as its rendering engine, meaning that the entire look and feel is customizable using HTML, CSS and JavaScript.



Tianbar will show index.html from its XDG configuration directory (usually $HOME/.config/tianbar). It it up to you to create that, add styles, widgets and other behavior.

A small collection of widgets written in JavaScript is bundled with Tianbar, see scripts directory. Widgets are loaded using RequireJS, which, as well as jQuery and other libraries required, are bundled with Tianbar.

For an example of RequireJS configuration, see the example index.html.


Displays the status of IBus input method.


Displays the connection status from NetworkManager.


Displays the battery status for all the batteries reporting through UPower.


Displays the time and date.


Displays the current PulseAudio volume. Note that module-cli-protocol-unix is required to be loaded.


Displays the weather at current location (determined via HTML geolocation API) through OpenWeatherMap.


XMonad status widget works by listening on DBus for messages sent by the provided logHook, see System.Tianbar.XMonadLog documentation for details.


  • AJAX requests from Tianbar are not subject to the same origin policy. This makes it easier to interact with various Web services. You can also make requests to the local files, for example, to extract CPU activity statistics from /proc/stat.
  • Interaction with the displayed Web page is limited. For example, text fields are not active if there are other windows on the screen.


The project is essentially a fork of Taffybar, stripped down of Haskell configuration and widgets and not yet having achieved functional parity with it.