diff --git a/modules/home/services/hyprpaper/default.nix b/modules/home/services/hyprpaper/default.nix index ab1cb86b..9ddf4161 100644 --- a/modules/home/services/hyprpaper/default.nix +++ b/modules/home/services/hyprpaper/default.nix @@ -8,52 +8,47 @@ }: let inherit (lib) mkIf mkEnableOption; + cfg = config.home.services.hyprpaper; hyprpaperFlake = inputs.hyprpaper.packages.${pkgs.system}.default; - # hyprpaperPkg = pkgs.hyprpaper; + + 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 "Enables hyprpaper"; + 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 = [ - "~/media/images/bg_1.jpg" - "~/media/images/bg_2.jpg" - "~/media/images/bg_3.jpg" - "~/media/images/by_housevisit_2560.jpg" - "~/media/images/nix.png" - "~/media/images/stacks.png" - "~/media/images/ship.png" - "~/media/images/cabin.png" - "~/media/images/dunes.png" - "~/media/images/globe.png" - "~/media/images/space.jpg" - "~/media/images/galaxy.png" - "~/media/images/deathstar.png" - "~/media/images/trollskog.png" - "~/media/images/waterwindow.jpg" - "~/media/images/barngreet.png" - ]; + preload = builtins.attrValues bgs; - wallpaper = [ - # kima - "DP-3,${osConfig.settings.theme.background.primary}" - "HDMI-A-1,${osConfig.settings.theme.background.secondary}" - # bunk - "eDP-1,${osConfig.settings.theme.background.primary}" - # toothpc - "DVI-D-1,${osConfig.settings.theme.background.primary}" - ]; + wallpaper = wallpapers; }; }; }; diff --git a/modules/settings/theme/default.nix b/modules/settings/theme/default.nix index a4d417ac..d006defd 100644 --- a/modules/settings/theme/default.nix +++ b/modules/settings/theme/default.nix @@ -1,34 +1,28 @@ { lib, ... }: let inherit (lib) mkOption types; - 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"; - }; - bgList = builtins.attrNames bgs; + bgList = [ + "wallpaper_1" + "wallpaper_2" + "wallpaper_3" + "wallpaper_4" + "wallpaper_5" + ]; in { - options.settings.theme = { - background = { - lockscreen = mkOption { - type = types.enum bgList; - apply = name: bgs.${name}; - example = "wallpaper_1"; - }; - primary = mkOption { - type = types.enum bgList; - apply = name: bgs.${name}; - example = "wallpaper_2"; - }; - secondary = mkOption { - type = types.nullOr (types.enum bgList); - default = null; - apply = name: if name == null then null else bgs.${name}; - example = "wallpaper_3"; - }; + options.settings.theme.background = { + lockscreen = mkOption { + type = types.enum bgList; + example = "wallpaper_1"; + }; + primary = mkOption { + type = types.enum bgList; + example = "wallpaper_2"; + }; + secondary = mkOption { + type = types.nullOr (types.enum bgList); + default = null; + example = "wallpaper_3"; }; }; }