From d00f52480b19b714f50b1a017935e94ed1b486b5 Mon Sep 17 00:00:00 2001 From: "Danilo M." Date: Fri, 11 Sep 2026 16:57:33 +0200 Subject: fix(volume-osd): keep the shell alive when nothing is visible Quickshell exits once no window is visible. The OSD is hidden between changes, and with no MPRIS player running there is nothing else to hold it open, so the process loaded cleanly, logged no error and quit. The symptom was a panel that never appeared: not a blank panel, a dead shell. A 1x1 transparent window with an empty mask keeps it running. The mask makes it click-through, so it cannot catch a stray click, and it draws nothing. This window existed earlier and was removed after a process check that was measuring the wrong thing, which made it look unnecessary. The README now says why it is there, so it does not get removed a third time. Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_01G7NRsGyF9jGfPYS4zPqpN7 --- volume-osd/VolumeOsd.qml | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'volume-osd/VolumeOsd.qml') diff --git a/volume-osd/VolumeOsd.qml b/volume-osd/VolumeOsd.qml index ab7eb62..f739aec 100644 --- a/volume-osd/VolumeOsd.qml +++ b/volume-osd/VolumeOsd.qml @@ -81,6 +81,19 @@ Scope { onTriggered: root.active = null } + // Quickshell exits once no window is visible, and the OSD is hidden most + // of the time, so a 1x1 transparent window holds the process open. Its + // empty mask makes it click-through, so it cannot catch a stray click. + PanelWindow { + visible: true + implicitWidth: 1 + implicitHeight: 1 + color: "transparent" + exclusionMode: ExclusionMode.Ignore + mask: Region {} + WlrLayershell.keyboardFocus: WlrKeyboardFocus.None + } + PanelWindow { id: win -- cgit v1.2.3