From 4717d1e08f228bc7c09f5f5d7bba487550d98cbb Mon Sep 17 00:00:00 2001 From: rope Date: Tue, 28 Jul 2026 13:22:51 +0100 Subject: [PATCH] quickshell: inset clamped panels from the frame, widen bottom cluster MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit A dropdown that hits the clamp landed exactly on frameWidth, fusing into the frame band in the SDF and losing its rounded corner — that is what the calendar was doing at the top. Clamp now insets by panelGap at both ends. Bottom cluster spacing 12 -> 16, separators 5 -> 10. Co-Authored-By: Claude Opus 5 --- settings/quickshell.nix | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/settings/quickshell.nix b/settings/quickshell.nix index 6ca82fb..6c3d2a4 100644 --- a/settings/quickshell.nix +++ b/settings/quickshell.nix @@ -1573,7 +1573,7 @@ in anchors.bottom: parent.bottom anchors.bottomMargin: 12 anchors.horizontalCenter: barBgRect.horizontalCenter - spacing: 12 + spacing: 16 // Volume Item { @@ -1916,7 +1916,7 @@ in // Group separator: status icons / tray / power read // as three clusters instead of one clump. - Item { width: Theme.barWidth; height: 5 } + Item { width: Theme.barWidth; height: 10 } // Tray icons — stacked, like everything else in the column Column { @@ -1999,7 +1999,7 @@ in // Group separator: status icons / tray / power read // as three clusters instead of one clump. - Item { width: Theme.barWidth; height: 5 } + Item { width: Theme.barWidth; height: 10 } // Power menu opener — bottom-left corner. Opens the same // session menu as Super+L, which now unfolds from here. @@ -2068,9 +2068,14 @@ in open = true; } + // Inset by panelGap so a panel that hits the clamp never + // sits flush on the frame band: flush fuses the two in the + // SDF and eats the panel's rounded corner. Outer max wins + // when a panel is taller than the space (yMax < yMin). + readonly property real yMin: Theme.frameWidth + Theme.panelGap + readonly property real yMax: bar.height - Theme.frameWidth - Theme.panelGap - height x: Theme.barWidth - y: Math.round(Math.min(bar.height - Theme.frameWidth - height, - Math.max(Theme.frameWidth, dropdownY - height / 2))) + y: Math.round(Math.max(yMin, Math.min(yMax, dropdownY - height / 2))) width: fullWidth + 4 height: fullHeight + 16 visible: false