fix(theme/hyprpaper): complete rewrite

This commit is contained in:
2025-08-31 15:38:10 +02:00
parent e70a2de159
commit f22f925b83
2 changed files with 44 additions and 55 deletions

View File

@@ -8,52 +8,47 @@
}: }:
let let
inherit (lib) mkIf mkEnableOption; inherit (lib) mkIf mkEnableOption;
cfg = config.home.services.hyprpaper; cfg = config.home.services.hyprpaper;
hyprpaperFlake = inputs.hyprpaper.packages.${pkgs.system}.default; 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 in
{ {
options = { options = {
home.services.hyprpaper.enable = mkEnableOption "Enables hyprpaper"; home.services.hyprpaper.enable = mkEnableOption "Enable hyprpaper wallpaper service";
}; };
config = mkIf cfg.enable { config = mkIf cfg.enable {
services.hyprpaper = { services.hyprpaper = {
enable = true; enable = true;
package = hyprpaperFlake; package = hyprpaperFlake;
settings = { settings = {
ipc = "on"; ipc = "on";
splash = false; splash = false;
splash_offset = 2.0; splash_offset = 2.0;
preload = [ preload = builtins.attrValues bgs;
"~/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"
];
wallpaper = [ wallpaper = wallpapers;
# 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}"
];
}; };
}; };
}; };

View File

@@ -1,34 +1,28 @@
{ lib, ... }: { lib, ... }:
let let
inherit (lib) mkOption types; inherit (lib) mkOption types;
bgs = { bgList = [
wallpaper_1 = "~/media/images/bg_1.jpg"; "wallpaper_1"
wallpaper_2 = "~/media/images/bg_2.jpg"; "wallpaper_2"
wallpaper_3 = "~/media/images/bg_3.jpg"; "wallpaper_3"
wallpaper_4 = "~/media/images/waterwindow.jpg"; "wallpaper_4"
wallpaper_5 = "~/media/images/barngreet.png"; "wallpaper_5"
}; ];
bgList = builtins.attrNames bgs;
in in
{ {
options.settings.theme = { options.settings.theme.background = {
background = { lockscreen = mkOption {
lockscreen = mkOption { type = types.enum bgList;
type = types.enum bgList; example = "wallpaper_1";
apply = name: bgs.${name}; };
example = "wallpaper_1"; primary = mkOption {
}; type = types.enum bgList;
primary = mkOption { example = "wallpaper_2";
type = types.enum bgList; };
apply = name: bgs.${name}; secondary = mkOption {
example = "wallpaper_2"; type = types.nullOr (types.enum bgList);
}; default = null;
secondary = mkOption { example = "wallpaper_3";
type = types.nullOr (types.enum bgList);
default = null;
apply = name: if name == null then null else bgs.${name};
example = "wallpaper_3";
};
}; };
}; };
} }