diff options
| author | Danilo M. <danix@danix.xyz> | 2026-09-26 12:36:49 +0200 |
|---|---|---|
| committer | Danilo M. <danix@danix.xyz> | 2026-09-26 12:36:49 +0200 |
| commit | f280c8171cfe9c40fabe5aa6ed3fd4f13e5f9b21 (patch) | |
| tree | 1cc445c1bee41b8f2dd08ba75d961e83793ded4f /assistant | |
| parent | 161f4ee8fd956b192ec8e028052c2ec98b098852 (diff) | |
| download | quickshell-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.qml | 24 |
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 |
