dot.nix/flake.nix

141 lines
3.5 KiB
Nix

{
description = "Unstable Flake";
inputs = {
nixpkgs.url = "nixpkgs/nixos-unstable";
home-manager = {
url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs";
};
};
outputs = { self, nixpkgs, home-manager, ... }: let
ARM = "aarch64-linux"; # ARM systems
X86 = "x86_64-linux"; # x86_64 systems
lib = nixpkgs.lib;
in {
nixosConfigurations = {
caenus = let
hostName = "caenus";
default = ./. + "/host/${hostName}";
in lib.nixosSystem {
specialArgs = { inherit hostName; };
system = ARM;
modules = [
./nix
default
];
};
cloud = let
hostName = "cloud";
default = ./. + "/host/${hostName}";
in lib.nixosSystem {
specialArgs = { inherit hostName; };
system = X86;
modules = [
./nix
default
];
};
komodo = let
hostName = "komodo";
default = ./. + "/host/${hostName}";
in lib.nixosSystem {
specialArgs = { inherit hostName; };
system = X86;
modules = [
./nix
default
];
};
nix = let
hostName = "nix";
default = ./. + "/host/${hostName}";
in lib.nixosSystem {
specialArgs = { inherit hostName; };
system = X86;
modules = [
./nix
default
];
};
proxy = let
hostName = "proxy";
default = ./. + "/host/${hostName}";
in lib.nixosSystem {
specialArgs = { inherit hostName; };
system = X86;
modules = [
./nix
default
];
};
};
homeConfigurations = let
armPkgs = import nixpkgs {
system = ARM;
config.allowUnfree = true;
};
x86Pkgs = import nixpkgs {
system = X86;
config.allowUnfree = true;
# overlays = [ (import ./nixos/overlays) ];
};
in {
"toph@caenus" = let
hostName = "caenus";
pkgs = armPkgs;
home = ./. + "/host/${hostName}/home";
in home-manager.lib.homeManagerConfiguration {
inherit pkgs;
extraSpecialArgs = { inherit hostName; };
modules = [ home ];
};
"toph@cloud" = let
hostName = "cloud";
pkgs = x86Pkgs;
home = ./. + "/host/${hostName}/home";
in home-manager.lib.homeManagerConfiguration {
inherit pkgs;
extraSpecialArgs = { inherit hostName; };
modules = [ home ];
};
"toph@komodo" = let
hostName = "komodo";
pkgs = x86Pkgs;
home = ./. + "/host/${hostName}/home";
in home-manager.lib.homeManagerConfiguration {
inherit pkgs;
extraSpecialArgs = { inherit hostName; };
modules = [ home ];
};
"toph@nix" = let
hostName = "nix";
pkgs = x86Pkgs;
home = ./. + "/host/${hostName}/home";
in home-manager.lib.homeManagerConfiguration {
inherit pkgs;
extraSpecialArgs = { inherit hostName; };
modules = [ home ];
};
"toph@proxy" = let
hostName = "proxy";
pkgs = x86Pkgs;
home = ./. + "/host/${hostName}/home";
in home-manager.lib.homeManagerConfiguration {
inherit pkgs;
extraSpecialArgs = { inherit hostName; };
modules = [ home ];
};
};
};
}