aboutsummaryrefslogtreecommitdiffstats
path: root/assistant
diff options
context:
space:
mode:
authorDanilo M. <danix@danix.xyz>2026-09-26 12:36:49 +0200
committerDanilo M. <danix@danix.xyz>2026-09-26 12:36:49 +0200
commitf280c8171cfe9c40fabe5aa6ed3fd4f13e5f9b21 (patch)
tree1cc445c1bee41b8f2dd08ba75d961e83793ded4f /assistant
parent161f4ee8fd956b192ec8e028052c2ec98b098852 (diff)
downloadquickshell-f280c8171cfe9c40fabe5aa6ed3fd4f13e5f9b21.tar.gz
quickshell-f280c8171cfe9c40fabe5aa6ed3fd4f13e5f9b21.zip
fix(assistant): retry the event socket with a fresh Socket
Quickshell 0.3.1 keeps the QLocalSocket of a failed connect, so setting connected = true again never retries: an overlay started before the assistant (at login, or by a restart) stayed dark for good. The Socket now lives in a LazyLoader that the retry timer turns off and on. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Diffstat (limited to 'assistant')
-rw-r--r--assistant/Assistant.qml24
1 files changed, 15 insertions, 9 deletions
diff --git a/assistant/Assistant.qml b/assistant/Assistant.qml
index 4117882..6d1eeb2 100644
--- a/assistant/Assistant.qml
+++ b/assistant/Assistant.qml
@@ -89,20 +89,26 @@ Scope {
onTriggered: root.shown = false
}
- Socket {
- id: sock
- path: `${Quickshell.env("XDG_RUNTIME_DIR") || "/tmp"}/desktop-assistant.sock`
- connected: true
- onConnectionStateChanged: if (!connected) root.shown = false
- parser: SplitParser { onRead: line => root.handle(line) }
+ // The assistant may start after this shell, or restart: keep trying with
+ // a fresh Socket each time. Quickshell 0.3.1 keeps the QLocalSocket of a
+ // failed connect, so setting `connected` again on the same Socket never
+ // retries: an overlay started before the assistant stayed dark for good.
+ LazyLoader {
+ id: link
+ active: true
+ Socket {
+ path: `${Quickshell.env("XDG_RUNTIME_DIR") || "/tmp"}/desktop-assistant.sock`
+ connected: true
+ onConnectionStateChanged: if (!connected) root.shown = false
+ parser: SplitParser { onRead: line => root.handle(line) }
+ }
}
- // The assistant may start after this shell, or restart: keep trying.
Timer {
interval: 2000
repeat: true
- running: !sock.connected
- onTriggered: sock.connected = true
+ running: !(link.item?.connected ?? false)
+ onTriggered: { link.active = false; link.active = true; }
}
// A config with no visible window exits, reporting nothing. This 1x1