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:
commit
28e8bc938a
16 files changed
+922
No files matched your search
@@ -0,0 +1,39 @@
|
||||
{ ... }:
|
||||
{
|
||||
imports = [
|
||||
./hardware-configuration.nix
|
||||
../../modules/common.nix
|
||||
../../modules/kde.nix
|
||||
../../modules/development.nix
|
||||
../../modules/gaming.nix
|
||||
];
|
||||
|
||||
nixpkgs.hostPlatform = "x86_64-linux";
|
||||
networking.hostName = "framework";
|
||||
# Stable, unique ID required by ZFS; keep it unchanged after pool creation.
|
||||
networking.hostId = "fdc3ff7d";
|
||||
boot.loader.systemd-boot.enable = true;
|
||||
boot.loader.efi.canTouchEfiVariables = true;
|
||||
|
||||
# Framework 13, Intel Core i5-1135G7. Hardware tuning comes from nixos-hardware.
|
||||
services.fwupd.enable = true;
|
||||
|
||||
# Existing pool/dataset must be created in the installer; root stays ext4.
|
||||
boot.supportedFilesystems = [ "zfs" ];
|
||||
boot.zfs.extraPools = [ "tookland" ];
|
||||
boot.zfs.forceImportRoot = false;
|
||||
fileSystems."/home" = {
|
||||
device = "tookland/home";
|
||||
fsType = "zfs";
|
||||
# Mount home before activation creates user directories.
|
||||
neededForBoot = true;
|
||||
};
|
||||
services.zfs.autoScrub.enable = true;
|
||||
|
||||
# A simple laptop policy using Plasma's power management integration.
|
||||
services.power-profiles-daemon.enable = true;
|
||||
services.libinput.enable = true;
|
||||
|
||||
# First installation release; keep this unchanged after installation.
|
||||
system.stateVersion = "26.05";
|
||||
}
|
||||
Reference in new issue
Block a user