34 lines
		
	
	
	
		
			946 B
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			34 lines
		
	
	
	
		
			946 B
		
	
	
	
		
			Nix
		
	
	
	
	
	
| { lib, config, inputs, pkgs, ... }:
 | |
| let 
 | |
|   inherit (inputs.nix-colors.lib-contrib { inherit pkgs; }) nixWallpaperFromScheme;
 | |
|   inherit (lib) types mkDefault mkIf mkOption mkEnableOption;
 | |
| 
 | |
|   cfg = config.homeModules.theme.wallpaper;
 | |
| in
 | |
| {
 | |
|   options.homeModules.theme.wallpaper = {
 | |
|     enable = mkEnableOption "Enable wallpaper module";
 | |
|     path = mkOption {
 | |
|       type = types.path;
 | |
|       default = null;
 | |
|       description = "Wallpaper Path";
 | |
|     };
 | |
|   };
 | |
| 
 | |
|   config = mkIf cfg.enable {
 | |
|     homeModules.theme.wallpaper.path =
 | |
|       let
 | |
|         largest = f: xs: builtins.head (builtins.sort (a: b: a > b) (map f xs));
 | |
|         largestWidth = largest (x: x.width) config.monitors;
 | |
|         largestHeight = largest (x: x.height) config.monitors;
 | |
|       in
 | |
|       mkDefault (nixWallpaperFromScheme
 | |
|         {
 | |
|           scheme = config.colorscheme;
 | |
|           width = largestWidth;
 | |
|           height = largestHeight;
 | |
|           logoScale = 4;
 | |
|         });
 | |
|   };
 | |
| }
 | |
| 
 |