56 lines
1.2 KiB
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;
|
|
};
|
|
};
|
|
};
|
|
}
|