90 lines
2.4 KiB
Nix
Executable file
90 lines
2.4 KiB
Nix
Executable file
{
|
|
description = "Personal system configurations";
|
|
|
|
inputs = {
|
|
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
|
|
|
flake-parts.url = "github:hercules-ci/flake-parts";
|
|
|
|
impermanence.url = "github:nix-community/impermanence";
|
|
|
|
home-manager = {
|
|
url = "github:nix-community/home-manager";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
|
|
disko = {
|
|
url = "github:nix-community/disko";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
|
|
sops-nix = {
|
|
url = "github:Mic92/sops-nix";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
};
|
|
|
|
outputs = { self, flake-parts, ... } @ inputs: let
|
|
inherit (self) outputs;
|
|
in
|
|
flake-parts.lib.mkFlake { inherit inputs; } {
|
|
imports = [
|
|
inputs.home-manager.flakeModules.home-manager
|
|
];
|
|
|
|
# Systems the "perSystem" option will target.
|
|
systems = [
|
|
"x86_64-linux"
|
|
"x86_64-darwin"
|
|
"aarch64-linux"
|
|
"aarch64-darwin"
|
|
"i686-linux"
|
|
];
|
|
|
|
# Outputs for each above defined system.
|
|
perSystem = { pkgs, ... }: {
|
|
devShells.default = pkgs.mkShell {
|
|
packages = with pkgs; [
|
|
just
|
|
];
|
|
};
|
|
};
|
|
|
|
# Flake configuration attributes.
|
|
flake = {
|
|
# Reusable nixos modules one might want to export.
|
|
# Usually bundled pre-configured configuration toggles for my systems.
|
|
nixosModules = import ./modules/nixos;
|
|
# Reusable home-manager modules one might want to export.
|
|
# Usually bundled pre-configured configuration toggles for my homes.
|
|
homeManagerModules = import ./modules/home-manager;
|
|
|
|
nixosConfigurations = {
|
|
makise = inputs.nixpkgs.lib.nixosSystem {
|
|
specialArgs = { inherit inputs outputs; };
|
|
modules = [
|
|
./hosts/makise/system/system.nix
|
|
];
|
|
};
|
|
};
|
|
|
|
homeConfigurations = {
|
|
"kurisu@makise" = inputs.home-manager.lib.homeManagerConfiguration {
|
|
pkgs = inputs.nixpkgs.legacyPackages.x86_64-linux;
|
|
extraSpecialArgs = { inherit inputs outputs; };
|
|
modules = [
|
|
./hosts/makise/homes/kurisu/home.nix
|
|
];
|
|
};
|
|
|
|
"admin@makise" = inputs.home-manager.lib.homeManagerConfiguration {
|
|
pkgs = inputs.nixpkgs.legacyPackages.x86_64-linux;
|
|
extraSpecialArgs = { inherit inputs outputs; };
|
|
modules = [
|
|
./hosts/makise/homes/admin/default.nix
|
|
];
|
|
};
|
|
};
|
|
};
|
|
};
|
|
}
|