{
# core
self,
pkgs,
system,
sysLib,
nixpkgs,
# modules
home-manager,
nixos-generators,
impermanence,
agenix,
ragenix,
# external dependencies
neovim_config,
user_js,
snap-sync,
templates,
# my binaries
video_pause,
strip_js_comments,
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
home-manager.nixosModules.home-manager
homeManagerConfig
impermanence.nixosModules.impermanence
impermanenceConfig
];
defaultSpecialArgs = {
nixpkgs-as-input = nixpkgs;
inherit templates sysLib;
};
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
;
};
packages."${system}" = import ./packages {inherit nixos-generators defaultSpecialArgs pkgs sysLib;};
apps."${system}" = import ./apps {inherit self system;};
devShells."${system}" = {
default = pkgs.mkShell {
packages = with pkgs; [
nil
alejandra
statix
ragenix.packages."${system}".default
shellcheck
ltex-ls
yamllint
cocogitto
];
};
};
}
# vim: ts=2