From c55f9b9ae0dceae110b71b8ace071ffb75363e44 Mon Sep 17 00:00:00 2001 From: lucy Date: Mon, 29 Dec 2025 23:41:32 +0100 Subject: [PATCH] rounded noti corners and flush with screen edge --- Colors.qml | 38 ++++++++++++++--------------- modules/bar/Bar.qml | 2 +- modules/notifications/NotiPopup.qml | 37 ++++++++++++++++------------ modules/settings/Settings.qml | 3 ++- 4 files changed, 43 insertions(+), 37 deletions(-) diff --git a/Colors.qml b/Colors.qml index 0e0a638..d19e861 100644 --- a/Colors.qml +++ b/Colors.qml @@ -5,25 +5,25 @@ import Quickshell Singleton { id: customColors // Core Backgrounds - readonly property color background: "#1A1B26" - readonly property color foreground: "#C0CAF5" - readonly property color cursor: "#C0CAF5" + readonly property color background: "#0E1019" + readonly property color foreground: "#FFFAF4" + readonly property color cursor: "#FFFAF4" // The 16 Colors of the Apocalypse - readonly property color color0: "#414868" - readonly property color color1: "#F7768E" - readonly property color color2: "#9ECE6A" - readonly property color color3: "#E0AF68" - readonly property color color4: "#7AA2F7" - readonly property color color5: "#BB9AF7" - readonly property color color6: "#7DCFFF" - readonly property color color7: "#A9B1D6" - readonly property color color8: "#414868" - readonly property color color9: "#F7768E" - readonly property color color10: "#9ECE6A" - readonly property color color11: "#E0AF68" - readonly property color color12: "#7AA2F7" - readonly property color color13: "#BB9AF7" - readonly property color color14: "#7DCFFF" - readonly property color color15: "#C0CAF5" + readonly property color color0: "#232323" + readonly property color color1: "#FF000F" + readonly property color color2: "#8CE10B" + readonly property color color3: "#FFB900" + readonly property color color4: "#008DF8" + readonly property color color5: "#6D43A6" + readonly property color color6: "#00D8EB" + readonly property color color7: "#FFFFFF" + readonly property color color8: "#444444" + readonly property color color9: "#FF2740" + readonly property color color10: "#ABE15B" + readonly property color color11: "#FFD242" + readonly property color color12: "#0092FF" + readonly property color color13: "#9A5FEB" + readonly property color color14: "#67FFF0" + readonly property color color15: "#FFFFFF" } diff --git a/modules/bar/Bar.qml b/modules/bar/Bar.qml index 3e20c45..01d494d 100644 --- a/modules/bar/Bar.qml +++ b/modules/bar/Bar.qml @@ -6,7 +6,7 @@ import "../../" PanelWindow { id: root required property var modelData - implicitHeight: 34 + implicitHeight: 36 color: Colors.background anchors { top: true diff --git a/modules/notifications/NotiPopup.qml b/modules/notifications/NotiPopup.qml index b208dac..3ca36d1 100644 --- a/modules/notifications/NotiPopup.qml +++ b/modules/notifications/NotiPopup.qml @@ -31,19 +31,26 @@ WlrLayershell { right: true } margins { - top: 45 - right: 10 + top: 36 + right: 00 } implicitWidth: 300 implicitHeight: notifList.contentHeight + 20 + Behavior on implicitHeight { + NumberAnimation { + duration: 300 + easing.type: Easing.OutQuad + } + } // 2. Layer: Put it ABOVE normal windows layer: WlrLayer.Overlay exclusionMode: ExclusionMode.Ignore // 3. CRITICAL: Make the window itself invisible! - // We only want to see the notifications, not the container. + // We only want to see the + // notifications, not the container. color: "transparent" // 4. Input: Let clicks pass through empty areas @@ -53,39 +60,37 @@ WlrLayershell { // THE SPAWNER ListView { id: notifList - anchors.fill: parent + anchors.top: parent.top + anchors.left: parent.left + anchors.right: parent.right anchors.margins: 0 // Use 'spacing' to put gaps between notifications - spacing: 10 + spacing: 00 + height: contentHeight - // Align to the bottom (like Windows) or Top (like GNOME)? - // verticalLayoutDirection: ListView.BottomToTop - - // 🔗 CONNECT TO THE SERVER - // Assuming your NotificationServer is a singleton or globally accessible - // ... other imports - - // Inside your ListView... model: NotifServer.trackedNotifications delegate: Item { id: notifyItem + required property var index + readonly property bool isLast: index === (ListView.view.count - 1) implicitWidth: ListView.view.width implicitHeight: 85 // Fixed height is usually better for icon layouts + height: implicitHeight required property var modelData Timer { id: timout interval: 3000 running: true - onRunningChanged: notifyItem.modelData.dismiss() + onTriggered: notifyItem.modelData.dismiss() } Rectangle { anchors.fill: parent color: Colors.background - radius: 20 + bottomLeftRadius: notifyItem.isLast ? 20 : 0 border.color: Colors.color5 - border.width: 2 + border.width: 0 // 2. Use RowLayout to put Image | Text side-by-side RowLayout { diff --git a/modules/settings/Settings.qml b/modules/settings/Settings.qml index da24cff..f79c320 100644 --- a/modules/settings/Settings.qml +++ b/modules/settings/Settings.qml @@ -11,13 +11,14 @@ Singleton { watchChanges: true onAdapterChanged: writeAdapter() + onFileChanged: reload() JsonAdapter { id: adapter property string lastWallpaper property string wallDir property string font - property real fontSize: 12 + property real fontSize: 14 } }