diff --git a/modules/services/xscreensaver.nix b/modules/services/xscreensaver.nix index 23df90c4d..4001c294e 100644 --- a/modules/services/xscreensaver.nix +++ b/modules/services/xscreensaver.nix @@ -2,19 +2,41 @@ with lib; +let + + cfg = config.services.xscreensaver; + +in + { meta.maintainers = [ maintainers.rycee ]; options = { services.xscreensaver = { enable = mkEnableOption "XScreenSaver"; + + settings = mkOption { + type = with types; attrsOf (either bool (either int str)); + default = {}; + example = { + mode = "blank"; + lock = false; + fadeTicks = 20; + }; + description = '' + The settings to use for XScreenSaver. + ''; + }; }; }; - config = mkIf config.services.xscreensaver.enable { + config = mkIf cfg.enable { # To make the xscreensaver-command tool available. home.packages = [ pkgs.xscreensaver ]; + xresources.properties = + mapAttrs' (n: nameValuePair "xscreensaver.${n}") cfg.settings; + systemd.user.services.xscreensaver = { Unit = { Description = "XScreenSaver";