47 lines
1.3 KiB
QML
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
|
|
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
|
|
}
|
|
}
|
|
}
|