Unverified Commit 81b215a6 authored by Alice ✨🌙 Luna's avatar Alice ✨🌙 Luna
Browse files

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.
parent a1bab9e4
Loading
Loading
Loading
Loading
+23 −0
Original line number Diff line number Diff line
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 −0
Original line number Diff line number Diff line
@@ -32,6 +32,9 @@ stdenv.mkDerivation (finalAttrs: {
    tag = "v${finalAttrs.version}";
    hash = "sha256-e++Ogy91Sv7gGLMdAqZaBzbH/UmPWZ4GAt7VDCA66aU=";
  };
  patches = [
    ./0001-fix-unneccessary-reloads.patch
  ];

  nativeBuildInputs = [
    cmake