63 lines
1.0 KiB
Nix
63 lines
1.0 KiB
Nix
{
|
|
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;
|
|
};
|
|
};
|
|
};
|
|
}
|