Bar moves from a horizontal top band to a vertical left column
(Theme.barHeight -> barWidth, 46px for the stacked HH/mm clock).
Every panel now grows rightward out of the bar instead of down:
the dropdown chrome's morph axis, the SDF surface geometry and the
session menu all swap x/y. The launcher is the one surface left at
bottom-centre, as asked.
New: NixOS snowflake at the top (recoloured to the accent with the
tray's hidden-Image + ColorOverlay trick), vertical workspace dots
whose focused pill grows on height, an inline OSD slot in the gap
between the two clusters, and a power button in the bottom-left
that opens the session menu.
Dropped the flush-to-far-edge dropdown special case — clamped
tracking plus the SDF melt already covers it.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Sixth surface in the SDF chrome shader, melting out of the bottom
frame. Volume is reactive via Pipewire so the OSD also fires for
pavucontrol/mixer changes; brightness routes through a new osd IPC
handler since sysfs backlight only notifies via POLLPRI.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
- album art uses ClippingRectangle so the image follows the radius
- NotifContent gains an app icon + name header
- notifications move to a full-width card spanning both panes, each item
showing the notification image preview when present
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Extend the launcher/session HyprlandFocusGrab to the bar dropdowns and
remove the per-dropdown inactivity timers. Shift+Super+S brackets hyprshot
with a screenshot pin so open menus survive slurp's input grab.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- calendar month chevrons: fade from transparent base02, no black flash
- power menu: all four buttons use the logout base05 setup
- runner results: base01 card segment matching other dropdowns
- cards: translucent cardBg so the bar-layer blur shows through
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Reduces the shell from 2898 → 2712 lines (~316 lines of duplication removed,
~130 of reusable scaffolding added). Rollback point: tag quickshell-pre-refactor.
- Theme tokens: barHeight, radius/radiusSmall/radiusTiny, cardPad, animMorph/
animContent/animFade — bar height and the shader cutout math now derive from
one constant instead of ~10 scattered 30/26 literals
- SText/SIcon base components default the two fonts (removed 58 font.family lines)
- Card component: the rounded base01 section surface, now one definition driving
7 cards (volume ×2, network ×2, battery ×2, calendar)
- PillSlider component: master + per-app volume sliders share one slider
- NotifContent component: calendar list + toast notification bodies deduped
- dead code: dropped unused QtQuick.Shapes import, collapsed redundant
weatherGlyph branches, converted the lone RowLayout to drop QtQuick.Layouts
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- launcher moved into the bar window as a 5th SDF surface: melts out of
the bottom frame edge, height morphs live as results filter
- session menu selection is a gliding pill (battery-menu tech)
- launcher selection uses an animated ListView highlight
- HyprlandFocusGrab gives both panels click-outside dismissal
- standalone Launcher.qml window removed
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- Material Symbols Rounded (ligature names) replaces nerd-font glyphs for
all shell icons; text stays on the stylix mono font
- network dropdown gets the card treatment like the others
- power menu is now an icon-only session panel melting out of the right
frame column at screen centre (still Super+L); launcher is apps-only
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Bar, frame, panel and toast are one signed-distance field (compiled to
qsb at build time); ears, border gaps and the parametric melt are all
emergent from the math. PanelShape and all melt machinery deleted.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>