79 lines
		
	
	
	
		
			1.4 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			79 lines
		
	
	
	
		
			1.4 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
{lib, ...}: let
 | 
						|
  inherit (lib) mkOption;
 | 
						|
  inherit (lib.types) str package path int bool submodule nullOr;
 | 
						|
 | 
						|
  mkVariantOption = {
 | 
						|
    regular = mkOption {
 | 
						|
      type = str;
 | 
						|
      default = "";
 | 
						|
    };
 | 
						|
    bold = mkOption {
 | 
						|
      type = str;
 | 
						|
      default = "";
 | 
						|
    };
 | 
						|
    italic = mkOption {
 | 
						|
      type = str;
 | 
						|
      default = "";
 | 
						|
    };
 | 
						|
    boldItalic = mkOption {
 | 
						|
      type = str;
 | 
						|
      default = "";
 | 
						|
    };
 | 
						|
  };
 | 
						|
 | 
						|
  mkBaseFontOption = {
 | 
						|
    family = mkOption {
 | 
						|
      type = str;
 | 
						|
      default = "";
 | 
						|
    };
 | 
						|
    variants = mkVariantOption;
 | 
						|
    package = mkOption {
 | 
						|
      type = package;
 | 
						|
      default = null;
 | 
						|
    };
 | 
						|
    size = mkOption {
 | 
						|
      type = int;
 | 
						|
      default = 18;
 | 
						|
    };
 | 
						|
    bitmap = mkOption {
 | 
						|
      type = bool;
 | 
						|
      default = false;
 | 
						|
    };
 | 
						|
  };
 | 
						|
  mkFontOption =
 | 
						|
    mkBaseFontOption
 | 
						|
    // {
 | 
						|
      fallback = mkOption {
 | 
						|
        type = nullOr (submodule {options = mkBaseFontOption;});
 | 
						|
        default = null;
 | 
						|
      };
 | 
						|
    };
 | 
						|
in {
 | 
						|
  #  imports = [./palettes];
 | 
						|
  options.ooknet.appearance = {
 | 
						|
    fonts = {
 | 
						|
      monospace = mkFontOption;
 | 
						|
      regular = mkFontOption;
 | 
						|
    };
 | 
						|
    wallpaper = {
 | 
						|
      path = mkOption {
 | 
						|
        type = path;
 | 
						|
        default = null;
 | 
						|
      };
 | 
						|
    };
 | 
						|
    cursor = {
 | 
						|
      package = mkOption {
 | 
						|
        type = package;
 | 
						|
        default = null;
 | 
						|
      };
 | 
						|
      name = mkOption {
 | 
						|
        type = str;
 | 
						|
        default = "";
 | 
						|
      };
 | 
						|
      size = mkOption {
 | 
						|
        type = int;
 | 
						|
        default = 22;
 | 
						|
      };
 | 
						|
    };
 | 
						|
  };
 | 
						|
}
 |