{ config, pkgs, lib, flakeRoot, ... }: let # Path to wallpaperstuff folder in the flake wallpaperDir = "${flakeRoot}/assets/hyprland/wallpaperstuff"; wallpaperConf = "${wallpaperDir}/wallpaper.conf"; in { # Make wpaperd available system-wide environment.systemPackages = [ pkgs.wpaperd ]; # User-level systemd service for wpaperd systemd.user.services.wpaperd = { description = "wpaperd wallpaper daemon"; after = [ "default.target" ]; enable = true; # <-- Must be set for user services serviceConfig = { Type = "simple"; ExecStart = "${pkgs.wpaperd}/bin/wpaperd --config ${wallpaperConf}"; Restart = "on-failure"; RestartSec = 1; }; # Optional: make it start on login (default.target) wantedBy = [ "default.target" ]; }; # Optional: ensure the directory exists at activation system.activationScripts.copyWallpaperConf = { text = '' echo "=== Ensuring wallpaper config exists ===" mkdir -p "${wallpaperDir}/pictures" if [ ! -f "${wallpaperConf}" ]; then touch "${wallpaperConf}" fi echo "Done." ''; deps = [ ]; }; }