Bar widget
A cap-proximity cue for the bar, answering one question: am I close to the day cap, or not? A track, a fill running to today’s credited minutes with the paid stretch solid inside it, and the cap as a notch you watch the fill close on. One glance, no arithmetic, nothing to read.
The widget lives in its own repo, espadat-studio/omarchy-tagwerk, and installs as an Omarchy plugin:
omarchy plugin add https://github.com/espadat-studio/omarchy-tagwerk --enableInstalled it before by copying /usr/share/tagwerk/omarchy/ out of the package? Remove the copy first, or the add fails with already installed:
omarchy plugin remove espadat.tagwerkomarchy plugin add https://github.com/espadat-studio/omarchy-tagwerk --enableThe copy is not deleted: it moves to a hidden .espadat.tagwerk.bak.<timestamp> folder beside it, which the plugin catalog ignores.
| What you see | What it is |
|---|---|
![]() |
An empty day. The track spans the cap times 1.25, so 10 hours across 40px at an 8-hour cap: 4px per hour, and 30 minutes is 2px. The notch is the cap, always at 80%. |
![]() |
5:00 credited, none of it paid. The translucent fill is every credited minute, total_minutes. |
![]() |
7:20 credited, 5:10 of it paid. The solid stretch is paid_minutes; the gap between the two edges is personal. |
![]() |
8:00 credited, exactly on the cap. The fill stops flush against the notch, because the cap sits at 80% of a track that runs to 125% of it. |
![]() |
9:00 credited, over_cap. Both segments switch to the theme’s urgent colour and the notch does not, so the hour past the cap stays readable: the notch is painted above the fill. There is no approaching colour — proximity is the fill’s length. |
Hover prints work, personal, presence, and the time left or over. Click opens tagwerk week in the themed floating terminal. The widget lands on the right of the bar; omarchy bar move espadat.tagwerk relocates it.
It runs tagwerk day --json every 300 s and draws four rectangles. Nothing else: it never reads the ledger, never reads your config, and never re-implements the cap rule — over_cap arrives already computed (ADR-0011). Change refreshIntervalSec in the widget’s settings; below 15 minutes the fill moves less than a pixel, so the interval buys the notch crossing and nothing more.
omarchy plugin update espadat.tagwerk pulls a newer commit, and the shell hot-reloads the widget on the write. omarchy plugin disable espadat.tagwerk keeps it installed and only takes it off the bar; omarchy plugin remove espadat.tagwerk deletes it.




