a BUNCH of qml which I havent reviewed yet

This commit is contained in:
2026-10-23 16:19:22 -06:00
parent 7a57f3a0d2
commit 0d297296ca
16 changed files with 921 additions and 0 deletions
+145
View File
@@ -0,0 +1,145 @@
import QtQuick
import Quickshell
import Quickshell.Services.Notifications
// notification daemon (replaces xfce4-notifyd for the hyprland session)
Scope {
id: notifications
readonly property int defaultTimeout: 5000
NotificationServer {
id: server
keepOnReload: true
bodySupported: true
bodyMarkupSupported: true
actionsSupported: true
imageSupported: true
onNotification: notification => notification.tracked = true
}
PanelWindow {
visible: server.trackedNotifications.values.length > 0
anchors {
top: true
right: true
}
margins {
top: 8
right: 8
}
exclusiveZone: 0
implicitWidth: 380
implicitHeight: stack.implicitHeight
color: "transparent"
Column {
id: stack
width: parent.width
spacing: 8
Repeater {
model: server.trackedNotifications
Rectangle {
id: card
required property Notification modelData
readonly property bool critical: modelData.urgency === NotificationUrgency.Critical
width: stack.width
implicitHeight: content.implicitHeight + 20
color: Colors.background
border.width: 2
border.color: critical ? Colors.alert : Colors.secondary
Timer {
running: !card.critical && card.modelData.expireTimeout !== 0
interval: card.modelData.expireTimeout > 0
? card.modelData.expireTimeout * 1000
: notifications.defaultTimeout
onTriggered: card.modelData.expire()
}
Column {
id: content
anchors {
left: parent.left
right: parent.right
top: parent.top
margins: 10
}
spacing: 4
Text {
width: parent.width
text: card.modelData.summary
color: card.critical ? Colors.alert : Colors.foreground
font.family: Colors.font
font.pointSize: Colors.fontSize
font.bold: true
elide: Text.ElideRight
}
Text {
width: parent.width
visible: text !== ""
text: card.modelData.body
textFormat: Text.StyledText
color: Colors.foreground
font.family: Colors.font
font.pointSize: Colors.fontSize - 1
wrapMode: Text.Wrap
maximumLineCount: 6
elide: Text.ElideRight
}
Row {
visible: card.modelData.actions.length > 0
spacing: 8
Repeater {
model: card.modelData.actions
Rectangle {
required property NotificationAction modelData
implicitWidth: actionLabel.implicitWidth + 16
implicitHeight: actionLabel.implicitHeight + 8
color: Colors.backgroundAlt
Text {
id: actionLabel
anchors.centerIn: parent
text: parent.modelData.text
color: Colors.foregroundAlt
font.family: Colors.font
font.pointSize: Colors.fontSize - 1
}
MouseArea {
anchors.fill: parent
cursorShape: Qt.PointingHandCursor
onClicked: parent.modelData.invoke()
}
}
}
}
}
MouseArea { // click anywhere else on the card to dismiss
anchors.fill: parent
z: -1
onClicked: card.modelData.dismiss()
}
}
}
}
}
}