import Quickshell import Quickshell.Widgets import Quickshell.Services.Notifications import QtQuick import QtQuick.Controls import QtQuick.Effects Rectangle { id: notifRect required property var notification property bool exiting: false width: parent?.width ?? 0 height: notifContent.childrenRect.height + 32 radius: 20 color: "#181818" ClippingRectangle { antialiasing: true anchors { verticalCenter: parent.verticalCenter left: parent.left leftMargin: 12 } radius: 8 width: 40 height: 40 Image { id: notifIcon anchors.fill: parent source: notification?.image ?? source } } Column { id: notifContent anchors { left: parent.left right: parent.right top: parent.top topMargin: 16 leftMargin: 16 + (notifIcon.source == "" ? 0 : 44) rightMargin: 16 } spacing: 6 Text { anchors { left: parent.left right: parent.right } color: "white" font.family: "Comfortaa" font.pixelSize: 16 text: notification?.summary ?? text elide: Text.ElideRight wrapMode: Text.Wrap maximumLineCount: 2 } Text { anchors { left: parent.left right: parent.right } color: "white" font.family: "Comfortaa" font.pixelSize: 12 text: notification?.body ?? text elide: Text.ElideRight wrapMode: Text.Wrap maximumLineCount: 4 } } Timer { running: notification?.expireTimeout > 0 interval: (notification?.expireTimeout > 0) ? notification?.expireTimeout : 0 onTriggered: notification.tracked = false } }