quickshell/modules/notifications/NotiPopup.qml
2026-06-05 23:28:27 +02:00

47 lines
1.3 KiB
QML

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) {
console.log(current.name);
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
}
}
}