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.
cp -r /usr/share/tagwerk/omarchy ~/.config/omarchy/plugins/espadat.tagwerkomarchy-shell shell rescanPluginsomarchy plugin enable espadat.tagwerk| 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.
A copy, not a symlink: omarchy plugin validate refuses any symlink inside a plugin folder, so a linked install cannot be checked. The directory name must equal the manifest id, because that is how the shell maps a changed file back to its plugin. Re-copy after a tagwerk-git update; the shell hot-reloads the widget on the write.




