From ce96f120fde7cbe85750b3d6bc21b1bc58383078 Mon Sep 17 00:00:00 2001 From: Trevin <132922589+T-Crypt@users.noreply.github.com> Date: Sun, 18 Oct 2026 01:18:48 -0600 Subject: [PATCH 1/2] 2K3Z3XC overlays: a mask of several regions, and keys on request A plugin overlay can now hand over its own maskRegion, so a surface that draws several separate things keeps the gaps clickable, and can ask for keyboard focus while one of its text fields is in use. --- .../aphotic/modules/overlay/PluginOverlayWindow.qml | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/Configs/quickshell/aphotic/modules/overlay/PluginOverlayWindow.qml b/Configs/quickshell/aphotic/modules/overlay/PluginOverlayWindow.qml index d49d5368..2519203d 100644 --- a/Configs/quickshell/aphotic/modules/overlay/PluginOverlayWindow.qml +++ b/Configs/quickshell/aphotic/modules/overlay/PluginOverlayWindow.qml @@ -67,7 +67,9 @@ PanelWindow { // and below every real shell surface, so a pet or a visualiser can // never cover the bar, the notch or a popout. WlrLayershell.layer: WlrLayer.Bottom - WlrLayershell.keyboardFocus: WlrKeyboardFocus.None + // An overlay that holds a text field asks for focus while it is being + // typed in by setting `wantsKeyboard`; otherwise it never takes keys. + WlrLayershell.keyboardFocus: content.item?.wantsKeyboard === true ? WlrKeyboardFocus.OnDemand : WlrKeyboardFocus.None WlrLayershell.exclusionMode: ExclusionMode.Normal WlrLayershell.exclusiveZone: 0 color: "transparent" @@ -86,7 +88,14 @@ PanelWindow { implicitWidth: root.surface.width implicitHeight: root.surface.height - mask: Region { + // A plugin that draws several separate things (desktop widgets) hands + // over a `maskRegion` of its own, so the gaps between them stay the + // desktop's to click. + mask: content.item?.maskRegion ?? itemMask + + Region { + id: itemMask + item: content.item?.maskItem ?? content.item ?? null } From d59568e2cfc06ccd189e2620d3d957d4bcdcd2de Mon Sep 17 00:00:00 2001 From: Trevin <132922589+T-Crypt@users.noreply.github.com> Date: Sun, 18 Oct 2026 01:57:04 -0600 Subject: [PATCH 2/2] 2K3Z3XC overlays: step aside while a blocking modal is up An overlay can take the keyboard now, so it yields to a blocking modal like every other keyboard-taking window. --- .../quickshell/aphotic/modules/overlay/PluginOverlayWindow.qml | 1 + 1 file changed, 1 insertion(+) diff --git a/Configs/quickshell/aphotic/modules/overlay/PluginOverlayWindow.qml b/Configs/quickshell/aphotic/modules/overlay/PluginOverlayWindow.qml index 2519203d..5c6e3a34 100644 --- a/Configs/quickshell/aphotic/modules/overlay/PluginOverlayWindow.qml +++ b/Configs/quickshell/aphotic/modules/overlay/PluginOverlayWindow.qml @@ -61,6 +61,7 @@ PanelWindow { required property var surface screen: modelData + visible: !Surfaces.suppressed WlrLayershell.namespace: `aphotic-overlay-${root.surface.id}` // Bottom, not Top: an overlay is ambient. It sits above the wallpaper