Minimal break/pomodoro reminder tray app (C++ ImGui + GLFW + GTK tray)
- C++ 74.3%
- C 21%
- Makefile 2.5%
- Nix 2.2%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
| src | ||
| third_party | ||
| .envrc | ||
| .gitignore | ||
| flake.lock | ||
| flake.nix | ||
| icon.png | ||
| Makefile | ||
| README.md | ||
seagrass
A minimal, low-resource work-breaks + late-night-reminder app that lives in the system tray. Written in C++ with Dear ImGui (stock look) and a zserge/tray icon.
Features
- Work breaks — work → short break → … → long break, configurable (minutes and seconds).
- Late-night warnings — after a configurable hour, nudges you to consider stopping, every N minutes.
- System tray icon (GTK/appindicator on Linux).
- GUI settings panel — every toggle and value below is adjustable there.
- Break delivery: desktop notification or a fullscreen overlay window.
- Custom message pools — separate pools for work vs late-night, each a list
separated by three newlines (
\n\n\n); a random entry is shown each time. - Fullscreen overlay is customizable (background color + messages).
- Pause breaks for a configurable length (hours / minutes / seconds).
- Idle render policy — sleeps instead of rendering when nothing changes (battery friendly).
Build
Dependencies are provided by the nix devShell:
nix develop # enter the dev shell
make # build -> ./seagrass
make run # build + run
Without nix, install gcc, pkg-config, glfw3, glew, gtk3,
libappindicator-gtk3 and run make.
Layout
src/main.cpp— everything (app, timers, UI, tray thread)src/seagrass.h— settings + shared statethird_party/imgui/— vendored Dear ImGui (pinned)third_party/tray/— vendored zserge/tray (pinned)icon.png— placeholder tray icon ("SG" monogram). Drop the real logo here (same filename, PNG) when you've designed it; the app loads it from cwd.Makefile,flake.nix
Roadmap (later)
- Cross-platform tray/notification backends (macOS / Windows)