{ # core self, pkgs, system, sysLib, nixpkgs, # modules home-manager, nixos-generators, impermanence, agenix, ragenix, serverphone, disko, # external dependencies neovim_config, user_js, snap-sync, templates, # my binaries video_pause, strip_js_comments, generate_firefox_extensions, shell_library, river_init_lesser, yambar_memory, yambar_cpu, grades, flake_update, }: let homeManagerConfig = { home-manager = { useGlobalPkgs = true; useUserPackages = true; users.soispha = import ../home-manager; extraSpecialArgs = { inherit pkgs sysLib # extra information system # bins video_pause yambar_cpu yambar_memory strip_js_comments river_init_lesser grades shell_library flake_update # external deps user_js neovim_config snap-sync # modules impermanence ; }; }; }; ageConfig = import ../secrets; impermanenceConfig = import ../system/impermanence; defaultModules = [ agenix.nixosModules.default ageConfig serverphone.nixosModules.default disko.nixosModules.default home-manager.nixosModules.home-manager homeManagerConfig impermanence.nixosModules.impermanence impermanenceConfig ]; defaultSpecialArgs = { nixpkgs-as-input = nixpkgs; inherit templates sysLib serverphone system; }; in { nixosConfigurations = import ./nixosConfigurations { inherit system pkgs nixpkgs sysLib # configs defaultModules defaultSpecialArgs # bins video_pause yambar_cpu yambar_memory strip_js_comments river_init_lesser grades shell_library flake_update # external deps user_js neovim_config snap-sync templates # modules impermanence home-manager agenix serverphone disko ; }; packages."${system}" = import ./packages { inherit nixos-generators defaultSpecialArgs pkgs sysLib; inherit (pkgs) lib; }; apps."${system}" = import ./apps {inherit self system;}; devShells."${system}" = { default = pkgs.mkShell { packages = with pkgs; [ alejandra cocogitto generate_firefox_extensions.packages."${system}".default # needed for the firefox extension update script git-bug ltex-ls nil ragenix.packages."${system}".default shellcheck shfmt statix yamllint ]; }; }; }