diff --git a/nixos/modules/services/x11/display-managers/lightdm-greeters/mobile.nix b/nixos/modules/services/x11/display-managers/lightdm-greeters/mobile.nix new file mode 100644 index 000000000000..31cc9b3deaa1 --- /dev/null +++ b/nixos/modules/services/x11/display-managers/lightdm-greeters/mobile.nix @@ -0,0 +1,26 @@ +{ config, lib, pkgs, ... }: + +with lib; +let + dmcfg = config.services.xserver.displayManager; + ldmcfg = dmcfg.lightdm; + cfg = ldmcfg.greeters.mobile; +in +{ + options = { + services.xserver.displayManager.lightdm.greeters.mobile = { + enable = mkEnableOption (lib.mdDoc + "lightdm-mobile-greeter as the lightdm greeter" + ); + }; + }; + + config = mkIf (ldmcfg.enable && cfg.enable) { + services.xserver.displayManager.lightdm.greeters.gtk.enable = false; + + services.xserver.displayManager.lightdm.greeter = mkDefault { + package = pkgs.lightdm-mobile-greeter.xgreeters; + name = "lightdm-mobile-greeter"; + }; + }; +} diff --git a/nixos/modules/services/x11/display-managers/lightdm.nix b/nixos/modules/services/x11/display-managers/lightdm.nix index b0508c3b4f79..f74e8efb8f64 100644 --- a/nixos/modules/services/x11/display-managers/lightdm.nix +++ b/nixos/modules/services/x11/display-managers/lightdm.nix @@ -83,6 +83,7 @@ in ./lightdm-greeters/pantheon.nix ./lightdm-greeters/tiny.nix ./lightdm-greeters/slick.nix + ./lightdm-greeters/mobile.nix (mkRenamedOptionModule [ "services" "xserver" "displayManager" "lightdm" "autoLogin" "enable" ] [ "services" "xserver" diff --git a/pkgs/applications/display-managers/lightdm-mobile-greeter/default.nix b/pkgs/applications/display-managers/lightdm-mobile-greeter/default.nix new file mode 100644 index 000000000000..a4ea16aa4a78 --- /dev/null +++ b/pkgs/applications/display-managers/lightdm-mobile-greeter/default.nix @@ -0,0 +1,53 @@ +{ lib +, fetchFromGitea +, gtk3 +, libhandy_0 +, lightdm +, lightdm-mobile-greeter +, linkFarm +, pkg-config +, rustPlatform +}: + +rustPlatform.buildRustPackage rec { + pname = "lightdm-mobile-greeter"; + version = "2022-10-30"; + + src = fetchFromGitea { + domain = "git.raatty.club"; + owner = "raatty"; + repo = "lightdm-mobile-greeter"; + rev = "8c8d6dfce62799307320c8c5a1f0dd5c8c18e4d3"; + hash = "sha256-SrAR2+An3BN/doFl/s8PcYZMUHLfVPXKZOo6ndO60nY="; + }; + cargoHash = "sha256-NZ0jOkEBNa5oOydfyKm0XQB/vkAvBv9wHBbnM9egQFQ="; + + buildInputs = [ + gtk3 + libhandy_0 + lightdm + ]; + nativeBuildInputs = [ + pkg-config + ]; + + postInstall = '' + mkdir -p $out/share/xgreeters + substitute lightdm-mobile-greeter.desktop \ + $out/share/xgreeters/lightdm-mobile-greeter.desktop \ + --replace lightdm-mobile-greeter $out/bin/lightdm-mobile-greeter + ''; + + passthru.xgreeters = linkFarm "lightdm-mobile-greeter-xgreeters" [{ + path = "${lightdm-mobile-greeter}/share/xgreeters/lightdm-mobile-greeter.desktop"; + name = "lightdm-mobile-greeter.desktop"; + }]; + + meta = with lib; { + description = "A simple log in screen for use on touch screens"; + homepage = "https://git.raatty.club/raatty/lightdm-mobile-greeter"; + maintainers = with maintainers; [ colinsane ]; + platforms = platforms.linux; + license = licenses.mit; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index d05df3751808..393954aa3114 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -31890,6 +31890,8 @@ with pkgs; lightdm-mini-greeter = callPackage ../applications/display-managers/lightdm-mini-greeter { }; + lightdm-mobile-greeter = callPackage ../applications/display-managers/lightdm-mobile-greeter { }; + lightdm-tiny-greeter = callPackage ../applications/display-managers/lightdm-tiny-greeter { conf = config.lightdm-tiny-greeter.conf or ""; };