50 lines
		
	
	
	
		
			2.5 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			50 lines
		
	
	
	
		
			2.5 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
| # Credit to github:misterio77/nix-colors
 | |
| {
 | |
|   pkgs,
 | |
|   config,
 | |
| }: let
 | |
|   inherit (config.ooknet.hardware) monitors;
 | |
|   inherit (config.ooknet.appearance) colorscheme;
 | |
|   largest = f: xs: builtins.head (builtins.sort (a: b: a > b) (map f xs));
 | |
|   largestWidth = largest (x: x.width) monitors;
 | |
|   largestHeight = largest (x: x.height) monitors;
 | |
| in
 | |
|   {
 | |
|     width ? largestWidth,
 | |
|     height ? largestHeight,
 | |
|     logoScale ? 4,
 | |
|     backgroundColor ? colorscheme.palette.mantle,
 | |
|     logoColor1 ? colorscheme.palette.yellow,
 | |
|     logoColor2 ? colorscheme.palette.green,
 | |
|   }:
 | |
|     pkgs.stdenv.mkDerivation {
 | |
|       name = "generated-nix-wallpaper-${colorscheme.slug}.png";
 | |
|       src = pkgs.writeTextFile {
 | |
|         name = "template.svg";
 | |
|         text = ''
 | |
|           <svg width="${toString width}" height="${
 | |
|             toString height
 | |
|           }" version="1.1" xmlns="http://www.w3.org/2000/svg">
 | |
|              <rect width="${toString width}" height="${
 | |
|             toString height
 | |
|           }" fill="#${backgroundColor}"/>
 | |
|              <svg x="${toString (width / 2 - (logoScale * 50))}" y="${
 | |
|             toString (height / 2 - (logoScale * 50))
 | |
|           }" version="1.1" xmlns="http://www.w3.org/2000/svg">
 | |
|                <g transform="scale(${toString logoScale})">
 | |
|                  <g transform="matrix(.19936 0 0 .19936 80.161 27.828)">
 | |
|                    <path d="m-53.275 105.84-122.2-211.68 56.157-0.5268 32.624 56.869 32.856-56.565 27.902 0.011 14.291 24.69-46.81 80.49 33.229 57.826zm-142.26 92.748 244.42 0.012-27.622 48.897-65.562-0.1813 32.559 56.737-13.961 24.158-28.528 0.031-46.301-80.784-66.693-0.1359zm-9.3752-169.2-122.22 211.67-28.535-48.37 32.938-56.688-65.415-0.1717-13.942-24.169 14.237-24.721 93.111 0.2937 33.464-57.69z" fill="#${logoColor1}"/>
 | |
|                    <path d="m-97.659 193.01 122.22-211.67 28.535 48.37-32.938 56.688 65.415 0.1716 13.941 24.169-14.237 24.721-93.111-0.2937-33.464 57.69zm-9.5985-169.65-244.42-0.012 27.622-48.897 65.562 0.1813-32.559-56.737 13.961-24.158 28.528-0.031 46.301 80.784 66.693 0.1359zm-141.76 93.224 122.2 211.68-56.157 0.5268-32.624-56.869-32.856 56.565-27.902-0.011-14.291-24.69 46.81-80.49-33.229-57.826z" fill="#${logoColor2}" style="isolation:auto;mix-blend-mode:normal"/>
 | |
|                  </g>
 | |
|                </g>
 | |
|              </svg>
 | |
|            </svg>
 | |
|         '';
 | |
|       };
 | |
|       buildInputs = [pkgs.inkscape];
 | |
|       unpackPhase = "true";
 | |
|       buildPhase = ''
 | |
|         inkscape --export-type="png" $src -w ${toString width} -h ${toString height} -o wallpaper.png
 | |
|       '';
 | |
|       installPhase = "install -Dm0644 wallpaper.png $out";
 | |
|     }
 |