forked from Shinonome/dots-hyprland
waffles: popup notifs
This commit is contained in:
+66
@@ -0,0 +1,66 @@
|
||||
import QtQuick
|
||||
import QtQuick.Controls
|
||||
import Quickshell
|
||||
import Quickshell.Wayland
|
||||
import Quickshell.Hyprland
|
||||
import qs
|
||||
import qs.services
|
||||
import qs.modules.common
|
||||
import qs.modules.common.widgets
|
||||
import qs.modules.waffle.looks
|
||||
import qs.modules.waffle.notificationCenter
|
||||
|
||||
Scope {
|
||||
id: notificationPopup
|
||||
|
||||
PanelWindow {
|
||||
id: root
|
||||
visible: (Notifications.popupList.length > 0) && !GlobalStates.screenLocked
|
||||
screen: Quickshell.screens.find(s => s.name === Hyprland.focusedMonitor?.name) ?? null
|
||||
|
||||
WlrLayershell.namespace: "quickshell:notificationPopup"
|
||||
WlrLayershell.layer: WlrLayer.Overlay
|
||||
exclusiveZone: 0
|
||||
|
||||
anchors {
|
||||
top: true
|
||||
right: true
|
||||
bottom: true
|
||||
}
|
||||
|
||||
mask: Region {
|
||||
item: listview.contentItem
|
||||
}
|
||||
|
||||
color: "transparent"
|
||||
implicitWidth: listview.implicitWidth
|
||||
|
||||
WListView {
|
||||
id: listview
|
||||
anchors {
|
||||
bottom: parent.bottom
|
||||
right: parent.right
|
||||
left: parent.left
|
||||
}
|
||||
leftMargin: 16
|
||||
rightMargin: 16
|
||||
topMargin: 16
|
||||
bottomMargin: 16
|
||||
|
||||
height: Math.min(contentItem.height + topMargin + bottomMargin, parent.height)
|
||||
width: parent.width - Appearance.sizes.elevationMargin * 2
|
||||
|
||||
implicitWidth: 396
|
||||
spacing:12
|
||||
|
||||
model: ScriptModel {
|
||||
values: Notifications.popupList
|
||||
}
|
||||
delegate: WSingleNotification {
|
||||
required property var modelData
|
||||
notification: modelData
|
||||
width: ListView.view.width - ListView.view.leftMargin - ListView.view.rightMargin
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user