From 991dde530582ae07f8682aa30c0409c6df0b059c Mon Sep 17 00:00:00 2001 From: moons Date: Wed, 5 Aug 2026 00:40:02 +0900 Subject: [PATCH] noctalia patch --- flake.lock | 48 +++++++++---------- modules/applications/noctalia/home.nix | 11 +++++ .../patches/window-switcher-labwc.patch | 26 ++++++++++ 3 files changed, 61 insertions(+), 24 deletions(-) create mode 100644 modules/applications/noctalia/patches/window-switcher-labwc.patch diff --git a/flake.lock b/flake.lock index 2762850..6f0fb67 100644 --- a/flake.lock +++ b/flake.lock @@ -155,11 +155,11 @@ "nixpkgs": "nixpkgs" }, "locked": { - "lastModified": 1785771258, - "narHash": "sha256-4qwZF7xxLBokf6gfIBkymFMQiJ36fbJ9SPkOAp5VI4I=", + "lastModified": 1785831553, + "narHash": "sha256-9q7WKbhq6bOGUdeo9Q/e3PmapJew0b2LCpaCio1X17k=", "owner": "ilysenko", "repo": "codex-desktop-linux", - "rev": "ab314923b5bf9b786a16cee67605d9eea2433d84", + "rev": "7166d1153fd99647fb080605c8b2a8f22b50b08f", "type": "github" }, "original": { @@ -463,11 +463,11 @@ "zon2nix": "zon2nix" }, "locked": { - "lastModified": 1785770443, - "narHash": "sha256-VZ9UpfgG5+Dy17eTLJ8ryV5e7Ki0/0JTA5MhWnfSriw=", + "lastModified": 1785853205, + "narHash": "sha256-rHvUeXh4druPSNPg2EMvY9F+av/NSQzjNLsf7s6lNnI=", "owner": "ghostty-org", "repo": "ghostty", - "rev": "863fc9531ae0b8e09b7103a9089dfc00319a7d9c", + "rev": "594ee212bc3c048ffa06ba90623eaf207a4d145c", "type": "github" }, "original": { @@ -645,11 +645,11 @@ "treefmt-nix": "treefmt-nix_2" }, "locked": { - "lastModified": 1785753922, - "narHash": "sha256-cRnp7DSvT4BwRI04YSbA0Ocn1iY6+fN9KTfnsADHm3I=", + "lastModified": 1785826862, + "narHash": "sha256-UOPf9uQHGoNqEMZ2kii8DqlPBd5dYR6uERzdU8wdroQ=", "owner": "numtide", "repo": "llm-agents.nix", - "rev": "8a86f04f5cfbffc5b5d0b38ac24795ab4909b46b", + "rev": "fd0508ef842609ad0c6f5af46c6f572214efebd9", "type": "github" }, "original": { @@ -1018,11 +1018,11 @@ }, "nixpkgs_4": { "locked": { - "lastModified": 1785602060, - "narHash": "sha256-z7D96eESRM4CPV/XtwpwFn8IDdfLAmxz6lVWrGYXvR4=", + "lastModified": 1785747939, + "narHash": "sha256-D740uKsMbgsfK2oaDenJLLPIZfq7W0/g4KN/Fls8eKs=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "a5cbcfe954791221bfffe2307f7d1a1bf61a871e", + "rev": "104240a772428cc2e20d8fd86c9ddbb886bbaff2", "type": "github" }, "original": { @@ -1095,11 +1095,11 @@ }, "nixpkgs_9": { "locked": { - "lastModified": 1785599192, - "narHash": "sha256-dg4RTtDxnXY13UkJNdhmgTUTl0n/IJBlCigfO7nutZw=", + "lastModified": 1785734586, + "narHash": "sha256-ODZkEK9Gy50yg6h98u7KkitZ3oc/uuTFK00bh1CRdNA=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "6d65bfc1bcef2ef39a239d38e577e92a89fb0f07", + "rev": "531670d871c0e29724a02f3cbcac170adc65b58c", "type": "github" }, "original": { @@ -1137,11 +1137,11 @@ "nixpkgs": "nixpkgs_10" }, "locked": { - "lastModified": 1785767538, - "narHash": "sha256-9foQ31PSKpIu8UWGalt+4G5o4TU21g4a1qwMwJmeOy4=", + "lastModified": 1785809412, + "narHash": "sha256-QbFIduUhpNIucJy/WcwRxsvTQocnwIXlSwnYEjmGMSQ=", "owner": "noctalia-dev", "repo": "noctalia", - "rev": "50f0f095053a4b5c10874c4e7080f55dc15d3b38", + "rev": "e41c99439605df6d2fa62409139f96ded6ac7345", "type": "github" }, "original": { @@ -1325,11 +1325,11 @@ "tinted-zed": "tinted-zed" }, "locked": { - "lastModified": 1785680312, - "narHash": "sha256-e26BuraMqnara0VXVk9nsQLgGC+8nvEgYNc6odv5Yi8=", + "lastModified": 1785794750, + "narHash": "sha256-OqIrGVL7AX462ISyJFAqjbqTc1RZlBkVHCa4dwPEZU4=", "owner": "nix-community", "repo": "stylix", - "rev": "04b284060ffa638f080ab1b2d05cf1f236217995", + "rev": "cb5eb3a7343faba61fd694fac8040a326485a339", "type": "github" }, "original": { @@ -1622,11 +1622,11 @@ "systems": "systems_9" }, "locked": { - "lastModified": 1785733880, - "narHash": "sha256-Rv4rVFSvxF7ViOQOrv+N8IEvweS5MCqUM2fnaQVIR+w=", + "lastModified": 1785823793, + "narHash": "sha256-iGKyp+peQzXI0T9LzYmRHr2tevkbhF5GfzDlVldVm2Q=", "owner": "vicinaehq", "repo": "vicinae", - "rev": "61bd7cd5c9cdd6d8df6e6d34531beb344219ff71", + "rev": "b3130be7b480817d2255b4781476a91593267afb", "type": "github" }, "original": { diff --git a/modules/applications/noctalia/home.nix b/modules/applications/noctalia/home.nix index e76030d..8ea791d 100644 --- a/modules/applications/noctalia/home.nix +++ b/modules/applications/noctalia/home.nix @@ -1,6 +1,7 @@ { lib, pkgs, + inputs, ... }: let @@ -12,6 +13,14 @@ let --replace-fail "@codexbarPath@" "${lib.getExe codexbar}" ''; + noctaliaPatched = + inputs.noctalia.packages.${pkgs.stdenv.hostPlatform.system}.default.overrideAttrs + (oldAttrs: { + patches = (oldAttrs.patches or [ ]) ++ [ + ./patches/window-switcher-labwc.patch + ]; + }); + wallpapers = pkgs.fetchFromGitHub { owner = "moons-14"; repo = "wallpapers"; @@ -41,6 +50,8 @@ in programs.noctalia = { enable = true; + package = noctaliaPatched; + systemd.enable = true; settings = { diff --git a/modules/applications/noctalia/patches/window-switcher-labwc.patch b/modules/applications/noctalia/patches/window-switcher-labwc.patch new file mode 100644 index 0000000..0cf2f6e --- /dev/null +++ b/modules/applications/noctalia/patches/window-switcher-labwc.patch @@ -0,0 +1,26 @@ +diff --git a/src/shell/switcher/window_switcher.cpp b/src/shell/switcher/window_switcher.cpp +--- a/src/shell/switcher/window_switcher.cpp ++++ b/src/shell/switcher/window_switcher.cpp +@@ -286,12 +286,19 @@ indexLiveToplevelsByWindowId(const CompositorPlatform& platform, std::unordered_ + continue; + } + +- const auto mappedId = platform.compositorWindowIdForToplevelInfo(info); +- if (!mappedId.has_value() || mappedId->empty()) { +- continue; ++ std::string key; ++ if (const auto mappedId = platform.compositorWindowIdForToplevelInfo(info); ++ mappedId.has_value() && !mappedId->empty()) { ++ key = canonicalWindowId(*mappedId); + } +- const std::string key = canonicalWindowId(*mappedId); ++ ++ // Generic wlroots compositors such as labwc do not provide a ++ // compositor-specific window ID. The wlr toplevel handle is stable ++ // for the lifetime of the window and is sufficient for switcher identity. ++ if (key.empty() && wlrHandle != 0) { ++ key = "toplevel:" + std::to_string(wlrHandle); ++ } + if (key.empty()) { + continue; + } \ No newline at end of file