From d4ecaf82d4481f2e0ce084a56c5d5685b6512178 Mon Sep 17 00:00:00 2001 From: purian23 Date: Fri, 23 Oct 2026 04:40:54 -0400 Subject: [PATCH] fix(mango): keep layer animations off dms surfaces - Stops Mango tweening the dot and island when layer_animations is on Port 2.0 (cherry picked from commit ba7b3620a868d0a2cb573ed303f0a151fff6e0ee) --- core/internal/config/embedded/mango-layout.conf | 4 ++++ quickshell/Services/MangoService.qml | 13 ++++++++----- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/core/internal/config/embedded/mango-layout.conf b/core/internal/config/embedded/mango-layout.conf index da64c5250..15a4d35c7 100644 --- a/core/internal/config/embedded/mango-layout.conf +++ b/core/internal/config/embedded/mango-layout.conf @@ -6,3 +6,7 @@ gap_inner_vertical=5 gap_outer_horizontal=5 gap_outer_vertical=5 border_px=2 + +# layer_animations would tween every DMS layer move; override with no_animation:0 rules after the source lines. +layer_rule=no_animation:1,layer_name:^(quickshell)$ +layer_rule=no_animation:1,layer_name:^dms:.* diff --git a/quickshell/Services/MangoService.qml b/quickshell/Services/MangoService.qml index ba2b1b5d0..4c0cfdeaa 100644 --- a/quickshell/Services/MangoService.qml +++ b/quickshell/Services/MangoService.qml @@ -633,9 +633,12 @@ Singleton { const gapsOut = (gapsOverride >= 0 && SettingsData.mangoLayoutGapsOutOverride >= 0) ? SettingsData.mangoLayoutGapsOutOverride : gapsIn; const borderSize = (typeof SettingsData !== "undefined" && SettingsData.mangoLayoutBorderSize >= 0) ? SettingsData.mangoLayoutBorderSize : defaultBorderSize; + // layer_animations would tween the dot lift and the island sheet let content = `# Auto-generated by DMS - do not edit manually border_radius=${cornerRadius} border_px=${borderSize} +layer_rule=no_animation:1,layer_name:^(quickshell)$ +layer_rule=no_animation:1,layer_name:^dms:.* `; if (manageGaps) @@ -738,11 +741,11 @@ cursor_size=${size}`; const flag = value => value ? 1 : 0; const profile = name => name === "flat" ? 1 : name === "adaptive" ? 2 : -1; const scrollMethod = name => ({ - "no-scroll": 0, - "two-finger": 1, - "edge": 2, - "on-button-down": 4 - })[name] ?? -1; + "no-scroll": 0, + "two-finger": 1, + "edge": 2, + "on-button-down": 4 + })[name] ?? -1; const clickMethod = name => name === "button-areas" ? 1 : name === "clickfinger" ? 2 : -1; const lines = []; // -1 is a "default" choice: the key stays out so Mango's own default applies