{ lib, config, ... }: with lib; let cfg = config.my.services.wallpaper; in { options.my.services.wallpaper = { enable = mkEnableOption "wallpaper changer"; frequency = mkOption { type = types.str; default = "30m"; }; target = mkOption { type = types.str; default = "graphical-session.target"; }; }; config = mkIf cfg.enable { systemd.user.services.wallpaper = { script = "${getExe config.my.programs.wallpaper.package} -r -v"; wantedBy = [ cfg.target ]; after = [ cfg.target ]; serviceConfig = { Restart = "always"; RuntimeMaxSec = cfg.frequency; ExitType = "cgroup"; }; }; }; }