forked from mirrors/nixpkgs
8dc5ff7dcf
The upstream session files display managers use have no concept of sessions being composed from desktop manager and window manager. To be able to set upstream session files as default session, we need a single option. Having two different ways to set default session would be confusing, though, so we decided to deprecate the old method. We also created separate script for each session, just like we already had a separate desktop file for each one, and started using displayManager.sessionPackages mechanism to make the session handling more uniform.
95 lines
2.1 KiB
Nix
95 lines
2.1 KiB
Nix
{ config, lib, pkgs, ... }:
|
|
|
|
with lib;
|
|
|
|
let
|
|
|
|
dmcfg = config.services.xserver.displayManager;
|
|
ldmcfg = dmcfg.lightdm;
|
|
cfg = ldmcfg.greeters.mini;
|
|
|
|
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 using
|
|
<xref linkend="opt-services.xserver.displayManager.defaultSession"/>.
|
|
'';
|
|
};
|
|
|
|
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 = pkgs.lightdm-mini-greeter.xgreeters;
|
|
name = "lightdm-mini-greeter";
|
|
};
|
|
|
|
environment.etc."lightdm/lightdm-mini-greeter.conf".source = miniGreeterConf;
|
|
|
|
};
|
|
}
|