{ config, lib, pkgs, ... }: let cfg = config.local.randomWallpaper; wallpaper-agent-src = ./wallpaper-daemon.swift; in { options.local.randomWallpaper = { enable = lib.mkEnableOption "Random Rotating Wallpaper"; directory = lib.mkOption { type = lib.types.str; description = "Folder containing images"; }; interval = lib.mkOption { type = lib.types.int; default = 1800; description = "Seconds between wallpaper changes"; }; }; config = lib.mkIf cfg.enable { launchd.user.agents.random-wallpaper.serviceConfig = { Label = "org.rschanz.wallpaperDaemon"; ProgramArguments = [ "/usr/bin/swift" "${wallpaper-agent-src}" "${cfg.directory}" "${builtins.toString cfg.interval}" ]; RunAtLoad = true; KeepAlive = true; ProcessType = "Background"; }; }; }