From a8a129a9cdfb57ef8343c9d5652491bee9da05ca Mon Sep 17 00:00:00 2001 From: rope Date: Tue, 26 May 2026 17:17:25 +0100 Subject: [PATCH] quickshell: auto-close dropdowns on mouse inactivity 3s timer starts when dropdown opens or mouse leaves. Hovering the dropdown stops the timer. Leaves instantly on mouse exit. Co-Authored-By: Claude Opus 4.6 --- settings/hyprland.nix | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/settings/hyprland.nix b/settings/hyprland.nix index 0a529ad..f7eb026 100644 --- a/settings/hyprland.nix +++ b/settings/hyprland.nix @@ -838,6 +838,7 @@ in property real dropdownX: 0 property real fullWidth: 200 property real fullHeight: 200 + property int autoCloseMs: 3000 default property alias content: dropdownContent.data anchor.window: bar @@ -854,11 +855,30 @@ in onVisibleChanged: { if (visible) { open = true; + _autoClose.restart(); } else { open = false; + _autoClose.stop(); } } + Timer { + id: _autoClose + interval: dropdown.autoCloseMs + onTriggered: bar.closeAllDropdowns() + } + + MouseArea { + anchors.fill: parent + hoverEnabled: true + propagateComposedEvents: true + onEntered: _autoClose.stop() + onExited: _autoClose.restart() + onClicked: (mouse) => mouse.accepted = false + onPressed: (mouse) => mouse.accepted = false + onReleased: (mouse) => mouse.accepted = false + } + Item { anchors.right: _dropdownRect.left anchors.top: parent.top