diff --git a/Clipboard.qml b/Clipboard.qml index 5eadea7..eb9710c 100644 --- a/Clipboard.qml +++ b/Clipboard.qml @@ -14,6 +14,10 @@ import "Classify.js" as Classify Item { id: root + // Injected by the Omarchy plugin host. Following its shared panel-open state + // keeps the mapped window and the host's callable Loader in sync even after + // plugin rescans temporarily leave more than one Loader instance alive. + property var shell: null property bool opened: false property string filterText: "" property string typeFilter: "" // chip filter, "" = all; combined into the query @@ -92,6 +96,20 @@ Item { else root.open() } + function syncShellOpenState() { + if (!root.shell || !root.shell.openPanelIds) return + var shouldOpen = root.shell.openPanelIds["alanfortlink.clipboard"] === true + if (shouldOpen && !root.opened) root.open() + else if (!shouldOpen && root.opened) root.close() + } + + onShellChanged: root.syncShellOpenState() + + Connections { + target: root.shell + function onOpenPanelIdsChanged() { root.syncShellOpenState() } + } + // ------------------------------------------------------------ pause // Toggle via IPC: omarchy-shell shell call alanfortlink.clipboard pause '{"paused":true}' // (or {"paused":false}, or {"paused":"toggle"}), and Ctrl+Space in the picker. diff --git a/manifest.json b/manifest.json index 690d6a5..83c6ec8 100644 --- a/manifest.json +++ b/manifest.json @@ -2,7 +2,7 @@ "schemaVersion": 1, "id": "alanfortlink.clipboard", "name": "Clipboard History", - "version": "1.0.3", + "version": "1.0.4", "author": "alanfortlink", "description": "Raycast-style clipboard history: fuzzy search over content, type, app and date, with rich per-type previews", "kinds": [