From b1c54ef973196d9b058cdf1bea2d9e4d44e6cdba Mon Sep 17 00:00:00 2001 From: Rosty Hnatyshyn Date: Sun, 9 Aug 2026 16:01:53 -0700 Subject: [PATCH] blur fuzzel, sort workspace icons by position --- hypr/hyprland.lua | 6 ++++++ quickshell/Bar.qml | 27 ++++++++++++++++++++++++++- 2 files changed, 32 insertions(+), 1 deletion(-) diff --git a/hypr/hyprland.lua b/hypr/hyprland.lua index e9b82da..419c5fc 100644 --- a/hypr/hyprland.lua +++ b/hypr/hyprland.lua @@ -373,4 +373,10 @@ hl.layer_rule({ blur_popups = true }) +hl.layer_rule({ + match = { class = "fuzzel"}, + blur = true, +}) + + require("rules") diff --git a/quickshell/Bar.qml b/quickshell/Bar.qml index 507a015..31b923c 100644 --- a/quickshell/Bar.qml +++ b/quickshell/Bar.qml @@ -130,10 +130,22 @@ Scope { } Row { + id: appIconRow spacing: 4 + property var sortedTopLevels: { + const tl = barRoot.monitor?.activeWorkspace?.toplevels; + if (!tl) + return []; + return tl.values.slice().sort((a, b) => { + const ax = a.lastIpcObject?.at?.[0] ?? 0; + const bx = b.lastIpcObject?.at?.[0] ?? 0; + return ax - bx; + }); + } + Repeater { - model: barRoot.monitor?.activeWorkspace?.toplevels ?? null + model: appIconRow.sortedTopLevels //barRoot.monitor?.activeWorkspace?.toplevels ?? null delegate: Item { id: appIconRoot @@ -172,6 +184,19 @@ Scope { Hyprland.refreshToplevels(); } } + + Connections { + target: Hyprland + function onRawEvent(event) { + positionRefreshDebounce.restart(); + } + } + + Timer { + id: positionRefreshDebounce + interval: 100 + onTriggered: Hyprland.refreshToplevels() + } } Text {