feat(nixos): consolidate hosts into a shared flake

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
This commit is contained in:
clw committed 2026-10-06 15:58:10 +01:00
commit 28e8bc938a
16 files changed
+922

No files matched your search

+45
View File
@@ -0,0 +1,45 @@
{
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
];
};
};
};
}