feat(waybar): open a calendar (calcurse) on the clock click
All checks were successful
Check / eval (push) Successful in 2m54s

Item 42, de-scoped by Bernardo to app-only — no account sync (the user
configures that themselves locally). Clicking the Waybar date/clock now
runs nomarchy-calendar → calcurse in a floating, centered ghostty window
tagged --class=com.nomarchy.calendar (+ --gtk-single-instance=false for a
fresh standalone window), matched by a float+size+center windowrule. The
launcher self-gates on calcurse. Dropped the clock's format-alt date
toggle (conflicts with on-click) and moved the long date into the tooltip.
Parity: on-click added to all four whole-swap jsoncs.

Ships calcurse + pwvucontrol uncommented in the downstream template
(opt-out). Enforces ghostty always installed (ghostty.nix: enable = true
unconditional; nomarchy.ghostty.enable now gates only the theming/config)
so the --class launcher can rely on it.

Verified: V0 green; four jsoncs valid JSON; V1 HM built — launcher ships,
generated clock renders on-click=nomarchy-calendar (format-alt gone, date
in tooltip), hyprland has the 3 calendar windowrules, ghostty in the HM
profile. Click→float→calcurse month view is V3 (queued). Sync is
deliberately the user's own config, not a distro feature.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Bernardo Magri
2026-07-08 20:19:30 +01:00
parent 2954283e23
commit be8d8a7d9b
11 changed files with 83 additions and 56 deletions

View File

@@ -17,6 +17,35 @@ Template:
---
## 2026-07-08 — Calendar on the clock click (iteration #68, item 42)
- **Task:** item 42, de-scoped live by Bernardo — DON'T hook up calendar
accounts; just ship a lightweight calendar that opens instantly on the
Waybar date click, user configures sync themselves. calcurse (his pick;
now the right one since it's self-contained for the user's own sync).
- **Did:** new `nomarchy-calendar` launcher (waybar.nix) → calcurse in a
ghostty window tagged `--class=com.nomarchy.calendar` +
`--gtk-single-instance=false` (fresh standalone window); self-gates on
calcurse. Clock `on-click = nomarchy-calendar`, dropped the format-alt
date-toggle (conflicts with on-click), moved the long date into the
tooltip. Parity: on-click in all four whole-swap jsoncs. windowrule
float+size(60/65%)+center on the class (hyprland.nix). Shipped calcurse
+ pwvucontrol **uncommented** in the downstream template (opt-out).
Enforced **ghostty always installed** (ghostty.nix: `enable = true`
unconditional, the nomarchy.ghostty.enable option now gates only config)
so the launcher can rely on `--class`.
- **Verified:** V0 green; all four jsoncs valid JSON; V1 HM built — launcher
ships the right command, generated clock renders `on-click:
nomarchy-calendar` with format-alt gone + date in the tooltip, hyprland
has the 3 calendar windowrules, ghostty present in the HM profile.
- **Pending:** V3 — click the clock → calcurse floats centered (the
`--class`→windowrule match) and renders its month view; verify on a real
session (queued). Sync is deliberately the user's own local config, NOT
a distro feature (Bernardo's call) — a future iteration should not
re-propose account sync.
- **Next suggestion:** Bernardo's big new task — investigate whether THIS
machine (NixOS 25.11) can migrate to Nomarchy without a reinstall,
keeping all files, and plan it.
## 2026-07-08 — Combined power menu on the bar icons (iteration #67, item 36b)
- **Task:** BACKLOG item 36(b), now unblocked. Bernardo's calls: keep the
granular System ▸ Battery limit / Power profile rows; build ONE combined