gtk-sni-tray: A standalone StatusNotifierItem/AppIndicator tray

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

Please see the README on Github at

[Skip to Readme]
Change log
Dependencies base (>=4.7 && <5), bytestring, cairo, containers, dbus (>=1.0.0 && <2.0.0), dbus-hslogger (>= && <, directory, enclosed-exceptions (>=, filepath, gi-cairo, gi-dbusmenugtk3, gi-gdk, gi-gdkpixbuf (>=2.0.16), gi-glib, gi-gtk (>=3.0.21), gtk-sni-tray, gtk-strut, haskell-gi (>=0.21.2), haskell-gi-base (>=0.21.1), hslogger, optparse-applicative, status-notifier-item (>= && <, text, transformers, transformers-base (>=0.4), unix [details]
License BSD-3-Clause
Copyright 2018 Ivan Malison
Author Ivan Malison
Category System
Home page
Bug tracker
Source repo head: git clone
Uploaded by eyevanmalicesun at Wed May 16 20:56:48 UTC 2018
Distributions NixOS:
Executables gtk-sni-tray-standalone
Downloads 137 total (122 in the last 30 days)
Rating (no votes yet) [estimated by rule of succession]
Your Rating
  • λ
  • λ
  • λ
Status Docs not available [build log]
All reported builds failed as of 2018-05-17 [all 3 reports]
Hackage Matrix CI


  • StatusNotifier
    • StatusNotifier.TransparentWindow
    • StatusNotifier.Tray


Maintainer's Corner

For package maintainers and hackage trustees

Readme for gtk-sni-tray-

[back to package description]


gtk-sni-tray provides a StatusNotifierHost widget written using the gtk+3 bindings for haskell provided by gi-gtk. It also provides a simple standalone executable, gtk-sni-tray-standalone, that is configured with command line arguments. This executable will run the aforementioned widget by itself in a strut window, on each monitor for each it is requested.


It is generally recommeneded that you use this widget through taffybar with this module, which will allow you to combine it with other useful widgets, and will give more flexibility in configuration.


By default, it is assumed that you are running an isolated StatusNotifierWatcher daemon. status-notifier-item provides a StatusNotifierWatcher executable that you can use for this purpose. If you get an error like

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"]}

when you start gtk-sni-tray-standalone it is probably because you have not started a StatusNotifierWatcher on your system. You can solve this problem by passing the --watcher flag to gtk-sni-tray-standalone, but this is not recommeneded, because many SNI processes do not monitor for new watcher processes, and so may not immediately register when this new watcher is started.


Both stack and cabal can be used to install gtk-sni-tray.