diff options
author | Matthew Justin Bauer <mjbauer95@gmail.com> | 2018-06-18 11:38:35 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-06-18 11:38:35 -0400 |
commit | 8180c32b7384878687e352c2ab7275fd7d38267a (patch) | |
tree | f6207a05db299a0bc6559357747e92b502ab2bdf | |
parent | 22f818dcf3e9825f18b5191f8de3cecf36dabed7 (diff) | |
parent | 83b389394b8ede5eb29b72c9ccda9380ee4aaf4e (diff) |
Merge pull request #39153 from mnacamura/lightdm-mini-greeter
lightdm-mini-greeter: init at 0.3.2
4 files changed, 135 insertions, 0 deletions
diff --git a/nixos/modules/services/x11/display-managers/lightdm-greeters/mini.nix b/nixos/modules/services/x11/display-managers/lightdm-greeters/mini.nix new file mode 100644 index 000000000000..ba8151a60f20 --- /dev/null +++ b/nixos/modules/services/x11/display-managers/lightdm-greeters/mini.nix @@ -0,0 +1,100 @@ +{ config, lib, pkgs, ... }: + +with lib; + +let + + dmcfg = config.services.xserver.displayManager; + ldmcfg = dmcfg.lightdm; + cfg = ldmcfg.greeters.mini; + + xgreeters = pkgs.linkFarm "lightdm-mini-greeter-xgreeters" [{ + path = "${pkgs.lightdm-mini-greeter}/share/xgreeters/lightdm-mini-greeter.desktop"; + name = "lightdm-mini-greeter.desktop"; + }]; + + miniGreeterConf = pkgs.writeText "lightdm-mini-greeter.conf" + '' + [greeter] + user = ${cfg.user} + show-password-label = true + password-label-text = Password: + show-input-cursor = true + + [greeter-hotkeys] + mod-key = meta + shutdown-key = s + restart-key = r + hibernate-key = h + suspend-key = u + + [greeter-theme] + font = Sans + font-size = 1em + text-color = "#080800" + error-color = "#F8F8F0" + background-image = "${ldmcfg.background}" + background-color = "#1B1D1E" + window-color = "#F92672" + border-color = "#080800" + border-width = 2px + layout-space = 15 + password-color = "#F8F8F0" + password-background-color = "#1B1D1E" + + ${cfg.extraConfig} + ''; + +in +{ + options = { + + services.xserver.displayManager.lightdm.greeters.mini = { + + enable = mkOption { + type = types.bool; + default = false; + description = '' + Whether to enable lightdm-mini-greeter as the lightdm greeter. + + Note that this greeter starts only the default X session. + You can configure the default X session by + <option>services.xserver.desktopManager.default</option> and + <option>services.xserver.windowManager.default</option>. + ''; + }; + + user = mkOption { + type = types.str; + default = "root"; + description = '' + The user to login as. + ''; + }; + + extraConfig = mkOption { + type = types.lines; + default = ""; + description = '' + Extra configuration that should be put in the lightdm-mini-greeter.conf + configuration file. + ''; + }; + + }; + + }; + + config = mkIf (ldmcfg.enable && cfg.enable) { + + services.xserver.displayManager.lightdm.greeters.gtk.enable = false; + + services.xserver.displayManager.lightdm.greeter = mkDefault { + package = xgreeters; + name = "lightdm-mini-greeter"; + }; + + environment.etc."lightdm/lightdm-mini-greeter.conf".source = miniGreeterConf; + + }; +} diff --git a/nixos/modules/services/x11/display-managers/lightdm.nix b/nixos/modules/services/x11/display-managers/lightdm.nix index 9d30155a7234..5beadacdfa93 100644 --- a/nixos/modules/services/x11/display-managers/lightdm.nix +++ b/nixos/modules/services/x11/display-managers/lightdm.nix @@ -72,6 +72,7 @@ in # preferred. imports = [ ./lightdm-greeters/gtk.nix + ./lightdm-greeters/mini.nix ]; options = { diff --git a/pkgs/applications/display-managers/lightdm-mini-greeter/default.nix b/pkgs/applications/display-managers/lightdm-mini-greeter/default.nix new file mode 100644 index 000000000000..ef80aa00563f --- /dev/null +++ b/pkgs/applications/display-managers/lightdm-mini-greeter/default.nix @@ -0,0 +1,32 @@ +{ stdenv, fetchFromGitHub, autoreconfHook, pkgconfig, lightdm, gtk3 }: + +stdenv.mkDerivation rec { + name = "lightdm-mini-greeter-${version}"; + version = "0.3.2"; + + src = fetchFromGitHub { + owner = "prikhi"; + repo = "lightdm-mini-greeter"; + rev = version; + sha256 = "1g3lrh034w38hiq96b0xmghmlf87hcycwdh06dwkdksr0hl08wxy"; + }; + + nativeBuildInputs = [ autoreconfHook pkgconfig ]; + buildInputs = [ lightdm gtk3 ]; + + configureFlags = [ "--sysconfdir=/etc" ]; + makeFlags = [ "configdir=$(out)/etc" ]; + + postInstall = '' + substituteInPlace "$out/share/xgreeters/lightdm-mini-greeter.desktop" \ + --replace "Exec=lightdm-mini-greeter" "Exec=$out/bin/lightdm-mini-greeter" + ''; + + meta = with stdenv.lib; { + description = "A minimal, configurable, single-user GTK3 LightDM greeter"; + homepage = https://github.com/prikhi/lightdm-mini-greeter; + license = licenses.gpl3; + maintainers = with maintainers; [ mnacamura ]; + platforms = platforms.linux; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index e842e896dbe2..b56f1a0cb5b4 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -18020,6 +18020,8 @@ with pkgs; inherit (xfce) exo; }; + lightdm-mini-greeter = callPackage ../applications/display-managers/lightdm-mini-greeter { }; + slic3r = callPackage ../applications/misc/slic3r { }; slic3r-prusa3d = callPackage ../applications/misc/slic3r/prusa3d.nix { }; |