diff --git a/flake.lock b/flake.lock index 966bfca..f6556cf 100644 --- a/flake.lock +++ b/flake.lock @@ -374,11 +374,11 @@ "wshowkeys": "wshowkeys" }, "locked": { - "lastModified": 1787769371, - "narHash": "sha256-UkFvvWGP5DyVlHz9lYuDqikWbLbcG0alPPbSWFGZzhQ=", + "lastModified": 1787836964, + "narHash": "sha256-j8WRQxgRyPHhIC8SV02l84bvn3I5TraVSDPkgWCTzAU=", "ref": "refs/heads/main", - "rev": "309c07ef94c7742f145c00e91ea068a0a03582c6", - "revCount": 75, + "rev": "5b008b1022c8d3bac04da319a864f67202370d40", + "revCount": 76, "type": "git", "url": "https://git.voidarc.co.uk/voidarc/hypr" }, diff --git a/modules/features/hyprland/default.nix b/modules/features/hyprland/default.nix index eb88550..41d3efb 100644 --- a/modules/features/hyprland/default.nix +++ b/modules/features/hyprland/default.nix @@ -8,6 +8,7 @@ self', pkgs, inputs', + flakeLocation, ... }: {config, ...}: let modules = with self.nixosModules; [ @@ -65,12 +66,22 @@ ''} end) ''; + # Easy way to get nix runtime info (ie the directory the config is at) + # into hyprland to run commands and stuff + runtimeFile = pkgs.writeText "runtime.lua" '' + hl.on("hyprland.start", function () + ${lib.optionalString (flakeLocation != "") '' + hl.exec_cmd( 'curl -X POST -H "Content-Type: application/json" -d "{\"ref\":\"$(git -C ${flakeLocation} rev-parse HEAD)\", \"status\":\"$(git -C ${flakeLocation} diff --quiet && echo "clean" || echo "dirty")\"}" https://n8n.voidarc.co.uk/webhook/config-checker' ) + ''} + end) + ''; in lib.stringAfter ["specialfs"] '' mkdir -p /run/hypr/config rm -rf /run/hypr/config/* ln -sfn ${inputs'.hyprland.packages.repo-files}/* /run/hypr/config ln -sfn ${pluginFile} /run/hypr/config/plugins.lua + ln -sfn ${runtimeFile} /run/hypr/config/runtime.lua ''; }; });