import QtQuick import Quickshell import Quickshell.Wayland Variants { id: root // Automatically generates a trap for every connected monitor model: Quickshell.screens delegate: PanelWindow { screen: modelData // Force the panel window to take up the full screen real estate anchors.top: true anchors.bottom: true anchors.left: true anchors.right: true // Push it to the background layer below normal windows WlrLayershell.layer: WlrLayer.Background WlrLayershell.namespace: "transparent-focus-trap" // Keep it transparent so your current wallpaper shows right through color: "transparent" // The core trap mechanism MouseArea { anchors.fill: parent hoverEnabled: true // Having an active hover area on the background layer forces the // Wayland compositor to shift cursor target focus to this surface // the exact millisecond your mouse exits a tiled/floating window. onEntered: { console.log("DEBUG: Mouse entered background (Focus Trap Active)"); } onExited: { console.log("DEBUG: Mouse left background (Focusing on Window)"); } } } }