quickshell: fix unneccessary reloads

When running quickshell, the application reloads itself whenever files change on disk that quickshell loaded. When using e.g. github:noctalia-dev/noctalia-shell which is run by quickshell, the application reloads when `nix flake update` or `sudo nixos-rebuild switch` is used. This behavior can be prevented if nix store paths are ignored whenever files are changed on disk.
This commit is contained in:
Alice ✨🌙 Luna
2026-01-23 19:07:05 +01:00
parent a1bab9e494
commit 81b215a6ad
2 changed files with 26 additions and 0 deletions
@@ -0,0 +1,23 @@
diff --git a/src/core/generation.cpp b/src/core/generation.cpp
index c68af71..4967562 100644
--- a/src/core/generation.cpp
+++ b/src/core/generation.cpp
@@ -172,12 +172,18 @@ void EngineGeneration::setWatchingFiles(bool watching) {
if (this->watcher == nullptr) {
this->watcher = new QFileSystemWatcher();
+ // note: not using canonicalFilePath() here on purpose,
+ // since the path could be a link to the nix store
+ // and the link might change
+
for (auto& file: this->scanner.scannedFiles) {
+ if (file.startsWith("/nix/store/")) continue;
this->watcher->addPath(file);
this->watcher->addPath(QFileInfo(file).dir().absolutePath());
}
for (auto& file: this->extraWatchedFiles) {
+ if (file.startsWith("/nix/store/")) continue;
this->watcher->addPath(file);
this->watcher->addPath(QFileInfo(file).dir().absolutePath());
}
+3
View File
@@ -32,6 +32,9 @@ stdenv.mkDerivation (finalAttrs: {
tag = "v${finalAttrs.version}";
hash = "sha256-e++Ogy91Sv7gGLMdAqZaBzbH/UmPWZ4GAt7VDCA66aU=";
};
patches = [
./0001-fix-unneccessary-reloads.patch
];
nativeBuildInputs = [
cmake