import Quickshell import QtQuick // for Text import QtQuick.Controls import QtQuick.Layouts import Quickshell.Services.Notifications import Quickshell.Io import Quickshell.Widgets import Quickshell.Hyprland ColumnLayout { anchors.fill: parent id: lay spacing: 10 required property NotificationServer server ClippingWrapperRectangle { color: Pywal.colors.color11 radius: 5 Layout.margins: 5 Layout.alignment: Qt.AlignVCenter | Qt.AlignTop implicitWidth: lay.width - 2 * Layout.margins RowLayout { width: parent.width Text { color: Pywal.colors.color0 Layout.margins: 5 Layout.alignment: Qt.AlignLeft | Qt.AlignVCenter text: 'Notifications' } Button { Layout.alignment: Qt.AlignRight | Qt.AlignVCenter Layout.margins: 5 implicitWidth: 20 implicitHeight: 20 text: 'x' onClicked: { while(server.trackedNotifications.values.length > 0) { server.trackedNotifications.values[0].dismiss() } } } } } ColumnLayout { width: parent.width Layout.alignment: Qt.AlignVCenter | Qt.AlignTop Repeater { id: rep model: server.trackedNotifications.values Notif { required property int index src: rep.model[index] } onItemAdded: (idx, it) => { //button.text = '󱅫 ' + rep.count } onItemRemoved: (idx, it) => { //button.text = (rep.count - 1) <= 0 ? "󰂚" : '󱅫 ' + (rep.count - 1) } } } }