about summary refs log tree commit diff
path: root/pkgs/applications/display-managers
diff options
context:
space:
mode:
authorVarun Narravula <varun@cvte.org>2022-08-18 10:52:08 +0800
committerBobby Rong <rjl931189261@126.com>2022-08-18 15:18:44 +0800
commit81e4c5cc151b20e6a6dcec153a089b72f7b29d35 (patch)
tree2fb0a3876ecfb5bc1e9034675c3dd2fff443010e /pkgs/applications/display-managers
parentfef6c10b5cb404f1c772c118289a698ef396a654 (diff)
lightdm-slick-greeter: init at 1.5.9
Diffstat (limited to 'pkgs/applications/display-managers')
-rw-r--r--pkgs/applications/display-managers/lightdm-slick-greeter/default.nix110
1 files changed, 110 insertions, 0 deletions
diff --git a/pkgs/applications/display-managers/lightdm-slick-greeter/default.nix b/pkgs/applications/display-managers/lightdm-slick-greeter/default.nix
new file mode 100644
index 0000000000000..fe8132fb1b469
--- /dev/null
+++ b/pkgs/applications/display-managers/lightdm-slick-greeter/default.nix
@@ -0,0 +1,110 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, pkg-config
+, python3
+, vala
+, intltool
+, autoreconfHook
+, wrapGAppsHook
+, lightdm
+, gtk3
+, pixman
+, libcanberra
+, libX11
+, libXext
+, linkFarm
+, lightdm-slick-greeter
+, numlockx
+}:
+
+stdenv.mkDerivation rec {
+  pname = "lightdm-slick-greeter";
+  version = "1.5.9";
+
+  src = fetchFromGitHub {
+    owner = "linuxmint";
+    repo = "slick-greeter";
+    rev = version;
+    sha256 = "sha256-UEzidH4ZWggcOWHHuAclHbbgATDBdogL99Ze0PlwRoc=";
+  };
+
+  nativeBuildInputs = [
+    pkg-config
+    vala
+    intltool
+    autoreconfHook
+    wrapGAppsHook
+    python3
+    python3.pkgs.wrapPython
+  ];
+
+  buildInputs = [
+    lightdm
+    gtk3
+    pixman
+    libcanberra
+    libX11
+    libXext
+  ];
+
+  pythonPath = [
+    python3.pkgs.pygobject3 # for slick-greeter-check-hidpi
+  ];
+
+  postPatch = ''
+    substituteInPlace src/slick-greeter.vala \
+      --replace "/usr/bin/numlockx" "${numlockx}/bin/numlockx" \
+      --replace "/usr/share/xsessions/" "/run/current-system/sw/share/xsessions/" \
+      --replace "/usr/bin/slick-greeter" "${placeholder "out"}/bin/slick-greeter"
+
+    substituteInPlace src/session-list.vala \
+      --replace "/usr/share" "${placeholder "out"}/share"
+
+    patchShebangs files/usr/bin/*
+  '';
+
+  preAutoreconf = ''
+    # intltoolize fails during autoreconfPhase unless this
+    # directory is created manually.
+    mkdir m4
+  '';
+
+  configureFlags = [
+    "--localstatedir=/var"
+    "--sysconfdir=/etc"
+    "--sbindir=${placeholder "out"}/bin"
+  ];
+
+  installFlags = [
+    "localstatedir=\${TMPDIR}"
+    "sysconfdir=${placeholder "out"}/etc"
+  ];
+
+  postInstall = ''
+    substituteInPlace "$out/share/xgreeters/slick-greeter.desktop" \
+      --replace "Exec=slick-greeter" "Exec=$out/bin/slick-greeter"
+
+    cp -r files/usr/* $out
+  '';
+
+  preFixup = ''
+    buildPythonPath "$out $pythonPath"
+    gappsWrapperArgs+=(
+      --prefix PYTHONPATH : "$program_PYTHONPATH"
+    )
+  '';
+
+  passthru.xgreeters = linkFarm "lightdm-slick-greeter-xgreeters" [{
+    path = "${lightdm-slick-greeter}/share/xgreeters/slick-greeter.desktop";
+    name = "lightdm-slick-greeter.desktop";
+  }];
+
+  meta = with lib; {
+    description = "A slick-looking LightDM greeter";
+    homepage = "https://github.com/linuxmint/slick-greeter";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ water-sucks ];
+    platforms = platforms.linux;
+  };
+}