Manage T450s, X1EG2 and Framework 13 from pinned NixOS inputs while retaining machine-specific storage and hardware configuration. Changes: Shared Configuration: - Extract common, KDE, desktop, development and Steam modules - Share Emacs, VS Code, htop, DevOps tools and Docker across hosts - Remove obsolete apps and global project language runtimes Framework: - Import the 11th-generation Intel hardware profile - Enable Steam and ZFS with tookland/home mounted at /home - Document manual ext4 root and ZFS installation steps - Require installer-generated hardware configuration before installation Validation: - Evaluate both ThinkPads and Framework with test hardware - Check Nix syntax, formatting and whitespace
46 lines
1.2 KiB
Nix
46 lines
1.2 KiB
Nix
{
|
|
description = "Chris's NixOS machines";
|
|
|
|
inputs = {
|
|
nixpkgs.url = "github:NixOS/nixpkgs/nixos-26.05";
|
|
# Only the existing hosts use this for apps previously taken from unstable.
|
|
nixpkgs-unstable.url = "github:NixOS/nixpkgs/nixos-unstable";
|
|
nixos-hardware = {
|
|
url = "github:NixOS/nixos-hardware";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
};
|
|
|
|
outputs =
|
|
{
|
|
nixpkgs,
|
|
nixpkgs-unstable,
|
|
nixos-hardware,
|
|
...
|
|
}:
|
|
{
|
|
nixosConfigurations = {
|
|
t450s = nixpkgs.lib.nixosSystem {
|
|
specialArgs.unstable = import nixpkgs-unstable {
|
|
system = "x86_64-linux";
|
|
config.allowUnfree = true;
|
|
};
|
|
modules = [ ./hosts/t450s/configuration.nix ];
|
|
};
|
|
x1eg2 = nixpkgs.lib.nixosSystem {
|
|
specialArgs.unstable = import nixpkgs-unstable {
|
|
system = "x86_64-linux";
|
|
config.allowUnfree = true;
|
|
};
|
|
modules = [ ./hosts/x1eg2/configuration.nix ];
|
|
};
|
|
framework = nixpkgs.lib.nixosSystem {
|
|
modules = [
|
|
nixos-hardware.nixosModules.framework-11th-gen-intel
|
|
./hosts/framework/configuration.nix
|
|
];
|
|
};
|
|
};
|
|
};
|
|
}
|