From a56ff3cfd9d3947c09a22000fdb5996ee5e464cf Mon Sep 17 00:00:00 2001 From: Claude Date: Sat, 1 Aug 2026 22:22:47 +0000 Subject: [PATCH 1/2] docs(changelog): reconcile the desktop work and promote v1.5.0 [Unreleased] documented the Core -> Windows parity pass through #154 but stopped there, while #155-#161 landed a full status-bar redesign across psmux and Zebar. Fold that in, then promote the section under v1.5.0. Added: Zebar caffeine + AC-power placeholders. Changed: Zebar floating-islands adoption and the PARITY.md rewrite, chip-less psmux bar, default session main -> Gerrrt, weather in F, sketchybar-matching workspace highlight, spacing/font tuning. Fixed: the IP pill rendering blank (option-clobber plus the pre-styled #[...] transport), the prefix indicator shifting the centered tabs and leaking style into them, and the cwd/clock gap. v1.5.0 rather than a patch: three additive feats (jnv + web/lynx, the psmux island bar, the Zebar islands) with no breaking change. The tag line is at v1.4.7 because auto-tag has been patch-bumping the whole parity pass; it will never produce a minor on its own, so the tag is left to be cut deliberately. Not documented: the GlazeWM bind_to_monitor change from #156, reverted in #158 as an invalid key for this GlazeWM version. Added and removed inside the same unreleased window, so it nets to zero. Closes #162 Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_01CzKmTKtvGgsa82MCxPPy5i --- CHANGELOG.md | 71 ++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 69 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1d92d44..24979ee 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,8 @@ so entries are grouped by theme rather than strict semver releases. ## [Unreleased] +## [v1.5.0] - 2026-08-01 + _**Core → Windows parity pass (2026-07).** A focused sweep to close the drift that had built up between recent `dotfiles-core` / `dotfiles-MacBook` work and the Windows host, kicked off by a host `:checkhealth` dump. In short: the stale `nvim/` mirror was @@ -15,8 +17,15 @@ clipboard false-warning was fixed upstream in Core and pulled in; the psmux `:checkhealth` tmux noise was documented as the cosmetic wart it is; and the two mid-2026 Core CLI tools the host still lacked were wired up — `jnv` (interactive JSON explorer) and a `web` -terminal-browser verb (via `lynx`, since `w3m` has no scoop manifest). Per-change detail -below._ +terminal-browser verb (via `lynx`, since `w3m` has no scoop manifest)._ + +_**Status-bar redesign (2026-07/08).** The parity pass then widened into a full bar +rework across both surfaces the host draws — psmux (terminal) and Zebar (desktop) — with +macOS sketchybar as the reference. Both converged on the same **chip-less items on a +transparent bar** language, and `PARITY.md` was rewritten to describe the three-island +layout the macOS bar had already drifted to (adopt, not revert), so the shared contract +is true for both hosts again. Several entries below are live-testing fixes from actually +running it. Per-change detail below._ ### Added @@ -41,6 +50,13 @@ below._ `Invoke-Starship-PreCommand` draws the rule via `[Console]::Write`. Colour tracks `$LASTEXITCODE` (the status reliable at that point); pure-cmdlet failures still surface in starship's `[status]`. (`powershell/core/10-tools.ps1`) +- **Zebar caffeine / keep-awake indicator.** A placeholder matching sketchybar's + `caffeinate.sh` — grey asleep, yellow awake — in the left island. **Visual only for now**: + it renders state but doesn't yet drive a keep-awake mechanism on the host (see the Caffeine + component comment in the HTML). (`desktop/zebar/vanilla-clear/`) +- **Zebar battery shows an AC-power placeholder on desktops.** A machine with no battery + rendered nothing at all, leaving a gap in the right island; it now shows a green plug glyph. + (`desktop/zebar/vanilla-clear/`) ### Changed @@ -66,9 +82,60 @@ below._ (psmux 3.3.7) before porting. Stays within psmux's no-shell-out / no-process-table rules: the cwd pill keeps `#{b:pane_path}` (OSC 7) and Core's nvim-gated `pane_current_path` segment is intentionally **not** ported. (`psmux/psmux.conf`) +- **Zebar adopts sketchybar's floating-islands design, and `PARITY.md` now describes it.** + The macOS bar had drifted to a 3-island look (transparent bar + bordered panels) without + the shared contract being updated, so `PARITY.md` was false for one host. Resolved by + **adopting, not reverting**: the bar goes transparent and `.left`/`.center`/`.right` each + become a rounded island (`rgba(29,32,47,0.93)` fill, 2px rim, r=9) accented blue/magenta/ + green. Weather moves into the left island (stable-width, non-urgent); two grey `│` + separators chunk the right island into I/O · load · power, each gated on its own group so + a provider-startup transient can't leave a stray separator leading the island. `PARITY.md` + (identical copy in `dotfiles-MacBook`) rewritten to match: three islands, weather left, + transparent bar geometry, blur off, purple un-reserved and orange added to the palette. + **Not render-verified on a Windows host** — reload Zebar and eyeball. + (`desktop/zebar/vanilla-clear/`, `desktop/PARITY.md`) +- **psmux bar is chip-less.** Dropped the rounded pill caps (`@cap_l`/`@cap_r`) from the + session / cwd / clock / IP segments in favour of plain coloured icon+text on the + transparent bar — matching sketchybar, Zebar, and `PARITY.md`'s "items are chip-less" + spec. Also fixes the prefix and copy-mode glyphs being clipped by the cap they sat + against. (`psmux/psmux.conf`, `psmux/scripts/psmux-netinfo.ps1`) +- **Default psmux session renamed `main` → `Gerrrt`** — both the `30-windows.ps1` auto-launch + and the `mux` verb default in `32-psmux.ps1`, with the docs/comments that still said `main` + updated to match. (`psmux/`, `docs/TOOLS.md`, `TERMINAL_WORKFLOW_GUIDE.md`) +- **Zebar weather reads °F** instead of °C (`fahrenheitTemp`). + (`desktop/zebar/vanilla-clear/vanilla-clear.html`) +- **Zebar workspace pills match sketchybar's `aerospace.sh`.** Only the _focused_ workspace + is highlighted (blue background, dark text); every other one is a plain grey number with no + chip — GlazeWM's `.displayed` distinction is deliberately dropped for macOS parity, since + aerospace shows only the single focused workspace. (`desktop/zebar/vanilla-clear/styles.css`) +- **Zebar spacing and font tuning from live use on a large external monitor.** `--item-gap` + 20px → 8px to match sketchybar's per-item padding (`padding_left` 4 + `padding_right` 4); + left-island items dropped from a 16px to an 8px margin so both islands read at the same + density; `--bar-font-size` 16px → 18px, since sketchybar's ~17pt suits a laptop panel but + reads too small on a large panel (still fits the 28px island; 20px is the next comfortable + step). (`desktop/zebar/vanilla-clear/styles.css`) ### Fixed +- **psmux IP / VPN pill rendered blank.** Two distinct causes, found in that order. First, + `psmux.conf` ran `set -gq @vpn_pill ""`, which clobbered the refresher's poked value on + every `source-file` reload — removed, so `#{@vpn_pill}` persists what the refresher sets. + The segment still rendered empty, because the option was poked as a single **pre-styled** + string (`'#[fg=#9ece6a,bold] '`) and an option _value_ embedding a `#[…]` style + run is not re-interpreted when the format expands it. That's why `psmux-pill-status` showed + a populated cache (a plain file write, a separate code path) while the bar stayed empty. + Split the transport to mirror the proven `@tn_*` colour pattern: `@vpn_pill` carries plain + text only, `@vpn_fg` carries the accent hex, applied in `status-left` as + `#[fg=#{@vpn_fg}]#{@vpn_pill}`. Only the colour is defaulted in the conf (so it's never + empty on first paint); defaulting the _text_ is what caused the original clobber. + (`psmux/psmux.conf`, `psmux/scripts/psmux-netinfo.ps1`) +- **psmux prefix indicator shoved the centered tabs, and its style leaked into them.** The + prefix/mode indicator is now a wider padded cell (` 󰠠 ` / idle ` `) so every branch is the + same width and the tabs don't shift, and a `#[default]` reset after `#{@vpn_pill}` stops the + pill's bold/fg bleeding into the window tabs. (`psmux/psmux.conf`) +- **psmux nvim cwd jammed against the clock.** The `status-right` cwd↔clock gap sat inside a + `#{?}` branch, and psmux trims in-branch trailing spaces; moved outside the branch. + (`psmux/psmux.conf`) - **psmux config warning: `unknown option 'monitor-bell'`.** psmux 3.3.7 doesn't implement `monitor-bell` at all — its CLI `setw`/`set` returns exit 0 (so the capability probe was a false positive) but the config parser rejects it on load. Removed the setting; From d0b22395208a5f3af99e04152623e7a0b1e829bf Mon Sep 17 00:00:00 2001 From: Claude Date: Sat, 1 Aug 2026 22:26:50 +0000 Subject: [PATCH 2/2] docs(changelog): mark the emptied [Unreleased] section explicitly MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Promoting the content to v1.5.0 left [Unreleased] blank, which reads as ambiguous — intentionally empty, or content lost in the promotion? Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_01CzKmTKtvGgsa82MCxPPy5i --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 24979ee..27bdc8c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,8 @@ so entries are grouped by theme rather than strict semver releases. ## [Unreleased] +_Nothing yet._ + ## [v1.5.0] - 2026-08-01 _**Core → Windows parity pass (2026-07).** A focused sweep to close the drift that had