zaphyra's git: tgcNUR

fork of https://git.transgirl.cafe/zaphoid/tgc-nix-user-repository

commit 08a1042657785a9f061253a609d53d7074df07e2
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
packages/wleave/package.nix
|
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;
+  };
+}