From ef368289cebce3a9100d965f7a1542b9cc02b172 Mon Sep 17 00:00:00 2001
From: seth <getchoo@tuta.io>
Date: Sat, 6 Jul 2024 19:32:50 -0400
Subject: [PATCH] gdm-settings: init at 4.4

---
 pkgs/by-name/gd/gdm-settings/package.nix | 68 ++++++++++++++++++++++++
 1 file changed, 68 insertions(+)
 create mode 100644 pkgs/by-name/gd/gdm-settings/package.nix

diff --git a/pkgs/by-name/gd/gdm-settings/package.nix b/pkgs/by-name/gd/gdm-settings/package.nix
new file mode 100644
index 000000000000..ab34a2eefb13
--- /dev/null
+++ b/pkgs/by-name/gd/gdm-settings/package.nix
@@ -0,0 +1,68 @@
+{
+  lib,
+  fetchFromGitHub,
+  python3Packages,
+  appstream,
+  blueprint-compiler,
+  desktop-file-utils,
+  glib,
+  gnome,
+  libadwaita,
+  meson,
+  ninja,
+  pkg-config,
+  wrapGAppsHook4,
+  # gdm-settings needs to know where to look for themes
+  # This should work for most systems, but can be overridden if not
+  dataDirs ? lib.concatStringsSep ":" [
+    "/run/current-system/sw/share"
+    "/usr/local/share"
+    "/usr/share"
+  ],
+}:
+
+python3Packages.buildPythonApplication rec {
+  pname = "gdm-settings";
+  version = "4.4";
+  pyproject = false;
+
+  src = fetchFromGitHub {
+    owner = "gdm-settings";
+    repo = "gdm-settings";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-3Te8bhv2TkpJFz4llm1itRhzg9v64M7Drtrm4s9EyiQ=";
+  };
+
+  nativeBuildInputs = [
+    appstream # for appstream file validation
+    blueprint-compiler
+    desktop-file-utils # for desktop file validation
+    glib # for `glib-compile-schemas`
+    meson
+    ninja
+    pkg-config
+    wrapGAppsHook4
+  ];
+
+  buildInputs = [ libadwaita ];
+
+  dependencies = [ python3Packages.pygobject3 ];
+
+  dontWrapGApps = true;
+  makeWrapperArgs = [
+    "\${gappsWrapperArgs[@]}"
+    "--set-default HOST_DATA_DIRS ${dataDirs}"
+  ];
+
+  pythonImportsCheck = [ "gdms" ];
+
+  meta = {
+    description = "Settings app for GNOME's Login Manager";
+    homepage = "https://gdm-settings.github.io/";
+    changelog = "https://github.com/gdm-settings/gdm-settings/releases/tag/v${version}";
+    license = lib.licenses.agpl3Only;
+    maintainers = with lib.maintainers; [ getchoo ];
+    mainProgram = "gdm-settings";
+    inherit (gnome.gdm.meta) platforms;
+  };
+}