{ config, lib, pkgs, inputs, osConfig, cLib, ... }: let inherit (lib) mkIf mkEnableOption; cfg = config.home.services.hyprpaper; hyprpaperFlake = inputs.hyprpaper.packages.${pkgs.system}.default; bg = osConfig.settings.theme.background; bgs = cLib.theme.bgs; wallpapers = map (m: "${m.monitor},${bgs.resolve m.bg}") monitorMappings; monitorMappings = [ { monitor = "DP-3"; bg = bg.primary; } { monitor = "HDMI-A-1"; bg = bg.secondary; } { monitor = "eDP-1"; bg = bg.primary; } { monitor = "DVI-D-1"; bg = bg.primary; } ]; in { options = { home.services.hyprpaper.enable = mkEnableOption "Enable hyprpaper wallpaper service"; }; config = mkIf cfg.enable { services.hyprpaper = { enable = true; package = hyprpaperFlake; settings = { ipc = "on"; splash = false; splash_offset = 2.0; preload = bgs.all; wallpaper = bgs.resolveList monitorMappings; }; }; }; }