{ lib, pkgs, osConfig, config, ... }: let inherit (lib) mkIf getExe; cfg = osConfig.myOptions.home-manager.services.hyprpaper; cfgIsWayland = osConfig.myOptions.home-manager.wms.isWayland; in { config = mkIf (cfg.enable && cfgIsWayland) { systemd.user.services.hyprpaper = { Install.WantedBy = ["hyprland-session.target"]; Unit = { Description = "Hyprpaper (Hyprland wallpaper daemon)"; PartOf = ["graphical-session.target"]; After = ["graphical-session.target"]; }; Service = { Type = "simple"; ExecStart = "${getExe pkgs.hyprpaper}"; Restart = "on-failure"; }; }; xdg.configFile."hypr/hyprpaper.conf".text = '' preload=${cfg.wallpaperPath} wallpaper=,${cfg.wallpaperPath} # same wallpaper on all monitors ipc=off ''; }; }