Skip to content

taffybar/status-notifier-item

Repository files navigation

status-notifier-item

Build Status Hackage Stackage LTS Stackage Nightly

The status-notifier-item package provides a haskell implementation of the status-notifier-item/app-indicator protocol.

StatusNotifierHost

The host server implementation provided is partial in the sense that it is headless (provides no graphical interface), and it is supposed to be used together with UI code that handles actually displaying a tray. The gtk-sni-tray provides a gtk tray widget that is implemented using the status-notifier-item library. taffybar Uses gtk-sni-tray to provide a tray widget that can be used with the many other widgets it offers.

StatusNotifierWatcher

This package provides a standalone status-notifier-watch binary that can be run on its own to handle the registration of status-notifier-items. By default, it is necessary to run this binary before starting either taffybar or gtk-sni-tray, becuase the trays provided in those binaries do not handle this responsibility. If this is not done, those binaries will fail at startup with this message:

MethodError {methodErrorName = ErrorName "org.freedesktop.DBus.Error.ServiceUnknown", methodErrorSerial = Serial 7, methodErrorSender = Just (BusName "org.freedesktop.DBus"), methodErrorDestination = Just (BusName ":1.549"), methodErrorBody = [Variant "The name org.kde.StatusNotifierWatcher was not provided by any .service files"]}

A client library is also provided for the StatusNotifierWatcher protocol

StatusNotifierItem

This package provides a client library for calling into status notifier items. It also provides a sample implementation of the server side of the StatusNotifierItem protocol as well as a status-notifier-item-static binary that uses this implementation. This binary can be used to test host and watcher implementations, but it mostly just serves as an example of how to implement the protocol using this library, as it does not really do anything useful.