{ config, pkgs, lib, ... }: let wallpaperSource = "${config.home.homeDirectory}/.config/wpaperd-source"; # or flakeRoot path wallpaperTarget = "${config.home.homeDirectory}/.config/wpaperd"; in { home.packages = [ pkgs.wpaperd ]; home.file.".config/wpaperd/wallpaper.conf".source = "${wallpaperSource}/wallpaper.conf"; home.activation.copyWpaperd = lib.homeManager.activationScript { name = "copy-wpaperd"; text = '' echo "=== Copying wpaperd source to ${wallpaperTarget} ===" mkdir -p "${wallpaperTarget}" cp -rT "${wallpaperSource}" "${wallpaperTarget}" echo "Done." ''; }; home.sessionVariables = { WPAPERD_CONFIG = "${wallpaperTarget}/wallpaper.conf"; }; # User-level service home.file.".config/systemd/user/wpaperd.service".text = '' [Unit] Description=wpaperd wallpaper daemon After=default.target [Service] Type=simple ExecStart=${pkgs.wpaperd}/bin/wpaperd --config ${wallpaperTarget}/wallpaper.conf Restart=on-failure RestartSec=1 [Install] WantedBy=default.target ''; }