diff --git a/hancore.shibumi.bar/core/DragGhostPanel.qml b/hancore.shibumi.bar/core/DragGhostPanel.qml index b14d495..7a3355e 100644 --- a/hancore.shibumi.bar/core/DragGhostPanel.qml +++ b/hancore.shibumi.bar/core/DragGhostPanel.qml @@ -51,7 +51,7 @@ PanelWindow { Behavior on x { enabled: root.layoutSession.returning NumberAnimation { - duration: root.bar.visualTokens.invalidDropDuration + duration: root.bar.visualTokens ? root.bar.visualTokens.invalidDropDuration : 0 easing.type: Easing.OutCubic } } @@ -59,7 +59,7 @@ PanelWindow { Behavior on y { enabled: root.layoutSession.returning NumberAnimation { - duration: root.bar.visualTokens.invalidDropDuration + duration: root.bar.visualTokens ? root.bar.visualTokens.invalidDropDuration : 0 easing.type: Easing.OutCubic } } @@ -67,7 +67,8 @@ PanelWindow { Rectangle { anchors.fill: parent anchors.margins: -Commons.Style.space(1) - radius: Math.min(height / 2, root.bar.visualTokens.pillRadius) + radius: root.bar.visualTokens + ? Math.min(height / 2, root.bar.visualTokens.pillRadius) : 0 color: root.layoutSession.targetGroupId !== "" ? Qt.rgba(root.bar.urgent.r, root.bar.urgent.g, root.bar.urgent.b, 0.2) : Qt.rgba(root.bar.foreground.r, root.bar.foreground.g, @@ -92,7 +93,7 @@ PanelWindow { } Timer { - interval: root.bar.visualTokens.returnCleanupDuration + interval: root.bar.visualTokens ? root.bar.visualTokens.returnCleanupDuration : 0 running: root.layoutSession.returning repeat: false onTriggered: { diff --git a/scripts/shibumi_suite/runtime.py b/scripts/shibumi_suite/runtime.py index 7d0e172..e98c01f 100644 --- a/scripts/shibumi_suite/runtime.py +++ b/scripts/shibumi_suite/runtime.py @@ -553,6 +553,16 @@ def reload_payload(self, *, timeout: float = 8) -> None: ) def refresh_menu(self, *, timeout: float = 8) -> None: + try: + plugins = self.list_plugins() + except RuntimeFailure: + plugins = {} + if not plugins.get("omarchy.menu", {}).get("active"): + # omarchy.menu is unloaded whenever Shibumi's own menu is the + # active bar/menu; callIfLoaded() then always answers "unknown" + # (shell.qml never returns anything else for an unloaded plugin), + # so there is no running instance left to refresh. + return command = [ self.command("omarchy-shell"), "shell",