{ # core self, pkgs, system, sysLib, nixpkgs_as_input, # modules home-manager, nixNeovim, nixVim, nixos-generators, impermanence, agenix, ragenix, serverphone, disko, lanzaboote, # external dependencies neovim_config, user_js, snap-sync, templates, # my binaries video_pause, strip_js_comments, lf_rename, generate_firefox_extensions, shell_library, river_init_lesser, yambar_memory, yambar_cpu, grades, flake_update, }: let home_manager_config = import ../hm { inherit pkgs sysLib # extra information system # bins video_pause yambar_cpu yambar_memory lf_rename strip_js_comments river_init_lesser grades shell_library flake_update # external deps user_js neovim_config snap-sync # modules impermanence nixNeovim nixVim ; }; defaultModules = [ agenix.nixosModules.default disko.nixosModules.default home-manager.nixosModules.home-manager home_manager_config impermanence.nixosModules.impermanence lanzaboote.nixosModules.lanzaboote serverphone.nixosModules.default ]; defaultSpecialArgs = { inherit templates sysLib serverphone system nixpkgs_as_input; }; in { nixosConfigurations = import ./nixosConfigurations { inherit system pkgs nixpkgs_as_input # configs defaultModules defaultSpecialArgs ; }; packages."${system}" = import ./packages { inherit nixos-generators defaultSpecialArgs defaultModules pkgs sysLib system nixVim self; inherit (pkgs) lib; }; apps."${system}" = import ./apps {inherit self system;}; devShells."${system}" = { default = pkgs.mkShell { packages = with pkgs; [ # secure boot sbctl # spell-ls ltex-ls # other cocogitto git-bug # nix alejandra nil statix # lua lua-language-server # yaml yamllint # secrets ragenix.packages."${system}".default git-crypt # shell shellcheck shfmt # update generate_firefox_extensions.packages."${system}".default # needed for the firefox extension update script ]; }; }; }