pragma ComponentBehavior: Bound import Quickshell import QtQuick import Quickshell.Wayland import qs.settings import Quickshell.Hyprland WlrLayershell { id: notiPopup property ShellScreen activeScreen: getActiveScreen() function getActiveScreen() { let current = Quickshell.screens[0]; for (let i = 0; i < Quickshell.screens.length; i++) { current = Quickshell.screens[i]; if (Hyprland.monitorFor(current) == Hyprland.focusedMonitor) { return current; } } return current; } exclusionMode: ExclusionMode.Ignore layer: WlrLayer.Overlay screen: activeScreen anchors { top: true right: true } margins.top: Config.barHeight + 8 + (Config.floating ? 10 : 0) margins.right: 8 implicitHeight: notiList.contentHeight implicitWidth: activeScreen.width / 6 color: 'transparent' visible: NotiServer.notifications.values.length > 0 ListView { id: notiList anchors.fill: parent model: NotiServer.notifications spacing: 6 delegate: NotiCard { required property var modelData nScreen: notiPopup.activeScreen notification: modelData } } }