Move slim options into the displayManager attribute set.

Add an enable flag to slim which is by default set to be true.

svn path=/nixos/branches/modular-nixos/; revision=15009
This commit is contained in:
Nicolas Pierron 2009-04-13 10:47:15 +00:00
parent 313fa38e2e
commit 0ff58754ae

View File

@ -4,41 +4,65 @@
let let
inherit (pkgs.lib) mkOption; inherit (pkgs.lib) mkOption;
options = { services = { xserver = { slimOptions = {
slim = { theme = mkOption {
default = null;
example = pkgs.fetchurl {
url = http://download.berlios.de/slim/slim-wave.tar.gz;
sha256 = "0ndr419i5myzcylvxb89m9grl2xyq6fbnyc3lkd711mzlmnnfxdy";
};
description = "
The theme for the SLiM login manager. If not specified, SLiM's
default theme is used. See <link
xlink:href='http://slim.berlios.de/themes01.php'/> for a
collection of themes.
";
};
theme = mkOption { defaultUser = mkOption {
default = null; default = "";
example = pkgs.fetchurl { example = "login";
url = http://download.berlios.de/slim/slim-wave.tar.gz; description = "
sha256 = "0ndr419i5myzcylvxb89m9grl2xyq6fbnyc3lkd711mzlmnnfxdy"; The default user to load. If you put a username here you
}; get it automatically loaded into the username field, and
the focus is placed on the password.
";
};
hideCursor = mkOption {
default = false;
example = true;
description = "
Hide the mouse cursor on the login screen.
";
};
};
options = { services = { xserver = { displayManager = {
slim = slimOptions // {
enable = mkOption {
default = true;
description = " description = "
The theme for the SLiM login manager. If not specified, SLiM's Whether to enable slim as the display manager.
default theme is used. See <link
xlink:href='http://slim.berlios.de/themes01.php'/> for a
collection of themes.
"; ";
}; };
defaultUser = mkOption { };
default = "";
example = "login";
description = "
The default user to load. If you put a username here you
get it automatically loaded into the username field, and
the focus is placed on the password.
";
};
hideCursor = mkOption { }; /* displayManager */ }; /* xserver */ }; /* services */ };
default = false;
example = true; copyOldOptions = { services = { xserver = {
description = "
Hide the mouse cursor on the login screen. # Declare old options.
"; slim = slimOptions;
};
# Copy the old options into the new options.
displayManager = {
slim = config.services.xserver.slim;
}; };
}; /* xserver */ }; /* services */ }; }; /* xserver */ }; /* services */ };
@ -49,7 +73,9 @@ in
let let
xcfg = config.services.xserver; xcfg = config.services.xserver;
dmcfg = xcfg.displayManager; dmcfg = xcfg.displayManager;
cfg = xcfg.slim; cfg = dmcfg.slim;
inherit (pkgs.lib) mkIf;
slimConfig = pkgs.writeText "slim.cfg" '' slimConfig = pkgs.writeText "slim.cfg" ''
xauth_path ${dmcfg.xauthBin} xauth_path ${dmcfg.xauthBin}
@ -80,9 +106,10 @@ let
in in
{ mkIf cfg.enable {
require = [ require = [
options options
copyOldOptions
]; ];
services = { services = {