A Linux system tray application that shows the status of systemd services as colored dots — green for running, grey for stopped, red for failed. Right-click to start or stop services without opening a terminal.
To control system services (optional):
sudo install -Dm644 com.example.systemd-tray.policy \
/usr/share/polkit-1/actions/com.example.systemd-tray.policyIcon colors:
| Color | Meaning |
|---|---|
| Green | Unit is running |
| Grey | Unit is stopped |
| Red | Unit failed |
| Amber | Unit is starting or stopping |
Add services: Right-click → Settings → User units tab → check units to monitor.
Start/stop: Right-click the icon → click a service → Start or Stop.
System services: Settings → System units tab → type a name to search → check to add. Start/stop actions on system services prompt for your password via a system dialog.
Prerequisites: Go 1.26, CC=clang, GTK4 headers, Task, golangci-lint, gofumpt.
git clone <repo-url> && cd systemd-tray
CC=clang CGO_ENABLED=1 go mod download
task build # compile → dist/systemd-tray
task test # unit tests (no D-Bus needed)Common tasks:
task tidy # go mod tidy + verify
task fix # run go fix
task fmt # format with gofumpt
task fmt:check # check formatting without modifying (CI)
task vet # run go vet
task lint # run golangci-lint
task lint:fix # run golangci-lint with auto-fix
task deadcode # report unreachable functions
task test # unit tests
task check # full pre-commit gate: fmt:check → fix → vet → lint → deadcode → test
task build # dev build to dist/
task build:release # release build (amd64, stripped, version ldflag)
task install # build:release + install to ~/.local
task uninstall # remove from ~/.local
task clean # remove dist/ and build cacheMIT
