From 0c5e54b528d29b9922feb290ef0235fac1ab5300 Mon Sep 17 00:00:00 2001 From: seth Date: Sun, 30 Jul 2023 00:29:25 -0400 Subject: [PATCH] feat: remove all IFD by moving all upstream repos to our flake inputs, we no longer need to have [IFD](https://nixos.wiki/wiki/Import_From_Derivation) in our modules - making evaluation faster for all configurations --- flake.lock | 172 ++++++++++++++++++++++++++++- flake.nix | 99 ++++++++--------- inputs.nix | 15 +++ modules/home-manager/alacritty.nix | 11 +- modules/home-manager/bat.nix | 11 +- modules/home-manager/bottom.nix | 11 +- modules/home-manager/btop.nix | 12 +- modules/home-manager/default.nix | 14 +-- modules/home-manager/helix.nix | 12 +- modules/home-manager/lazygit.nix | 11 +- modules/home-manager/polybar.nix | 12 +- modules/home-manager/starship.nix | 12 +- modules/home-manager/sway.nix | 12 +- modules/home-manager/tmux.nix | 11 +- modules/lib/default.nix | 4 +- modules/nixos/default.nix | 6 +- modules/nixos/grub.nix | 14 +-- outputs.nix | 56 ++++++++++ 18 files changed, 328 insertions(+), 167 deletions(-) create mode 100644 inputs.nix create mode 100644 outputs.nix diff --git a/flake.lock b/flake.lock index 9f825d3b..1f6e4c4a 100644 --- a/flake.lock +++ b/flake.lock @@ -1,5 +1,69 @@ { "nodes": { + "alacritty": { + "flake": false, + "locked": { + "lastModified": 1664239314, + "narHash": "sha256-w9XVtEe7TqzxxGUCDUR9BFkzLZjG8XrplXJ3lX6f+x0=", + "owner": "catppuccin", + "repo": "alacritty", + "rev": "3c808cbb4f9c87be43ba5241bc57373c793d2f17", + "type": "github" + }, + "original": { + "owner": "catppuccin", + "repo": "alacritty", + "type": "github" + } + }, + "bat": { + "flake": false, + "locked": { + "lastModified": 1668065083, + "narHash": "sha256-6WVKQErGdaqb++oaXnY3i6/GuH2FhTgK0v4TN4Y0Wbw=", + "owner": "catppuccin", + "repo": "bat", + "rev": "ba4d16880d63e656acced2b7d4e034e4a93f74b1", + "type": "github" + }, + "original": { + "owner": "catppuccin", + "repo": "bat", + "type": "github" + } + }, + "bottom": { + "flake": false, + "locked": { + "lastModified": 1672359880, + "narHash": "sha256-VaHX2I/Gn82wJWzybpWNqU3dPi3206xItOlt0iF6VVQ=", + "owner": "catppuccin", + "repo": "bottom", + "rev": "c0efe9025f62f618a407999d89b04a231ba99c92", + "type": "github" + }, + "original": { + "owner": "catppuccin", + "repo": "bottom", + "type": "github" + } + }, + "btop": { + "flake": false, + "locked": { + "lastModified": 1686163899, + "narHash": "sha256-J3UezOQMDdxpflGax0rGBF/XMiKqdqZXuX4KMVGTxFk=", + "owner": "catppuccin", + "repo": "btop", + "rev": "89ff712eb62747491a76a7902c475007244ff202", + "type": "github" + }, + "original": { + "owner": "catppuccin", + "repo": "btop", + "type": "github" + } + }, "flake-compat": { "flake": false, "locked": { @@ -16,6 +80,54 @@ "type": "github" } }, + "grub": { + "flake": false, + "locked": { + "lastModified": 1672329233, + "narHash": "sha256-/bSolCta8GCZ4lP0u5NVqYQ9Y3ZooYCNdTwORNvR7M0=", + "owner": "catppuccin", + "repo": "grub", + "rev": "803c5df0e83aba61668777bb96d90ab8f6847106", + "type": "github" + }, + "original": { + "owner": "catppuccin", + "repo": "grub", + "type": "github" + } + }, + "helix": { + "flake": false, + "locked": { + "lastModified": 1680791535, + "narHash": "sha256-aa8KZ7/1TXcBqaV/TYOZ8rpusOf5QeQ9i2Upnncbziw=", + "owner": "catppuccin", + "repo": "helix", + "rev": "5677c16dc95297a804caea9161072ff174018fdd", + "type": "github" + }, + "original": { + "owner": "catppuccin", + "repo": "helix", + "type": "github" + } + }, + "lazygit": { + "flake": false, + "locked": { + "lastModified": 1683041570, + "narHash": "sha256-9BBmWRcjNaJE9T0RKVEJaSnkrbMom0CLYE8PzAT6yFw=", + "owner": "catppuccin", + "repo": "lazygit", + "rev": "b2ecb6d41b6f54a82104879573c538e8bdaeb0bf", + "type": "github" + }, + "original": { + "owner": "catppuccin", + "repo": "lazygit", + "type": "github" + } + }, "nixpkgs": { "locked": { "lastModified": 1685655444, @@ -31,10 +143,68 @@ "type": "indirect" } }, + "polybar": { + "flake": false, + "locked": { + "lastModified": 1664945864, + "narHash": "sha256-bUbSgMg/sa2faeEUZo80GNmhOX3wn2jLzfA9neF8ERA=", + "owner": "catppuccin", + "repo": "polybar", + "rev": "9ee66f83335404186ce979bac32fcf3cd047396a", + "type": "github" + }, + "original": { + "owner": "catppuccin", + "repo": "polybar", + "type": "github" + } + }, "root": { "inputs": { + "alacritty": "alacritty", + "bat": "bat", + "bottom": "bottom", + "btop": "btop", "flake-compat": "flake-compat", - "nixpkgs": "nixpkgs" + "grub": "grub", + "helix": "helix", + "lazygit": "lazygit", + "nixpkgs": "nixpkgs", + "polybar": "polybar", + "starship": "starship", + "sway": "sway" + } + }, + "starship": { + "flake": false, + "locked": { + "lastModified": 1689246850, + "narHash": "sha256-nsRuxQFKbQkyEI4TXgvAjcroVdG+heKX5Pauq/4Ota0=", + "owner": "catppuccin", + "repo": "starship", + "rev": "5629d2356f62a9f2f8efad3ff37476c19969bd4f", + "type": "github" + }, + "original": { + "owner": "catppuccin", + "repo": "starship", + "type": "github" + } + }, + "sway": { + "flake": false, + "locked": { + "lastModified": 1677157164, + "narHash": "sha256-6Cvsmdl3OILz1vZovyBIuuSpm207I3W0dmUGowR9Ugk=", + "owner": "catppuccin", + "repo": "sway", + "rev": "c89098fc3517b64f0422aaaccb98dcab6ae9348f", + "type": "github" + }, + "original": { + "owner": "catppuccin", + "repo": "sway", + "type": "github" } } }, diff --git a/flake.nix b/flake.nix index 2e6fd98f..7660c190 100644 --- a/flake.nix +++ b/flake.nix @@ -6,62 +6,51 @@ url = "github:edolstra/flake-compat"; flake = false; }; - }; - - outputs = { self, nixpkgs, ... }: - let - systems = [ - "x86_64-linux" - "aarch64-linux" - "x86_64-darwin" - "aarch64-darwin" - ]; - - inherit (nixpkgs) lib; - - forAllSystems = fn: lib.genAttrs systems (s: fn nixpkgsFor.${s}); - nixpkgsFor = lib.genAttrs systems (system: import nixpkgs { inherit system; }); - in - { - formatter = forAllSystems (pkgs: pkgs.nixpkgs-fmt); - - homeManagerModules.catppuccin = import ./modules/home-manager nixpkgs; - - nixosModules.catppuccin = import ./modules/nixos nixpkgs; - - packages = forAllSystems (pkgs: - let - mkEval = module: lib.evalModules { - modules = [ - module - { - _module = { - check = false; - args.lib = import ./modules/lib/mkExtLib.nix lib; - }; - } - ]; - }; - mkDoc = name: options: - let - doc = pkgs.nixosOptionsDoc { - options = lib.filterAttrs (n: _: n != "_module") options; - documentType = "none"; - revision = if self ? rev then builtins.substring 0 7 self.rev else "dirty"; - }; - in - pkgs.runCommand "${name}-module-doc.md" { } '' - cat ${doc.optionsCommonMark} > $out - ''; + # home-manager + alacritty = { + url = "github:catppuccin/alacritty"; + flake = false; + }; + bat = { + url = "github:catppuccin/bat"; + flake = false; + }; + bottom = { + url = "github:catppuccin/bottom"; + flake = false; + }; + btop = { + url = "github:catppuccin/btop"; + flake = false; + }; + helix = { + url = "github:catppuccin/helix"; + flake = false; + }; + lazygit = { + url = "github:catppuccin/lazygit"; + flake = false; + }; + polybar = { + url = "github:catppuccin/polybar"; + flake = false; + }; + starship = { + url = "github:catppuccin/starship"; + flake = false; + }; + sway = { + url = "github:catppuccin/sway"; + flake = false; + }; - hmEval = mkEval self.homeManagerModules.catppuccin; - nixosEval = mkEval self.nixosModules.catppuccin; - in - rec { - nixos-doc = mkDoc "nixos" nixosEval.options; - home-manager-doc = mkDoc "home-manager" hmEval.options; - default = home-manager-doc; - }); + # nixos + grub = { + url = "github:catppuccin/grub"; + flake = false; }; + }; + + outputs = inputs: (import ./outputs.nix inputs); # yes these parantheseis are unneeded, but i wanted to get around a statix warning } diff --git a/inputs.nix b/inputs.nix new file mode 100644 index 00000000..c01f593a --- /dev/null +++ b/inputs.nix @@ -0,0 +1,15 @@ +{ + # home-manager + alacritty = "github:catppuccin/alacritty"; + bat = "github:catppuccin/bat"; + bottom = "github:catppuccin/bottom"; + btop = "github:catppuccin/btop"; + helix = "github:catppuccin/helix"; + lazygit = "github:catppuccin/lazygit"; + polybar = "github:catppuccin/polybar"; + starship = "github:catppuccin/starship"; + sway = "github:catppuccin/sway"; + + # nixos + grub = "github:catppuccin/grub"; +} diff --git a/modules/home-manager/alacritty.nix b/modules/home-manager/alacritty.nix index 25007567..aa007650 100644 --- a/modules/home-manager/alacritty.nix +++ b/modules/home-manager/alacritty.nix @@ -1,6 +1,7 @@ { config , pkgs , lib +, inputs , ... }: let @@ -14,15 +15,7 @@ in config.programs.alacritty.settings = let - file = - pkgs.fetchFromGitHub - { - owner = "catppuccin"; - repo = "alacritty"; - rev = "3c808cbb4f9c87be43ba5241bc57373c793d2f17"; - sha256 = "sha256-w9XVtEe7TqzxxGUCDUR9BFkzLZjG8XrplXJ3lX6f+x0="; - } - + "/catppuccin-${cfg.flavour}.yml"; + file = "${inputs.alacritty}/catppuccin-${cfg.flavour}.yml"; in lib.mkIf enable (ctp.fromYaml pkgs file); } diff --git a/modules/home-manager/bat.nix b/modules/home-manager/bat.nix index de0eb5fe..137aa985 100644 --- a/modules/home-manager/bat.nix +++ b/modules/home-manager/bat.nix @@ -1,6 +1,6 @@ { config -, pkgs , lib +, inputs , ... }: let @@ -14,14 +14,7 @@ in config = { programs.bat = lib.mkIf enable { config.theme = "Catppuccin-${cfg.flavour}"; - themes."Catppuccin-${cfg.flavour}" = builtins.readFile (pkgs.fetchFromGitHub - { - owner = "catppuccin"; - repo = "bat"; - rev = "ba4d16880d63e656acced2b7d4e034e4a93f74b1"; - sha256 = "sha256-6WVKQErGdaqb++oaXnY3i6/GuH2FhTgK0v4TN4Y0Wbw="; - } - + "/Catppuccin-${cfg.flavour}.tmTheme"); + themes."Catppuccin-${cfg.flavour}" = builtins.readFile "${inputs.bat}/Catppuccin-${cfg.flavour}.tmTheme"; }; }; } diff --git a/modules/home-manager/bottom.nix b/modules/home-manager/bottom.nix index db588806..fe01da56 100644 --- a/modules/home-manager/bottom.nix +++ b/modules/home-manager/bottom.nix @@ -1,6 +1,6 @@ { config -, pkgs , lib +, inputs , ... }: let @@ -12,12 +12,5 @@ in options.programs.bottom.catppuccin = lib.ctp.mkCatppuccinOpt "bottom" config; - config.programs.bottom.settings = lib.mkIf enable (fromTOML (readFile (pkgs.fetchFromGitHub - { - owner = "catppuccin"; - repo = "bottom"; - rev = "c0efe9025f62f618a407999d89b04a231ba99c92"; - sha256 = "sha256-VaHX2I/Gn82wJWzybpWNqU3dPi3206xItOlt0iF6VVQ="; - } - + "/themes/${cfg.flavour}.toml"))); + config.programs.bottom.settings = lib.mkIf enable (fromTOML (readFile "${inputs.bottom}/themes/${cfg.flavour}.toml")); } diff --git a/modules/home-manager/btop.nix b/modules/home-manager/btop.nix index 889a7e60..f39f638c 100644 --- a/modules/home-manager/btop.nix +++ b/modules/home-manager/btop.nix @@ -1,6 +1,6 @@ { config -, pkgs , lib +, inputs , ... }: let @@ -9,15 +9,7 @@ let enable = cfg.enable && config.programs.btop.enable; themePath = "/themes/catppuccin_${cfg.flavour}.theme"; - theme = - pkgs.fetchFromGitHub - { - owner = "catppuccin"; - repo = "btop"; - rev = "7109eac2884e9ca1dae431c0d7b8bc2a7ce54e54"; - sha256 = "sha256-QoPPx4AzxJMYo/prqmWD/CM7e5vn/ueyx+XQ5+YfHF8="; - } - + themePath; + theme = inputs.btop + themePath; in { options.programs.btop.catppuccin = diff --git a/modules/home-manager/default.nix b/modules/home-manager/default.nix index aedcb0bf..3c9bd8ac 100644 --- a/modules/home-manager/default.nix +++ b/modules/home-manager/default.nix @@ -1,10 +1,10 @@ -nixpkgs: { config - , pkgs - , lib - , ... - }: +inputs: { config + , pkgs + , lib + , ... + }: let - extendedLib = import ../lib/mkExtLib.nix nixpkgs.lib; + extendedLib = import ../lib/mkExtLib.nix inputs.nixpkgs.lib; inherit (extendedLib) ctp; in { @@ -26,7 +26,7 @@ in ./tmux.nix ]; in - extendedLib.ctp.mapModules config pkgs extendedLib files; + extendedLib.ctp.mapModules config pkgs extendedLib inputs files; options.catppuccin = { flavour = lib.mkOption { diff --git a/modules/home-manager/helix.nix b/modules/home-manager/helix.nix index 846e859a..8df8d404 100644 --- a/modules/home-manager/helix.nix +++ b/modules/home-manager/helix.nix @@ -1,10 +1,10 @@ { config , pkgs , lib +, inputs , ... }: let - inherit (builtins) fromTOML readFile; cfg = config.programs.helix.catppuccin; enable = cfg.enable && config.programs.helix.enable; in @@ -28,13 +28,7 @@ in editor.color-modes = lib.mkDefault true; }; - themes."catppuccin-${cfg.flavour}" = fromTOML (readFile (pkgs.fetchFromGitHub - { - owner = "catppuccin"; - repo = "helix"; - rev = "5677c16dc95297a804caea9161072ff174018fdd"; - sha256 = "sha256-aa8KZ7/1TXcBqaV/TYOZ8rpusOf5QeQ9i2Upnncbziw="; - } - + "/themes/${subdir}/catppuccin_${cfg.flavour}.toml")); + themes."catppuccin-${cfg.flavour}" = builtins.fromTOML + "${inputs.helix}/themes/${subdir}/catppuccin_${cfg.flavour}.toml"; }; } diff --git a/modules/home-manager/lazygit.nix b/modules/home-manager/lazygit.nix index 300a2d6a..640faef8 100644 --- a/modules/home-manager/lazygit.nix +++ b/modules/home-manager/lazygit.nix @@ -1,6 +1,7 @@ { config , pkgs , lib +, inputs , ... }: let @@ -13,15 +14,7 @@ in config.programs.lazygit.settings = let - file = - pkgs.fetchFromGitHub - { - owner = "catppuccin"; - repo = "lazygit"; - rev = "f01edfd57fa2aa7cd69a92537a613bb3c91e65dd"; - sha256 = "sha256-zjzDtXcGtUon4QbrZnlAPzngEyH56yy8TCyFv0rIbOA="; - } - + "/themes/${cfg.flavour}.yml"; + file = "${inputs.lazygit}/themes/${cfg.flavour}.yml"; in lib.mkIf enable (lib.ctp.fromYaml pkgs file); } diff --git a/modules/home-manager/polybar.nix b/modules/home-manager/polybar.nix index 5669de46..9cb0bcc4 100644 --- a/modules/home-manager/polybar.nix +++ b/modules/home-manager/polybar.nix @@ -1,6 +1,6 @@ { config -, pkgs , lib +, inputs , ... }: let @@ -11,12 +11,6 @@ in options.services.polybar.catppuccin = lib.ctp.mkCatppuccinOpt "polybar" config; - config.services.polybar.extraConfig = lib.mkIf enable (builtins.readFile (pkgs.fetchFromGitHub - { - owner = "catppuccin"; - repo = "polybar"; - rev = "9ee66f83335404186ce979bac32fcf3cd047396a"; - sha256 = "sha256-bUbSgMg/sa2faeEUZo80GNmhOX3wn2jLzfA9neF8ERA="; - } - + "/themes/${cfg.flavour}.ini")); + config.services.polybar.extraConfig = lib.mkIf enable + (builtins.readFile "${inputs.polybar}/themes/${cfg.flavour}.ini"); } diff --git a/modules/home-manager/starship.nix b/modules/home-manager/starship.nix index 960ceb76..9741a8e1 100644 --- a/modules/home-manager/starship.nix +++ b/modules/home-manager/starship.nix @@ -1,6 +1,6 @@ { config -, pkgs , lib +, inputs , ... }: let @@ -18,13 +18,5 @@ in format = lib.mkDefault "$all"; palette = "catppuccin_${cfg.flavour}"; } - // fromTOML (readFile - (pkgs.fetchFromGitHub - { - owner = "catppuccin"; - repo = "starship"; - rev = "3e3e54410c3189053f4da7a7043261361a1ed1bc"; - sha256 = "sha256-soEBVlq3ULeiZFAdQYMRFuswIIhI9bclIU8WXjxd7oY="; - } - + "/palettes/${cfg.flavour}.toml"))); + // fromTOML (readFile "${inputs.starship}/palettes/${cfg.flavour}.toml")); } diff --git a/modules/home-manager/sway.nix b/modules/home-manager/sway.nix index 0281bc0a..1a599cae 100644 --- a/modules/home-manager/sway.nix +++ b/modules/home-manager/sway.nix @@ -1,20 +1,12 @@ { config -, pkgs , lib +, inputs , ... }: let cfg = config.wayland.windowManager.sway.catppuccin; enable = cfg.enable && config.wayland.windowManager.sway.enable; - theme = - pkgs.fetchFromGitHub - { - owner = "catppuccin"; - repo = "sway"; - rev = "c89098fc3517b64f0422aaaccb98dcab6ae9348f"; - sha256 = "sha256-6Cvsmdl3OILz1vZovyBIuuSpm207I3W0dmUGowR9Ugk="; - } - + "/themes/catppuccin-${cfg.flavour}"; + theme = "${inputs.sway}/themes/catppuccin-${cfg.flavour}"; in { options.wayland.windowManager.sway.catppuccin = diff --git a/modules/home-manager/tmux.nix b/modules/home-manager/tmux.nix index a7377b9c..02f68d4b 100644 --- a/modules/home-manager/tmux.nix +++ b/modules/home-manager/tmux.nix @@ -7,14 +7,15 @@ let cfg = config.programs.tmux.catppuccin; enable = cfg.enable && config.programs.tmux.enable; - plugin = with builtins; - with pkgs; let + plugin = + let rev = "4e48b09a76829edc7b55fbb15467cf0411f07931"; in - tmuxPlugins.mkTmuxPlugin { + # TODO @getchoo: upstream this in nixpkgs + pkgs.tmuxPlugins.mkTmuxPlugin { pluginName = "catppuccin"; - version = substring 0 7 rev; - src = fetchFromGitHub { + version = builtins.substring 0 7 rev; + src = pkgs.fetchFromGitHub { owner = "catppuccin"; repo = "tmux"; inherit rev; diff --git a/modules/lib/default.nix b/modules/lib/default.nix index 9b38c22d..72c213c2 100644 --- a/modules/lib/default.nix +++ b/modules/lib/default.nix @@ -68,9 +68,9 @@ in # a -> a -> [path] -> [path] # this imports a list of paths while inheriting # multiple attributes - mapModules = config: pkgs: extendedLib: + mapModules = config: pkgs: extendedLib: inputs: map (m: (import m { - inherit config pkgs; + inherit config pkgs inputs; lib = extendedLib; })); diff --git a/modules/nixos/default.nix b/modules/nixos/default.nix index 0d4ff6a7..c5de46e1 100644 --- a/modules/nixos/default.nix +++ b/modules/nixos/default.nix @@ -1,6 +1,6 @@ -nixpkgs: { config, pkgs, lib, ... }: +inputs: { config, pkgs, lib, ... }: let - extendedLib = import ../lib/mkExtLib.nix nixpkgs.lib; + extendedLib = import ../lib/mkExtLib.nix inputs.nixpkgs.lib; in { imports = @@ -9,7 +9,7 @@ in ./grub.nix ]; in - extendedLib.ctp.mapModules config pkgs extendedLib files; + extendedLib.ctp.mapModules config pkgs extendedLib inputs files; options.catppuccin = with extendedLib; { diff --git a/modules/nixos/grub.nix b/modules/nixos/grub.nix index 6174404d..0d998223 100644 --- a/modules/nixos/grub.nix +++ b/modules/nixos/grub.nix @@ -1,23 +1,17 @@ { config , pkgs , lib +, inputs , ... }: let cfg = config.boot.loader.grub.catppuccin; enable = cfg.enable && config.boot.loader.grub.enable; - theme = with pkgs; let - src = fetchFromGitHub { - owner = "catppuccin"; - repo = "grub"; - rev = "803c5df0e83aba61668777bb96d90ab8f6847106"; - sha256 = "sha256-/bSolCta8GCZ4lP0u5NVqYQ9Y3ZooYCNdTwORNvR7M0="; - }; - in - runCommand "catppuccin-grub-theme" { } '' + # TODO @getchoo: upstream this in nixpkgs maybe? idk if they have grub themes + theme = pkgs.runCommand "catppuccin-grub-theme" { } '' mkdir -p "$out" - cp -r ${src}/src/catppuccin-${cfg.flavour}-grub-theme/* "$out"/ + cp -r ${inputs.grub}/src/catppuccin-${cfg.flavour}-grub-theme/* "$out"/ ''; in { diff --git a/outputs.nix b/outputs.nix new file mode 100644 index 00000000..137f1a52 --- /dev/null +++ b/outputs.nix @@ -0,0 +1,56 @@ +{ self, nixpkgs, ... }@inputs: +let + systems = [ + "x86_64-linux" + "aarch64-linux" + "x86_64-darwin" + "aarch64-darwin" + ]; + + inherit (nixpkgs) lib; + + forAllSystems = fn: lib.genAttrs systems (s: fn nixpkgsFor.${s}); + nixpkgsFor = lib.genAttrs systems (system: import nixpkgs { inherit system; }); +in +{ + formatter = forAllSystems (pkgs: pkgs.nixpkgs-fmt); + + homeManagerModules.catppuccin = import ./modules/home-manager inputs; + + nixosModules.catppuccin = import ./modules/nixos inputs; + + packages = forAllSystems (pkgs: + let + mkEval = module: lib.evalModules { + modules = [ + module + { + _module = { + check = false; + args.lib = import ./modules/lib/mkExtLib.nix lib; + }; + } + ]; + }; + + mkDoc = name: options: + let + doc = pkgs.nixosOptionsDoc { + options = lib.filterAttrs (n: _: n != "_module") options; + documentType = "none"; + revision = if self ? rev then builtins.substring 0 7 self.rev else "dirty"; + }; + in + pkgs.runCommand "${name}-module-doc.md" { } '' + cat ${doc.optionsCommonMark} > $out + ''; + + hmEval = mkEval self.homeManagerModules.catppuccin; + nixosEval = mkEval self.nixosModules.catppuccin; + in + rec { + nixos-doc = mkDoc "nixos" nixosEval.options; + home-manager-doc = mkDoc "home-manager" hmEval.options; + default = home-manager-doc; + }); +}