systranything: Let you put anything in the system tray

This is a package candidate release! Here you can preview how this package release will appear once published to the main package index (which can be accomplished via the 'maintain' link below). Please note that once a package has been published to the main package index it cannot be undone! Please consult the package uploading documentation for more information.

[maintain] [Publish]

systranything creates a system tray menu based on a YAML file. The YAML contains the specification of the menu items with shell commands to execute when the items are clicked.


[Skip to Readme]

Properties

Versions 0.1.0.0, 0.1.1.0, 0.1.1.0, 0.1.2.0
Change log CHANGELOG.md
Dependencies aeson (>=2.1.2 && <2.2), base (>=4.16 && <5), bytestring (>=0.11.4 && <0.12), extra (>=1.7.14 && <1.8), gi-ayatana-appindicator3 (>=0.1.0 && <0.2), gi-gdk (>=3.0.28 && <3.1), gi-glib (>=2.0.29 && <2.1), gi-gobject (>=2.0.30 && <2.1), gi-gtk (>=3.0.39 && <3.1), optparse-applicative (>=0.17.1 && <0.19), text (>=2.0.2 && <2.1), typed-process (>=0.2.11 && <0.3), unliftio (>=0.2.25 && <0.3), yaml (>=0.11.11 && <0.12) [details]
License MIT
Author Jean-Charles Quillet
Maintainer jeancharles.quillet@gmail.com
Category Desktop
Home page https://github.com/jecaro/systranything
Source repo head: git clone https://github.com/jecaro/systranything.git
Uploaded by jecaro at 2024-11-06T12:06:21Z

Downloads

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees


Readme for systranything-0.1.1.0

[back to package description]

Systranything

nix haskell-ci

systranything lets you put anything in your system tray. It is supported by all destop environment that implements the StatusNotifierHost specification from freedesktop.org (KDE, XFCE, ...).

It uses a YAML file which describes the icon to put in the system tray along a context menu and callbacks to be executed in a shell.

The menu can contain labels, separators, submenus, checkboxes and radiobuttons. Scroll events can be triggered on the main icon.

Among other things, I use it to change my VPN settings. The icon shows its current status:

demo

What you can do with it:

See the example file to get started.

Run it with:

$ systranything -f ./example.yaml

It has a verbose mode which can be turned on with -v. It writes on stdout the commands executed along their outputs.

Hacking

The project can be built with nix.

Install with:

$ nix profile install

Build with:

$ nix build

The binary is then created in ./result/bin/systranything

Hack with:

$ nix develop

You will be dropped in a shell with all the needed tools in scope: cabal to build the project and haskell-language-server for a better developer experience.