Files
cnix/modules/home/services/hyprpaper/default.nix

56 lines
1.2 KiB
Nix

{
config,
lib,
pkgs,
inputs,
osConfig,
...
}:
let
inherit (lib) mkIf mkEnableOption;
cfg = config.home.services.hyprpaper;
hyprpaperFlake = inputs.hyprpaper.packages.${pkgs.system}.default;
bgs = {
wallpaper_1 = "~/media/images/bg_1.jpg";
wallpaper_2 = "~/media/images/bg_2.jpg";
wallpaper_3 = "~/media/images/bg_3.jpg";
wallpaper_4 = "~/media/images/waterwindow.jpg";
wallpaper_5 = "~/media/images/barngreet.png";
};
resolve = name: if name == null then null else bgs.${name};
bg = osConfig.settings.theme.background;
wallpapers = builtins.filter (x: x != null) [
"DP-3,${resolve bg.primary}"
(if bg.secondary != null then "HDMI-A-1,${resolve bg.secondary}" else null)
"eDP-1,${resolve bg.primary}"
"DVI-D-1,${resolve 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 = builtins.attrValues bgs;
wallpaper = wallpapers;
};
};
};
}