mirror of
https://github.com/NixOS/nixpkgs.git
synced 2025-07-13 21:50:33 +03:00
nixos/lightdm-tiny-greeter: init module
This commit is contained in:
parent
b450c025d1
commit
b155a62dad
2 changed files with 93 additions and 0 deletions
|
@ -0,0 +1,92 @@
|
||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
|
||||||
|
let
|
||||||
|
|
||||||
|
dmcfg = config.services.xserver.displayManager;
|
||||||
|
ldmcfg = dmcfg.lightdm;
|
||||||
|
cfg = ldmcfg.greeters.tiny;
|
||||||
|
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options = {
|
||||||
|
|
||||||
|
services.xserver.displayManager.lightdm.greeters.tiny = {
|
||||||
|
|
||||||
|
enable = mkOption {
|
||||||
|
type = types.bool;
|
||||||
|
default = false;
|
||||||
|
description = ''
|
||||||
|
Whether to enable lightdm-tiny-greeter as the lightdm greeter.
|
||||||
|
|
||||||
|
Note that this greeter starts only the default X session.
|
||||||
|
You can configure the default X session using
|
||||||
|
<xref linkend="opt-services.xserver.displayManager.defaultSession"/>.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
label = {
|
||||||
|
user = mkOption {
|
||||||
|
type = types.str;
|
||||||
|
default = "Username";
|
||||||
|
description = ''
|
||||||
|
The string to represent the user_text label.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
pass = mkOption {
|
||||||
|
type = types.str;
|
||||||
|
default = "Password";
|
||||||
|
description = ''
|
||||||
|
The string to represent the pass_text label.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
extraConfig = mkOption {
|
||||||
|
type = types.lines;
|
||||||
|
default = "";
|
||||||
|
description = ''
|
||||||
|
Section to describe style and ui.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
config = mkIf (ldmcfg.enable && cfg.enable) {
|
||||||
|
|
||||||
|
services.xserver.displayManager.lightdm.greeters.gtk.enable = false;
|
||||||
|
|
||||||
|
nixpkgs.config.lightdm-tiny-greeter.conf =
|
||||||
|
let
|
||||||
|
configHeader = ''
|
||||||
|
#include <gtk/gtk.h>
|
||||||
|
static const char *user_text = "${cfg.label.user}";
|
||||||
|
static const char *pass_text = "${cfg.label.pass}";
|
||||||
|
static const char *session = "${dmcfg.defaultSession}";
|
||||||
|
'';
|
||||||
|
in
|
||||||
|
optionalString (cfg.extraConfig != "")
|
||||||
|
(configHeader + cfg.extraConfig);
|
||||||
|
|
||||||
|
services.xserver.displayManager.lightdm.greeter =
|
||||||
|
mkDefault {
|
||||||
|
package = pkgs.lightdm-tiny-greeter.xgreeters;
|
||||||
|
name = "lightdm-tiny-greeter";
|
||||||
|
};
|
||||||
|
|
||||||
|
assertions = [
|
||||||
|
{
|
||||||
|
assertion = dmcfg.defaultSession != null;
|
||||||
|
message = ''
|
||||||
|
Please set: services.xserver.displayManager.defaultSession
|
||||||
|
'';
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
};
|
||||||
|
}
|
|
@ -77,6 +77,7 @@ in
|
||||||
./lightdm-greeters/mini.nix
|
./lightdm-greeters/mini.nix
|
||||||
./lightdm-greeters/enso-os.nix
|
./lightdm-greeters/enso-os.nix
|
||||||
./lightdm-greeters/pantheon.nix
|
./lightdm-greeters/pantheon.nix
|
||||||
|
./lightdm-greeters/tiny.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
options = {
|
options = {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue