commit 08a1042657785a9f061253a609d53d7074df07e2
parent aed8941187cdc7d917c1039a38ad976342b8beb3
Author: Katja Ramona Sophie Kwast (zaphyra) <git@zaphyra.eu>
Date: Tue, 9 Sep 2025 00:16:03 +0200
parent aed8941187cdc7d917c1039a38ad976342b8beb3
Author: Katja Ramona Sophie Kwast (zaphyra) <git@zaphyra.eu>
Date: Tue, 9 Sep 2025 00:16:03 +0200
packages: add `wleave`
1 file changed, 78 insertions(+), 0 deletions(-)
A
|
78
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
diff --git a/packages/wleave/package.nix b/packages/wleave/package.nix @@ -0,0 +1,78 @@ +{ + tgcMaintainers, + lib, + fetchFromGitHub, + rustPlatform, + installShellFiles, + pkg-config, + scdoc, + wrapGAppsHook4, + at-spi2-atk, + glib, + gtk4, + gtk4-layer-shell, + libadwaita, + libxml2, +}: +rustPlatform.buildRustPackage rec { + pname = "wleave"; + version = "0.6.2"; + + src = fetchFromGitHub { + owner = "AMNatty"; + repo = "wleave"; + rev = version; + hash = "sha256-+0EKnaxRaHRxRvhASuvfpUijEZJFimR4zSzOyC3FOkQ="; + }; + + cargoHash = "sha256-MRVWiQNzETFbWeKwYeoXSUY9gncRCsYdPEZhpOKcTvA="; + + nativeBuildInputs = [ + installShellFiles + pkg-config + scdoc + wrapGAppsHook4 + ]; + + buildInputs = [ + at-spi2-atk + glib + gtk4 + gtk4-layer-shell + libadwaita + libxml2 + ]; + + postPatch = '' + substituteInPlace layout.json \ + --replace-fail "/usr/share/wleave" "$out/share/${pname}" + + substituteInPlace src/config.rs \ + --replace-fail "/etc/wleave" "$out/etc/${pname}" + ''; + + postInstall = '' + install -Dm644 -t "$out/etc/wleave" {"style.css","layout.json"} + install -Dm644 -t "$out/share/wleave/icons" icons/* + + for f in man/*.scd; do + local page="man/$(basename "$f" .scd)" + scdoc < "$f" > "$page" + installManPage "$page" + done + + installShellCompletion --cmd wleave \ + --bash <(cat completions/wleave.bash) \ + --fish <(cat completions/wleave.fish) \ + --zsh <(cat completions/_wleave) + ''; + + meta = with lib; { + description = "Wayland-native logout script written in GTK4"; + homepage = "https://github.com/AMNatty/wleave"; + license = licenses.mit; + mainProgram = "wleave"; + maintainers = [ tgcMaintainers.zaphyra ]; + platforms = platforms.linux; + }; +}