{ self, nixos-generators, defaultSpecialArgs, defaultModules, pkgs, sysLib, nixVim, system, shell_library, ... }: let inherit (pkgs) lib; inherit (import ./merge.nix {inherit lib;}) merge; output = import ../../bootstrap {inherit pkgs sysLib;}; args = { inherit pkgs; inherit (pkgs) lib; }; nvim = builtins.mapAttrs ( name: value: let nvim_config = import ../../hm/soispha/conf/nvim/default.nix args; build_args = args // { nixosConfig = value.config; config = value.config.home-manager.users.soispha; }; resolve_imports = attrs: merge (builtins.map (v: import v build_args) attrs.imports); resolve_imports' = attrs: if builtins.any (n: n == "imports") (builtins.attrNames attrs) then resolve_imports' (merge [ (resolve_imports attrs) (builtins.removeAttrs attrs ["imports"]) ]) else attrs; complete_config = resolve_imports' nvim_config; in nixVim.legacyPackages."${system}".makeNixvim ( builtins.removeAttrs complete_config.programs.nixvim ["enable"] ) ) self.nixosConfigurations; output_neovim = lib.attrsets.mapAttrs' (name: value: lib.attrsets.nameValuePair "nvim_${name}" value) nvim; in { install-iso = nixos-generators.nixosGenerate { system = "x86_64-linux"; specialArgs = defaultSpecialArgs; modules = [ ../../hosts/marduk ]; format = "install-iso"; }; update_shell_lib = shell_library.packages."${system}".update_shell_library; # gpg-iso = nixos-generators.nixosGenerate { # system = "x86_64-linux"; # specialArgs = defaultSpecialArgs; # modules = # [ # ../../hosts/isimud # ] # ++ defaultModules; # format = "iso"; # }; nvim = nvim.tiamat; } // output // output_neovim