Replaces the warp_on_toggle_special + click-away approach, which dragged
the pointer around on open and close.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
None of them worked. quickshell.nix is back to a8eb767 apart from the
hidden-directory search change, which was a separate request and does
work. Removed: the toggle/grab/compositor-event logging, the grab re-arm,
and the full-screen input mask with its click catcher.
Kept the Battle.net window rule's class match (steam_app_0 was stale, and
the tray-icon rule below it needs the widened match), but its comment no
longer claims to fix the launcher.
Recorded the diagnosis at the focus grab so this doesn't get re-derived:
Hyprland's mouseMoveUnified() destroys the seat grab on any refocus()
while the cursor is over a surface the grab doesn't own, and every window
map/unmap calls refocus(). No user input involved, nothing to suppress.
Battle.net now maps as steam_app_default, not steam_app_0, so the
suppress_event rule stopped applying — its activation spam clears
quickshell's focus grab, which kills the launcher in the same frame it
opens. Match either class; same for the tray-icon rule.
New settings/ui.nix holds `radius` as the one source of truth. Theme
derives radiusCard/Small/Tiny from it and hyprland's decoration.rounding
reads the same value, so one number rescales the whole desktop —
previously the shell and the window corners were unrelated constants,
which is why doubling Theme.radius left windows at 8.
Cards were using the SAME radius as the panel containing them. Nested
corners need outer − gap; matching them makes the inner corner
over-round for its size, which is the inflated/balloon look. All nine
inner surfaces now use radiusCard (radius − panelGap). Invisible at
r=8, obvious at r=32.
Radius 32 -> 24.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
trayArea kept anchors.verticalCenter from when it was a Row inside a
Row. A Column refuses to position ANY child when one sets a vertical
anchor ("Column will not function"), so volume/network/night-mode/
tray/power all fell to y=0 and stacked unclickably in the corner.
Workspace switch animation gets style = "slidevert" so it slides up/
down to match the vertical workspace column.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
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>
Battle.net (non-Steam shortcut, class steam_app_0) spams window-activation
events that clear quickshell's HyprlandFocusGrab, instantly closing the
launcher / power menu. suppress_event activate activatefocus drops them.
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>