From ebad8e2dda164ba6c68ad95cba2680bc8dd2aae0 Mon Sep 17 00:00:00 2001 From: bbedward Date: Fri, 3 Jul 2026 23:08:44 -0400 Subject: [PATCH] mango: add specific sorting for widgets using data from mango IPC fixes #649 --- quickshell/Services/CompositorService.qml | 4 ++++ quickshell/Services/MangoService.qml | 3 +++ 2 files changed, 7 insertions(+) diff --git a/quickshell/Services/CompositorService.qml b/quickshell/Services/CompositorService.qml index f19632439..976cfc52c 100644 --- a/quickshell/Services/CompositorService.qml +++ b/quickshell/Services/CompositorService.qml @@ -485,6 +485,8 @@ Singleton { function filterCurrentWorkspace(toplevels, screen) { if (useNiriSorting) return NiriService.filterCurrentWorkspace(toplevels, screen); + if (useMangoSorting) + return MangoService.filterCurrentWorkspace(toplevels, screen); if (isHyprland) return filterHyprlandCurrentWorkspaceSafe(toplevels, screen); return toplevels; @@ -506,6 +508,8 @@ Singleton { } return NiriService.filterCurrentDisplay(toplevels, screenName); } + if (useMangoSorting) + return MangoService.filterCurrentDisplay(toplevels, screenName); if (isHyprland) return filterHyprlandCurrentDisplaySafe(toplevels, screenName); return toplevels; diff --git a/quickshell/Services/MangoService.qml b/quickshell/Services/MangoService.qml index 55cee612e..9fbfd6b1f 100644 --- a/quickshell/Services/MangoService.qml +++ b/quickshell/Services/MangoService.qml @@ -370,6 +370,9 @@ Singleton { const screenName = _screenName(screenOrName); if (!screenName) return toplevels; + // Overview reports active_tags=[0], which would match no client tags. + if (isOutputInOverview(screenName)) + return toplevels; const active = _activeTagSet(screenName); if (active.size === 0) return toplevels;