aboutsummaryrefslogtreecommitdiffstats
path: root/notifications/Balloons.qml
diff options
context:
space:
mode:
authorDanilo M. <danix@danix.xyz>2026-10-19 09:19:10 +0200
committerDanilo M. <danix@danix.xyz>2026-10-19 09:19:10 +0200
commiteb7629c5804b75d99be717a3f401f0c15adb9029 (patch)
treee45d360e341f5fac7957167e9165a1e87a25cacd /notifications/Balloons.qml
parentd21ff23ed34048b4334c1183e8961b33d974969e (diff)
downloadquickshell-eb7629c5804b75d99be717a3f401f0c15adb9029.tar.gz
quickshell-eb7629c5804b75d99be717a3f401f0c15adb9029.zip
notifications: place, mute and DND balloons from config.json
Screen and corner come from the shared config. Mute and the DND rule go through NotifyConfig.withheld, so the settings page's node check covers the same decision the balloon makes. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Diffstat (limited to 'notifications/Balloons.qml')
-rw-r--r--notifications/Balloons.qml13
1 files changed, 8 insertions, 5 deletions
diff --git a/notifications/Balloons.qml b/notifications/Balloons.qml
index 0a48510..b02099c 100644
--- a/notifications/Balloons.qml
+++ b/notifications/Balloons.qml
@@ -14,7 +14,8 @@ import Quickshell.Io
import Quickshell.Wayland
import QtQuick
-// The balloon stack, bottom-right of DP-1, over conky.
+// The balloon stack, in the corner and on the screen notifyd's config.json
+// names (bottom-right of DP-1 by default), over conky.
Scope {
id: root
@@ -78,9 +79,12 @@ Scope {
// re-maps it. Expired entries that stay in the queue keep a
// zero-height window mapped, which is harmless.
visible: root.live.length > 0
- screen: Quickshell.screens.find(s => s.name === "DP-1") ?? Quickshell.screens[0]
- anchors { bottom: true; right: true }
- margins { bottom: 12; right: 12 }
+ readonly property var place: Notify.config.balloons
+ readonly property bool atTop: place.corner.startsWith("top")
+ readonly property bool atLeft: place.corner.endsWith("left")
+ screen: Quickshell.screens.find(s => s.name === place.screen) ?? Quickshell.screens[0]
+ anchors { top: atTop; bottom: !atTop; left: atLeft; right: !atLeft }
+ margins { top: 12; bottom: 12; left: 12; right: 12 }
implicitWidth: 340
implicitHeight: column.implicitHeight
color: "transparent"
@@ -92,7 +96,6 @@ Scope {
Column {
id: column
width: parent.width
- anchors { bottom: parent.bottom; right: parent.right }
spacing: 8
Repeater {