diff --git a/settings/quickshell.nix b/settings/quickshell.nix index e6ecabb..1a58b3d 100644 --- a/settings/quickshell.nix +++ b/settings/quickshell.nix @@ -4832,8 +4832,13 @@ in // is taller than the space (yMax < yMin). readonly property real yMin: Theme.frameWidth readonly property real yMax: bar.height - Theme.frameWidth - height + // A panel whose opener sits high on the bar looks adrift + // when it merely centres on it — pin it to the frame, the + // way the bottom cluster's menus already land on yMax. + property bool alignTop: false x: Theme.barWidth - y: Math.round(Math.max(yMin, Math.min(yMax, dropdownY - height / 2))) + y: alignTop ? Math.round(yMin) + : Math.round(Math.max(yMin, Math.min(yMax, dropdownY - height / 2))) width: fullWidth + 4 // +24, not +16: the shader insets the panel 8px top and // bottom, so +16 left the panel edge flush with the content @@ -5200,6 +5205,7 @@ in // no rebuild and no restart. BarDropdown { id: wallDropdown + alignTop: true fullWidth: wallCard.width + 2 * Theme.panelGap fullHeight: wallCard.height + 2 * Theme.panelGap