diff --git a/pkgs/by-name/sw/swaylock-plugin/package.nix b/pkgs/by-name/sw/swaylock-plugin/package.nix new file mode 100644 index 0000000000000..8a36ac9b39971 --- /dev/null +++ b/pkgs/by-name/sw/swaylock-plugin/package.nix @@ -0,0 +1,80 @@ +{ + lib, + stdenv, + fetchFromGitHub, + meson, + ninja, + pkg-config, + scdoc, + libxcrypt, + wayland-scanner, + wayland, + wayland-protocols, + libxkbcommon, + cairo, + gdk-pixbuf, + pam, + nix-update-script, +}: + +let + version = "1.8.0"; + src = fetchFromGitHub { + owner = "mstoeckl"; + repo = "swaylock-plugin"; + rev = "v${version}"; + hash = "sha256-Kd6Gqs+YnQu3qKfEeqW5CG38bU2gH2hqjoFEojWa8a4="; + }; +in stdenv.mkDerivation { + inherit version src; + pname = "swaylock-plugin"; + + + strictDeps = true; + depsBuildBuild = [ pkg-config ]; + nativeBuildInputs = [ + meson + ninja + pkg-config + scdoc + wayland-scanner + ]; + buildInputs = [ + cairo + libxcrypt + gdk-pixbuf + libxkbcommon + pam + wayland + wayland-protocols + ]; + + # Pleasing GCC. + # TOREMOVE when https://github.com/mstoeckl/swaylock-plugin/pull/14 + # gets merged + NIX_CFLAGS_COMPILE = "-Wno-maybe-uninitialized"; + + mesonFlags = [ + "-Dpam=enabled" + "-Dgdk-pixbuf=enabled" + "-Dman-pages=enabled" + ]; + + passthru = { + updateScript = nix-update-script { }; + }; + + meta = with lib; { + description = "Screen locker for Wayland"; + longDescription = '' + swaylock is a screen locking utility for Wayland compositors. + Important note: If you don't use the Sway module (programs.sway.enable) + you need to set "security.pam.services.swaylock = {};" manually. + ''; + inherit (src.meta) homepage; + mainProgram = "swaylock-plugin"; + license = licenses.mit; + platforms = platforms.linux; + maintainers = with maintainers; [ picnoir ]; + }; +}