nixos-config/flake.nix

96 lines
2.5 KiB
Nix

{
inputs = {
# General inputs
stable.url = "nixpkgs/nixos-24.11";
unstable.url = "nixpkgs/nixos-unstable";
# System inputs
disko = {
url = "github:nix-community/disko";
inputs.nixpkgs.follows = "stable";
};
impermanence.url = "github:nix-community/impermanence";
lanzaboote = {
url = "github:nix-community/lanzaboote/v0.4.1";
inputs.nixpkgs.follows = "stable";
};
# Service inputs
mailserver = {
url = "gitlab:simple-nixos-mailserver/nixos-mailserver/nixos-24.11";
inputs.nixpkgs.follows = "stable";
};
minecraft.url = "github:Infinidoge/nix-minecraft";
# Android inputs
avf.url = "https://github.com/nix-community/nixos-avf/releases/download/nixos-24.11/avf-channel-24.11-aarch64.tar.xz";
avf-channel.url = "https://github.com/nix-community/nixos-avf/releases/download/nixos-24.11/nixos-channel-24.11-aarch64.tar.xz";
# Home inputs
hm = {
url = "github:nix-community/home-manager/release-24.11";
inputs.nixpkgs.follows = "stable";
};
nur = {
url = "github:nix-community/NUR";
inputs.nixpkgs.follows = "unstable";
};
blender.url = "https://flakehub.com/f/edolstra/blender-bin/1.0.13.tar.gz";
};
outputs = {
stable,
unstable,
disko,
impermanence,
lanzaboote,
mailserver,
minecraft,
avf,
avf-channel,
hm,
nur,
blender,
...
}@inputs:
let
mkNix = modules: channel: channel.lib.nixosSystem {
inherit modules;
specialArgs = inputs;
};
mkHome = modules: pkgs: hm.lib.homeManagerConfiguration {
inherit modules pkgs;
extraSpecialArgs = inputs;
};
in {
# nh os switch /path --hostname=host
nixosConfigurations = {
tower = mkNix [ ./hosts/tower ] stable; # Main Desktop
envy = mkNix [ ./hosts/envy ] stable; # HP Convertable
intuos = mkNix [ ./hosts/intuos ] unstable; # Wacom Intuos Tablet
redmond = mkNix [ ./hosts/redmond ] stable; # Lenovo Dual-Boot
droid = mkNix [ ./hosts/droid ] avf-channel; # Android Virtualization Framework
midas = mkNix [ ./hosts/midas ] stable; # Dell Optiplex 5040
kitty = mkNix [ ./hosts/kitty ] stable; # Dell Optiplex 7010
prophet = mkNix [ ./hosts/prophet ] stable; # Oracle Neoverse-N1
};
# nh home switch /path -c arch
homeConfigurations = {
x86 = mkHome [ ./modules/home ] stable.legacyPackages.x86_64-linux;
aarch = mkHome [ ./modules/home ] stable.legacyPackages.aarch64-linux;
};
};
}