37 lines
		
	
	
		
			1004 B
		
	
	
	
		
			Nix
		
	
	
	
	
	
		
		
			
		
	
	
			37 lines
		
	
	
		
			1004 B
		
	
	
	
		
			Nix
		
	
	
	
	
	
|  | { config, lib, pkgs, ... }: | ||
|  | with lib; | ||
|  | let | ||
|  |   cfg = config.services.fractalart; | ||
|  | in { | ||
|  |   options.services.fractalart = { | ||
|  |     enable = mkOption { | ||
|  |       type = types.bool; | ||
|  |       default = false; | ||
|  |       example = true; | ||
|  |       description = "Enable FractalArt for generating colorful wallpapers on login"; | ||
|  |     }; | ||
|  | 
 | ||
|  |     width = mkOption { | ||
|  |       type = types.nullOr types.int; | ||
|  |       default = null; | ||
|  |       example = 1920; | ||
|  |       description = "Screen width"; | ||
|  |     }; | ||
|  | 
 | ||
|  |     height = mkOption { | ||
|  |       type = types.nullOr types.int; | ||
|  |       default = null; | ||
|  |       example = 1080; | ||
|  |       description = "Screen height"; | ||
|  |     }; | ||
|  |   }; | ||
|  | 
 | ||
|  |   config = mkIf cfg.enable { | ||
|  |     environment.systemPackages = [ pkgs.haskellPackages.FractalArt ]; | ||
|  |     services.xserver.displayManager.sessionCommands = | ||
|  |       "${pkgs.haskellPackages.FractalArt}/bin/FractalArt --no-bg -f .background-image" | ||
|  |         + optionalString (cfg.width  != null) " -w ${toString cfg.width}" | ||
|  |         + optionalString (cfg.height != null) " -h ${toString cfg.height}"; | ||
|  |   }; | ||
|  | } |