flake.nix (view raw)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 |
{
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
nixos-hardware.url = "github:NixOS/nixos-hardware/master";
home-manager = {
url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs";
};
};
outputs =
{ nixpkgs, home-manager, ... }@inputs:
let
supportedSystems = nixpkgs.lib.systems.flakeExposed;
forAllSystems = nixpkgs.lib.genAttrs supportedSystems;
mkNixosSystem =
hostname: system:
nixpkgs.lib.nixosSystem {
inherit system;
specialArgs = {
inherit inputs hostname;
inputs' = builtins.mapAttrs (_: flake: {
legacyPackages = flake.legacyPackages.${system} or { };
packages = flake.packages.${system} or { };
}) inputs;
};
modules = [
./hosts/common
./hosts/${hostname}
];
};
in
{
formatter = forAllSystems (
system:
let
pkgs = nixpkgs.legacyPackages.${system};
in
pkgs.nixfmt
);
nixosConfigurations = {
dahlia = mkNixosSystem "dahlia" "x86_64-linux";
# ivy = mkNixosSystem "ivy" "x86_64-linux";
};
homeConfigurations = {
"willow@dahlia" = home-manager.lib.homeManagerConfiguration {
pkgs = nixpkgs.legacyPackages."x86_64-linux";
extraSpecialArgs = {
inherit inputs;
hostname = "dahlia";
};
modules = [ ./home/apr-dahlia.nix ];
};
# "willow@ivy" = home-manager.lib.homeManagerConfiguration {
# pkgs = nixpkgs.legacyPackages."x86_64-linux";
# extraSpecialArgs = {
# inherit inputs;
# hostname = "ivy";
# };
# modules = [ "./home/willow@ivy.nix" ];
# };
};
};
}
|