123 lines
3.2 KiB
Nix
123 lines
3.2 KiB
Nix
{
|
|
inputs,
|
|
config,
|
|
...
|
|
}: let
|
|
home-manager = inputs.home-manager;
|
|
sops-nix = inputs.sops-nix;
|
|
nix-syncthing = inputs.nix-syncthing;
|
|
disko = inputs.disko;
|
|
impermanence = inputs.impermanence;
|
|
|
|
common-modules = [
|
|
config.flake.commonModules.pkgs
|
|
config.flake.commonModules.overlays
|
|
];
|
|
|
|
home-manager-modules =
|
|
common-modules
|
|
++ [
|
|
sops-nix.homeManagerModules.sops
|
|
../legacy-modules/home-manager-modules
|
|
];
|
|
|
|
home-manager-base = _: {
|
|
home-manager.useUserPackages = true;
|
|
home-manager.backupFileExtension = "backup";
|
|
home-manager.extraSpecialArgs = {
|
|
inherit inputs;
|
|
};
|
|
home-manager.sharedModules = home-manager-modules;
|
|
};
|
|
|
|
system-modules =
|
|
common-modules
|
|
++ [
|
|
home-manager-base
|
|
../legacy-modules/system-modules
|
|
];
|
|
in {
|
|
systems = ["x86_64-linux" "aarch64-linux" "x86_64-darwin" "aarch64-darwin"];
|
|
|
|
flake.homeModules.homeModules = {imports = home-manager-modules;};
|
|
|
|
flake.nixosModules.nixosModules = {
|
|
imports =
|
|
system-modules
|
|
++ [
|
|
sops-nix.nixosModules.sops
|
|
nix-syncthing.nixosModules.syncthing
|
|
impermanence.nixosModules.impermanence
|
|
home-manager.nixosModules.home-manager
|
|
disko.nixosModules.disko
|
|
# lix-module.nixosModules.default
|
|
config.flake.nixosModules.nixos-modules-all
|
|
({
|
|
lib,
|
|
config,
|
|
...
|
|
}: {
|
|
home-manager.users = {
|
|
leyla = lib.mkIf config.host.users.leyla.isNormalUser inputs.self.homeModules.leylaConfiguration;
|
|
eve = lib.mkIf config.host.users.eve.isNormalUser inputs.self.homeModules.eveConfiguration;
|
|
git = lib.mkIf (config.services.forgejo.enable or false) inputs.self.homeModules.gitConfiguration;
|
|
};
|
|
})
|
|
];
|
|
};
|
|
|
|
flake.darwinModules.darwinModules = {
|
|
imports =
|
|
system-modules
|
|
++ [
|
|
sops-nix.darwinModules.sops
|
|
home-manager.darwinModules.home-manager
|
|
../legacy-modules/darwin-modules
|
|
({
|
|
lib,
|
|
config,
|
|
...
|
|
}: {
|
|
home-manager.users = {
|
|
leyla = lib.mkIf config.host.users.leyla.isNormalUser inputs.self.homeModules.leylaConfiguration;
|
|
eve = lib.mkIf config.host.users.eve.isNormalUser inputs.self.homeModules.eveConfiguration;
|
|
};
|
|
})
|
|
];
|
|
};
|
|
|
|
perSystem = {
|
|
pkgs,
|
|
system,
|
|
...
|
|
}: {
|
|
formatter = pkgs.alejandra;
|
|
|
|
devShells.default = pkgs.mkShell {
|
|
packages = with pkgs; [
|
|
# for version controlling this repo
|
|
git
|
|
# for formatting code in this repo
|
|
alejandra
|
|
# for editing secrets in the secrets repo
|
|
sops
|
|
# for viewing configuration options defined in this repo
|
|
nix-inspect
|
|
# for installing flakes from this repo onto other systems
|
|
nixos-anywhere
|
|
# for updating disko configurations
|
|
pkgs.disko
|
|
# for viewing dconf entries
|
|
dconf-editor
|
|
# for MCP NixOS server support in development
|
|
inputs.mcp-nixos.packages.${system}.default
|
|
];
|
|
|
|
SOPS_AGE_KEY_DIRECTORY = import ../const/sops_age_key_directory.nix;
|
|
|
|
shellHook = ''
|
|
git config core.hooksPath .hooks
|
|
'';
|
|
};
|
|
};
|
|
}
|