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
40 lines
1.2 KiB
Nix
40 lines
1.2 KiB
Nix
{ ... }:
|
|
{
|
|
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";
|
|
}
|