noctalia patch

This commit is contained in:
2026-08-05 00:40:02 +09:00
parent 96ce4d768c
commit 991dde5305
3 changed files with 61 additions and 24 deletions
Generated
+24 -24
View File
@@ -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": {
+11
View File
@@ -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 = {
@@ -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;
}