From 4f5cf5f5fa684e9cb5d1417a6a654c976609098f Mon Sep 17 00:00:00 2001 From: Damocles Date: Mon, 4 May 2026 23:12:34 +0200 Subject: [PATCH 1/2] plugin: switch from ld.gold to mold (cxx-qt docs recommend moving away from gold) --- nix/plugin.nix | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/nix/plugin.nix b/nix/plugin.nix index 331c0e3..374a61a 100644 --- a/nix/plugin.nix +++ b/nix/plugin.nix @@ -1,6 +1,7 @@ { lib, craneLib, + mold, pkg-config, qt6, writeShellScript, @@ -67,6 +68,7 @@ let nativeBuildInputs = [ pkg-config + mold qt6.qtbase qt6.qtdeclarative ]; @@ -79,8 +81,12 @@ let # qt6.qtbase's setup hook overrides QMAKE after derivation attrs are set, # so re-assert it in preBuild which runs after all setup hooks. + # Force mold as the linker (cxx-qt book deprecates ld.gold). Setting via + # CARGO_TARGET_*_LINKER + RUSTFLAGS is the only path that survives nixpkgs' + # cc-wrapper - `-fuse-ld=` from build.rs gets eaten by the wrapper. preBuild = '' export QMAKE=${qmakeWrapper} + export RUSTFLAGS="-C link-arg=-fuse-ld=mold ''${RUSTFLAGS:-}" ''; }; From d55753ab2806bc093aa5f920f5e456fff2b0df15 Mon Sep 17 00:00:00 2001 From: Damocles Date: Tue, 5 May 2026 00:20:08 +0200 Subject: [PATCH 2/2] fix tooltip binding loop on _shown via assignedScreen mirror --- shell/modules/Tooltip.qml | 7 ++++++- shell/shell.qml | 1 + 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/shell/modules/Tooltip.qml b/shell/modules/Tooltip.qml index 01643f3..105a896 100644 --- a/shell/modules/Tooltip.qml +++ b/shell/modules/Tooltip.qml @@ -11,8 +11,13 @@ PanelWindow { visible: _winVisible color: "transparent" + // Mirror of `screen` captured at construction. Reading `root.screen` + // directly in `_shown` couples it to visibility transitions (PanelWindow + // re-evaluates `screen` when mapped/unmapped), which feeds back into + // `_shown` via `_winVisible` and trips a binding loop. + property var assignedScreen: null property bool _winVisible: false - property bool _shown: M.TooltipState.visible && M.TooltipState.screen === root.screen + property bool _shown: M.TooltipState.visible && M.TooltipState.screen === assignedScreen on_ShownChanged: { if (_shown) { diff --git a/shell/shell.qml b/shell/shell.qml index eff500c..12828c5 100644 --- a/shell/shell.qml +++ b/shell/shell.qml @@ -33,6 +33,7 @@ ShellRoot { Tooltip { screen: scope.modelData + assignedScreen: scope.modelData } LazyLoader {