{ ... }: { flake.modules.nixos.aquatic-gui = { pkgs, ... }: { environment.systemPackages = with pkgs; [ stoat-desktop ]; nixpkgs.overlays = [ (final: prev: { stoat-desktop = prev.stoat-desktop.overrideAttrs (oldAttrs: let version = "1.5.3"; electron = final.electron_43; pnpm = final.pnpm_11; src = oldAttrs.src.override { tag = "v${version}"; hash = "sha256-UKMuMtBTfiA31K2i1buCFOtL9lf9xbv6BXVD5m4TARo="; }; patches = [ ]; in { inherit version src patches electron; nativeBuildInputs = (builtins.filter (p: p != final.pnpm_10) oldAttrs.nativeBuildInputs) ++ [ pnpm ]; pnpmDeps = final.fetchPnpmDeps { inherit (oldAttrs) pname; inherit version src patches; fetcherVersion = 4; inherit pnpm; hash = "sha256-uiKTkXU0THzW46FiAfftqMWfrnFPCfgS/30ZuWmpHMI="; # fill in after first build attempt }; env = (oldAttrs.env or { }) // { ELECTRON_SKIP_BINARY_DOWNLOAD = "1"; }; buildPhase = '' runHook preBuild export npm_config_nodedir=${electron.headers} substituteInPlace node_modules/@electron-forge/core-utils/dist/electron-version.js \ --replace-fail "return version" "return '${electron.version}'" cp -r ${electron.dist} electron-dist chmod -R u+w electron-dist pushd electron-dist zip -0Xqr ../electron.zip . popd rm -r electron-dist substituteInPlace node_modules/@electron/packager/dist/packager.js \ --replace-fail "await this.getElectronZipPath(downloadOpts)" "'$(pwd)/electron.zip'" pnpm make \ --arch "${final.stdenvNoCC.hostPlatform.node.arch}" \ --platform "${final.stdenvNoCC.hostPlatform.node.platform}" \ --targets "@electron-forge/maker-zip" runHook postBuild ''; }); }) ]; }; }