OOKNET                             [ /  search the index  ]  
──────────────────────────────────────────────────────────────────────────────────────
══════════════════════════════════════════════════════════════════════════════════════
OOKNET   [ /  search  ]  
────────────────────────────────────────────────
════════════════════════════════════════════════
 
 
main @ 80 LINES
 
[ HISTORY ]  [ UP ]
 

{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;
      };
    };
  };
}

{lib, ...}: let
  inherit (lib) mkOption;
  inherit (lib.types) str package path int b
ool 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;
      };
    };
  };
}
 
──────────────────────────────────────────────────────────────────────────────────────
OOKNET
────────────────────────────────────────────────
OOKNET