pragma ComponentBehavior: Bound import Quickshell import Quickshell.Services.Notifications import QtQuick import qs.Modules Scope { id: root property list notifIds: [] property list notifications; NotificationServer { id: notificationServer imageSupported: true actionsSupported: true persistenceSupported: true bodyImagesSupported: true bodySupported: true onNotification: notification => { notification.tracked = true; notification.receivedTime = Date.now(); root.notifIds.push(notification.id); const notif = notificationComponent.createObject(root, { notif: notification, visible: !notificationCenter.doNotDisturb }); root.notifications.push(notif); } } Component { id: notificationComponent TrackedNotification { centerX: notificationCenter.posX notifIndex: root.notifIds notifList: root.notifications onNotifDestroy: { root.notifications.shift(); root.notifIds.shift(); } } } NotificationCenter { id: notificationCenter notifications: notificationServer.trackedNotifications.values } }