https://github.com/taffybar/gtk-sni-tray
A StatusNotifierHost widget written using the gtk+3 bindings for haskell provided by gi-gtk.
https://github.com/taffybar/gtk-sni-tray
appindicator dbus gtk haskell status-notifier-item statusnotifieritem taffybar tray
Last synced: about 1 month ago
JSON representation
A StatusNotifierHost widget written using the gtk+3 bindings for haskell provided by gi-gtk.
- Host: GitHub
- URL: https://github.com/taffybar/gtk-sni-tray
- Owner: taffybar
- License: bsd-3-clause
- Created: 2018-03-20T01:14:43.000Z (about 7 years ago)
- Default Branch: master
- Last Pushed: 2025-02-03T06:32:45.000Z (3 months ago)
- Last Synced: 2025-04-11T21:56:02.292Z (about 1 month ago)
- Topics: appindicator, dbus, gtk, haskell, status-notifier-item, statusnotifieritem, taffybar, tray
- Language: Haskell
- Homepage:
- Size: 104 KB
- Stars: 37
- Watchers: 3
- Forks: 3
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- Changelog: ChangeLog.md
- License: LICENSE
Awesome Lists containing this project
README
gtk-sni-tray
============

[](https://hackage.haskell.org/package/gtk-sni-tray) [](http://stackage.org/lts/package/gtk-sni-tray) [](http://stackage.org/nightly/package/gtk-sni-tray)gtk-sni-tray provides a [StatusNotifierHost](https://www.freedesktop.org/wiki/Specifications/StatusNotifierItem/StatusNotifierHost/) widget written using the gtk+3 bindings for haskell provided by [gi-gtk](https://hackage.haskell.org/package/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 it is requested.
taffybar
--------
It is generally recommeneded that you use this widget through [taffybar](https://github.com/travitch/taffybar) with [this module](https://github.com/travitch/taffybar/blob/master/src/System/Taffybar/Widget/SNITray.hs), which will allow you to combine it with other useful widgets, and will allow more flexibility in configuration.StatusNotifierWatcher
---------------------
By default, it is assumed that you are running an isolated StatusNotifierWatcher daemon. [status-notifier-item](https://github.com/IvanMalison/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.
Installation
------------[`nix`](https://nixos.org/download.html),
[`stack`](https://docs.haskellstack.org/en/stable/README/) and
[`cabal`](https://www.haskell.org/cabal/download.html) can all be used to
install gtk-sni-tray.