flake.nix: move main flake into config block

grrr why do people always insist on dumping options into the main block
of the module
This commit is contained in:
NullBite 2025-02-07 02:01:20 +00:00
parent 41be6a0642
commit c7d841b3e8
3 changed files with 168 additions and 142 deletions

302
flake.nix
View File

@ -1,3 +1,4 @@
# vim: set foldmethod=marker:
{ {
description = "NixOS Configuration"; description = "NixOS Configuration";
@ -109,11 +110,15 @@
flake-parts, flake-parts,
... ...
} @ inputs: } @ inputs:
flake-parts.lib.mkFlake {inherit inputs;} ({ flake-parts.lib.mkFlake {inherit inputs;} (
{
inputs, inputs,
self, self,
config,
lib,
... ...
} @ flakeArgs: let } @ flakeArgs: let
# {{{
inherit (inputs) nixpkgs nixpkgs-unstable; inherit (inputs) nixpkgs nixpkgs-unstable;
inherit (self) outputs; inherit (self) outputs;
# inputs is already defined # inputs is already defined
@ -400,163 +405,176 @@
} }
// builtins.removeAttrs args // builtins.removeAttrs args
["system" "nixpkgs" "home-manager" "modules" "username" "homeDirectory" "stateVersion" "entrypoint" "config"]); ["system" "nixpkgs" "home-manager" "modules" "username" "homeDirectory" "stateVersion" "entrypoint" "config"]);
# }}}
in { in {
flake = { # flake-parts imports
# for repl debugging via :lf . imports = [
inherit inputs vars; ./flake
];
devShells = eachSystem (system: let config = {
pkgs = import nixpkgs-unstable {inherit system;}; # flake-parts systems (still uses nix-systems)
in { systems = import inputs.systems;
ci = pkgs.mkShell {
buildInputs = with pkgs; [
nix-update
nix-fast-build
];
};
default = pkgs.mkShell {
buildInputs = with pkgs; [
nix-update
inputs.agenix.packages.${system}.default
];
};
});
# nix flake modules are meant to be portable so we cannot rely on debug = lib.mkDefault true;
# (extraS|s)pecialArgs to pass variables
nixosModules = (import ./modules/nixos) moduleInputs; flake = {
homeManagerModules = (import ./modules/home-manager) moduleInputs; # for repl debugging via :lf .
packages = eachSystem ( inherit inputs vars;
system: let
devShells = eachSystem (system: let
pkgs = import nixpkgs-unstable {inherit system;}; pkgs = import nixpkgs-unstable {inherit system;};
in in {
( ci = pkgs.mkShell {
import ./pkgs {inherit pkgs;} buildInputs = with pkgs; [
) nix-update
// { nix-fast-build
iso = let ];
isoSystem = mkISOSystem system; };
in default = pkgs.mkShell {
isoSystem.config.system.build.isoImage; buildInputs = with pkgs; [
} nix-update
); inputs.agenix.packages.${system}.default
apps = eachSystem (system: ];
import ./pkgs/apps.nix };
{
inherit (self.outputs) packages;
inherit system;
}); });
overlays = import ./overlays self; # nix flake modules are meant to be portable so we cannot rely on
# (extraS|s)pecialArgs to pass variables
nixosConfigurations = { nixosModules = (import ./modules/nixos) moduleInputs;
iso = mkISOSystem "x86_64-linux"; homeManagerModules = (import ./modules/home-manager) moduleInputs;
slab = mkSystem { packages = eachSystem (
nixpkgs = inputs.nixpkgs-unstable; system: let
home-manager = inputs.home-manager-unstable; pkgs = import nixpkgs-unstable {inherit system;};
system = "x86_64-linux"; in
hostname = "slab"; (
stateVersion = "23.11"; import ./pkgs {inherit pkgs;}
}; )
// {
nullbox = mkSystem { iso = let
nixpkgs = inputs.nixpkgs-unstable; isoSystem = mkISOSystem system;
home-manager = inputs.home-manager-unstable; in
system = "x86_64-linux"; isoSystem.config.system.build.isoImage;
hostname = "nullbox";
stateVersion = "23.11";
};
nixos-wsl = mkWSLSystem {
nixpkgs = inputs.nixpkgs-unstable;
home-manager = inputs.home-manager-unstable;
system = "x86_64-linux";
stateVersion = "23.11";
hostname = "nixos-wsl";
};
# for eval testing
rpi4-x86_64 = mkSystem {
nixpkgs = inputs.nixpkgs-unstable;
home-manager = inputs.home-manager-unstable;
system = "x86_64-linux";
stateVersion = "24.11";
hostname = "rpi4";
extraModules = [
{
nixpkgs.hostPlatform = "x86_64-linux";
} }
]; );
}; apps = eachSystem (system:
import ./pkgs/apps.nix
{
inherit (self.outputs) packages;
inherit system;
});
rpi4 = mkSystem { overlays = import ./overlays self;
nixpkgs = inputs.nixpkgs-unstable;
home-manager = inputs.home-manager-unstable;
system = "aarch64-linux";
stateVersion = "24.11";
hostname = "rpi4";
};
}; # end nixosConfigurations
homeConfigurations = { nixosConfigurations = {
# minimal root config iso = mkISOSystem "x86_64-linux";
"root@rpi4" = mkHome { slab = mkSystem {
system = "aarch64-linux"; nixpkgs = inputs.nixpkgs-unstable;
stateVersion = "23.11"; home-manager = inputs.home-manager-unstable;
username = "root"; system = "x86_64-linux";
homeDirectory = "/root"; hostname = "slab";
config = {pkgs, ...}: { stateVersion = "23.11";
programs.bash.enable = true;
# update nix system-wide since it's installed via root profile
home.packages = with pkgs; [btdu nix];
}; };
nixpkgs = inputs.nixpkgs-unstable;
home-manager = inputs.home-manager-unstable;
};
"nullbite@rpi4" = mkHome { nullbox = mkSystem {
system = "aarch64-linux"; nixpkgs = inputs.nixpkgs-unstable;
stateVersion = "23.11"; home-manager = inputs.home-manager-unstable;
config = {pkgs, ...}: { system = "x86_64-linux";
programs = { hostname = "nullbox";
zsh.enable = false; stateVersion = "23.11";
keychain.enable = false; };
nixos-wsl = mkWSLSystem {
nixpkgs = inputs.nixpkgs-unstable;
home-manager = inputs.home-manager-unstable;
system = "x86_64-linux";
stateVersion = "23.11";
hostname = "nixos-wsl";
};
# for eval testing
rpi4-x86_64 = mkSystem {
nixpkgs = inputs.nixpkgs-unstable;
home-manager = inputs.home-manager-unstable;
system = "x86_64-linux";
stateVersion = "24.11";
hostname = "rpi4";
extraModules = [
{
nixpkgs.hostPlatform = "x86_64-linux";
}
];
};
rpi4 = mkSystem {
nixpkgs = inputs.nixpkgs-unstable;
home-manager = inputs.home-manager-unstable;
system = "aarch64-linux";
stateVersion = "24.11";
hostname = "rpi4";
};
}; # end nixosConfigurations
homeConfigurations = {
# minimal root config
"root@rpi4" = mkHome {
system = "aarch64-linux";
stateVersion = "23.11";
username = "root";
homeDirectory = "/root";
config = {pkgs, ...}: {
programs.bash.enable = true;
# update nix system-wide since it's installed via root profile
home.packages = with pkgs; [btdu nix];
}; };
home.packages = with pkgs; [btdu]; nixpkgs = inputs.nixpkgs-unstable;
home-manager = inputs.home-manager-unstable;
};
"nullbite@rpi4" = mkHome {
system = "aarch64-linux";
stateVersion = "23.11";
config = {pkgs, ...}: {
programs = {
zsh.enable = false;
keychain.enable = false;
};
home.packages = with pkgs; [btdu];
};
nixpkgs = inputs.nixpkgs-unstable;
home-manager = inputs.home-manager-unstable;
};
"deck" = mkHome {
system = "x86_64-linux";
stateVersion = "23.11";
username = "deck";
modules = [./users/deck/home.nix];
nixpkgs = inputs.nixpkgs-unstable;
home-manager = inputs.home-manager-unstable;
};
"testuser" = mkHome {
username = "testuser";
system = "x86_64-linux";
modules = [./users/testuser/home.nix];
stateVersion = "23.11";
nixpkgs = inputs.nixpkgs-unstable;
home-manager = inputs.home-manager-unstable;
};
"nix-on-droid" = mkHome {
username = "nix-on-droid";
homeDirectory = "/data/data/com.termux.nix/files/home";
modules = [./users/nix-on-droid/home.nix];
system = "aarch64-linux";
stateVersion = "23.11";
nixpkgs = inputs.nixpkgs-unstable;
home-manager = inputs.home-manager-unstable;
}; };
nixpkgs = inputs.nixpkgs-unstable;
home-manager = inputs.home-manager-unstable;
};
"deck" = mkHome {
system = "x86_64-linux";
stateVersion = "23.11";
username = "deck";
modules = [./users/deck/home.nix];
nixpkgs = inputs.nixpkgs-unstable;
home-manager = inputs.home-manager-unstable;
};
"testuser" = mkHome {
username = "testuser";
system = "x86_64-linux";
modules = [./users/testuser/home.nix];
stateVersion = "23.11";
nixpkgs = inputs.nixpkgs-unstable;
home-manager = inputs.home-manager-unstable;
};
"nix-on-droid" = mkHome {
username = "nix-on-droid";
homeDirectory = "/data/data/com.termux.nix/files/home";
modules = [./users/nix-on-droid/home.nix];
system = "aarch64-linux";
stateVersion = "23.11";
nixpkgs = inputs.nixpkgs-unstable;
home-manager = inputs.home-manager-unstable;
}; };
}; };
}; };
systems = (import inputs.systems); }
}); # end outputs ); # end outputs
} }
# end flake # end flake

6
flake/default.nix Normal file
View File

@ -0,0 +1,6 @@
{ ... }:
{
imports = [
./packages.nix
];
}

2
flake/packages.nix Normal file
View File

@ -0,0 +1,2 @@
{ ... }: {
}