feat(themes): #53 last previews + quarantine neon-glass broken bar
All checks were successful
Check / eval (push) Successful in 2m58s
All checks were successful
Check / eval (push) Successful in 2m58s
Capture executive-slate + neon-glass preview.png (480x270, theme-shot) — all 24 themes now have picker previews. Quarantine neon-glass's broken whole-swap: its waybar.css referenced @accent/@base/… with no @define-color block, and waybar.nix reads a whole-swap css raw (no palette prepend), so applying it rendered broken bar colours. Removing it falls back to the generated bar from the theme's JSON palette. Verified: V2 theme-shot renders viewed — executive-slate clean; neon-glass bar now renders correctly, no config-error banner. V0 flake check green. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -120,15 +120,6 @@ pass — accentAlt retuned to Latte mauve `#8839ef`, not the audit's pink
|
||||
of the btop-changed themes (rose-pine, everforest, summer-night, vantablack,
|
||||
catppuccin) — btop.theme isn't contrast-checked.
|
||||
|
||||
### 53. Missing theme previews + neon-glass whole-swap (promoted 2026-07-09, V2)
|
||||
- Capture `executive-slate` + `neon-glass` `preview.png` headlessly via the
|
||||
theme-shot recipe proven on boreal (480×270); optional hand `btop.theme`.
|
||||
- **First, for neon-glass:** its `waybar.css` uses `@text/@base/…` with no
|
||||
`@define-color` block (and no `waybar.jsonc`), so applying it yields broken
|
||||
bar colours. Decide: **finish** (self-contained colours + jsonc + preview)
|
||||
or **quarantine** (remove `waybar.css` → falls back to the generated bar),
|
||||
then capture the preview. V2 render.
|
||||
|
||||
### 54. Installer safety + polish — V2 scenarios pending
|
||||
Four guards shipped 2026-07-09 (V0/V1: bash -n, flake check, nomarchy-install
|
||||
builds): offline `compose-lock` failure now fail-closes instead of a network
|
||||
@@ -206,7 +197,8 @@ neon-glass quarantine.
|
||||
### Bugs / broken behavior (codebase exam 2026-07-09)
|
||||
|
||||
_(Waybar doctor indicator, Control Center appearance no-ops, summer-day
|
||||
scroll → #51; neon-glass broken waybar → #53.)_
|
||||
scroll → #51; neon-glass broken waybar → **fixed** 2026-07-09 by quarantine
|
||||
(removed `waybar.css` → generated bar; render-confirmed).)_
|
||||
|
||||
- **Battery charge-limit / powerprofile only match `BAT*` sysfs names**
|
||||
`power.nix` oneshot and menu/waybar globs use
|
||||
@@ -240,8 +232,9 @@ nomarchy-menu usage string, secondary docs, always-on pieces → #47.)_
|
||||
|
||||
### Theme polish / completeness (codebase exam 2026-07-09)
|
||||
|
||||
- **boreal preview recapture nicety** (executive-slate + neon-glass previews
|
||||
→ **#53**). `boreal` now has a `preview.png` (2026-07-09) but it's a headless
|
||||
- **theme preview recapture nicety** (all 24 themes now have `preview.png`
|
||||
as of 2026-07-09 — executive-slate + neon-glass captured via theme-shot).
|
||||
These headless captures are a clean bare desktop+bar, not the
|
||||
theme-shot capture — a clean bare desktop+bar, not the floating-terminal
|
||||
(fastfetch+btop) composition the other 21 use; a real-hardware recapture to
|
||||
match the grid would be nicer (VM is the documented fallback). Optional hand
|
||||
|
||||
@@ -17,6 +17,22 @@ Template:
|
||||
|
||||
---
|
||||
|
||||
## 2026-07-09 — #53 theme previews + neon-glass quarantine
|
||||
- **Task:** NEXT #53 — capture the last two missing previews + resolve the
|
||||
neon-glass broken whole-swap. Product call: **quarantine**.
|
||||
- **Did:** Confirmed the contract (working whole-swaps carry 12–23
|
||||
`@define-color` blocks; `waybar.nix:448` reads the whole-swap css **raw**,
|
||||
no palette prepend — so neon-glass's 0-`@define-color` css is genuinely
|
||||
broken). `git rm themes/neon-glass/waybar.css` → falls back to the generated
|
||||
bar from its (fine) JSON palette. Rendered executive-slate + neon-glass via
|
||||
theme-shot; captured 480×270 `preview.png` for both — **all 24 themes now
|
||||
have previews**.
|
||||
- **Verified:** **V2** — viewed both renders: executive-slate clean; neon-glass
|
||||
bar now renders correctly (generated palette), no banner. V0 flake check green
|
||||
with the css removed.
|
||||
- **Pending:** none. Optional: hand `btop.theme` for the 3 identity themes; a
|
||||
hardware recapture to match the floating-terminal composition (nicety note).
|
||||
|
||||
## 2026-07-09 — #54 installer safety + polish (delegated, worktree)
|
||||
- **Task:** NEXT #54. Sonnet worktree agent (installer only).
|
||||
- **Did:** offline `compose-lock` failure fail-closes (reuses the
|
||||
|
||||
BIN
themes/executive-slate/preview.png
Normal file
BIN
themes/executive-slate/preview.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 169 KiB |
BIN
themes/neon-glass/preview.png
Normal file
BIN
themes/neon-glass/preview.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 201 KiB |
@@ -1,108 +0,0 @@
|
||||
/* Neon Glass Waybar — Segmented floating pills with glassmorphism */
|
||||
|
||||
* {
|
||||
font-family: "Inter", "Symbols Nerd Font", sans-serif;
|
||||
font-size: 13px;
|
||||
font-weight: 500;
|
||||
border: none;
|
||||
border-radius: 0;
|
||||
min-height: 0;
|
||||
}
|
||||
|
||||
window#waybar {
|
||||
/* The main bar background is transparent so the wallpaper shows through */
|
||||
background: transparent;
|
||||
color: @text;
|
||||
}
|
||||
|
||||
/*
|
||||
* The pill containers: left, center, right.
|
||||
* Glassmorphism: semi-transparent base + blur (blur requires hyprland layerrule if waybar doesn't natively blur, but alpha base helps).
|
||||
*/
|
||||
.modules-left,
|
||||
.modules-center,
|
||||
.modules-right {
|
||||
background: alpha(@base, 0.45);
|
||||
border: 1px solid alpha(@accent, 0.2);
|
||||
border-radius: 20px;
|
||||
margin: 4px 6px;
|
||||
padding: 2px 8px;
|
||||
box-shadow: 0 4px 10px rgba(0, 0, 0, 0.3);
|
||||
}
|
||||
|
||||
/* Add a glowing top border effect on hover or generally to accent the glass */
|
||||
.modules-left {
|
||||
border-top: 1px solid alpha(@accent, 0.6);
|
||||
}
|
||||
.modules-center {
|
||||
border-top: 1px solid alpha(@text, 0.3);
|
||||
}
|
||||
.modules-right {
|
||||
border-top: 1px solid alpha(@accentAlt, 0.6);
|
||||
}
|
||||
|
||||
/* Remove default padding from individual modules so they fit snug in the pill */
|
||||
#workspaces button,
|
||||
#window,
|
||||
#clock,
|
||||
#tray,
|
||||
#pulseaudio,
|
||||
#battery,
|
||||
#custom-notification,
|
||||
#custom-vpn,
|
||||
#custom-powerprofile,
|
||||
#custom-updates,
|
||||
#custom-doctor {
|
||||
padding: 0 8px;
|
||||
margin: 0 2px;
|
||||
}
|
||||
|
||||
/* Workspaces */
|
||||
#workspaces button {
|
||||
color: @subtext;
|
||||
border-radius: 12px;
|
||||
transition: all 0.2s cubic-bezier(0.25, 1, 0.5, 1);
|
||||
}
|
||||
|
||||
#workspaces button:hover {
|
||||
background: alpha(@surface, 0.5);
|
||||
color: @text;
|
||||
}
|
||||
|
||||
#workspaces button.active {
|
||||
color: @accent;
|
||||
background: alpha(@accent, 0.15);
|
||||
box-shadow: 0 0 8px alpha(@accent, 0.4);
|
||||
}
|
||||
|
||||
#workspaces button.urgent {
|
||||
color: @bad;
|
||||
background: alpha(@bad, 0.15);
|
||||
}
|
||||
|
||||
/* Indicators */
|
||||
#battery.charging { color: @good; }
|
||||
#battery.warning:not(.charging) { color: @warn; }
|
||||
#battery.critical:not(.charging) {
|
||||
color: @bad;
|
||||
animation: blink 1s steps(2, start) infinite;
|
||||
}
|
||||
|
||||
#pulseaudio.muted { color: @muted; }
|
||||
|
||||
#custom-updates { color: @accentAlt; }
|
||||
#custom-doctor { color: @bad; }
|
||||
#custom-vpn { color: @accent; }
|
||||
|
||||
@keyframes blink {
|
||||
to { color: @text; }
|
||||
}
|
||||
|
||||
tooltip {
|
||||
background: alpha(@base, 0.85);
|
||||
border: 1px solid alpha(@accent, 0.4);
|
||||
border-radius: 12px;
|
||||
}
|
||||
tooltip label {
|
||||
color: @text;
|
||||
}
|
||||
Reference in New Issue
Block a user