From e78962e28eafb2cb0b1bf8304dd1e0c4936044cf Mon Sep 17 00:00:00 2001 From: "Danilo M." Date: Tue, 15 Sep 2026 12:11:03 +0200 Subject: feat(desktop): add presentation mode and its effects Presentation mode sets DND, asserts a Wayland idle inhibitor and pauses breaktimer. The effects hang off the mode property rather than the setter, so a mode set with statusctl while the drawer is closed asserts them too. DND has two writers once presentation mode exists, so turning presentation off restores the value DND had before rather than clearing it, or an afternoon of hand-set DND would vanish when a talk ends. That prior value lives in the singleton, not in a file: it means nothing once presentation mode is off, and presentation mode does not survive a reboot. breaktimer owns its own state file and is driven only through its verbs. Two writers on that file would race with its daemon loop. --- desktop/shell.qml | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'desktop/shell.qml') diff --git a/desktop/shell.qml b/desktop/shell.qml index 2888e36..304716a 100644 --- a/desktop/shell.qml +++ b/desktop/shell.qml @@ -12,6 +12,7 @@ import Quickshell import Quickshell.Io import Quickshell.Wayland +import QtQuick import "modules/appearance" import "modules/bluetooth" import "modules/kdeconnect" @@ -36,6 +37,9 @@ ShellRoot { exclusionMode: ExclusionMode.Ignore mask: Region {} WlrLayershell.keyboardFocus: WlrKeyboardFocus.None + + // The singleton has no window of its own and IdleInhibitor needs one. + Component.onCompleted: Status.inhibitWindow = keepalive } Drawer { -- cgit v1.2.3