From 32f3d39610f82c04e87330ed955da78a58497be7 Mon Sep 17 00:00:00 2001 From: rope Date: Wed, 27 May 2026 15:46:38 +0100 Subject: [PATCH] quickshell: add 1px base03 border to bar and dropdowns Co-Authored-By: Claude Opus 4.6 --- settings/hyprland.nix | 44 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/settings/hyprland.nix b/settings/hyprland.nix index 2954b43..b214a9f 100644 --- a/settings/hyprland.nix +++ b/settings/hyprland.nix @@ -649,6 +649,20 @@ in anchors.right: parent.right height: 30 color: Theme.barBg + border.width: 1 + border.color: Theme.base03 + } + + // Cover bar bottom border where dropdown connects + Rectangle { + visible: activeDropdown && activeDropdown.visible + x: activeDropdown ? (activeDropdown.alignRight + ? activeDropdown.x + activeDropdown.width - activeDropdown.fullWidth + : activeDropdown.x + 8) : 0 + y: 29 + width: activeDropdown ? activeDropdown.fullWidth : 0 + height: 2 + color: Theme.barBg } property var activeDropdown: null @@ -1265,6 +1279,12 @@ in ctx.moveTo(0, 0); ctx.lineTo(8, 0); ctx.lineTo(8, 8); ctx.arc(0, 8, 8, 0, -Math.PI / 2, true); ctx.closePath(); ctx.fill(); + // Border stroke along the curve + ctx.strokeStyle = Theme.base03; + ctx.lineWidth = 1; + ctx.beginPath(); + ctx.arc(0, 8, 8, 0, -Math.PI / 2, true); + ctx.stroke(); } } } @@ -1288,6 +1308,12 @@ in ctx.moveTo(0, 0); ctx.lineTo(8, 0); ctx.arc(8, 8, 8, -Math.PI / 2, Math.PI, true); ctx.closePath(); ctx.fill(); + // Border stroke along the curve + ctx.strokeStyle = Theme.base03; + ctx.lineWidth = 1; + ctx.beginPath(); + ctx.arc(8, 8, 8, -Math.PI / 2, Math.PI, true); + ctx.stroke(); } } } @@ -1304,8 +1330,20 @@ in topLeftRadius: 0 topRightRadius: 0 bottomRightRadius: dropdown.alignRight ? 0 : 8 + border.width: 1 + border.color: Theme.base03 clip: true + // Cover the top border + bar bottom border seam + Rectangle { + anchors.top: parent.top + anchors.left: parent.left + anchors.right: parent.right + anchors.leftMargin: dropdown.alignRight ? 0 : 0 + height: 2 + color: Theme.barBg + } + Behavior on height { NumberAnimation { duration: 220; easing.type: Easing.OutCubic } } @@ -1336,6 +1374,12 @@ in ctx.lineTo(8, 8); ctx.arc(0, 8, 8, 0, -Math.PI / 2, true); ctx.fill(); + // Border stroke along the curve + ctx.strokeStyle = Theme.base03; + ctx.lineWidth = 1; + ctx.beginPath(); + ctx.arc(0, 8, 8, 0, -Math.PI / 2, true); + ctx.stroke(); } } }