From 13ad532412c7564b8f0104090ff30130bce3b1bc Mon Sep 17 00:00:00 2001 From: Robert Helgesson Date: Mon, 22 Apr 2019 22:42:42 +0200 Subject: [PATCH] xscreensaver: add option `settings` --- modules/services/xscreensaver.nix | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) 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";