vmix.nix/lib/images/windows/templates/default.nix
Git Sagar 20e8b98fec laptop image tiers, devshell, partition preserve, cleanup
Images:
- laptopUpstream: bare OS install with AHCI, no templates
- laptopSlim: essentials only (debloat, registry tweaks)
- laptop: full (essentials + all apps)
- win10/win11 images use rec for self-references

CLI:
- preserve recovery partition (4) during disk copy
- expand partition 3 up to partition 4 boundary
- remove VNC CLI flag (use vncDisplay in nix configs instead)

Flake:
- add devShell with vmix alias and PS1 prompt

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-24 13:32:18 -03:00

90 lines
3 KiB
Nix

# Windows customization templates.
# Templates can provide:
# windowsRegistry — offline registry merge (fast, no boot)
# auditScript — runs in Audit Mode via QEMU boot
# cdroms — ISOs to attach when booting for auditScript
# uploads — files to inject into the image before auditScript
{ pkgs, lib, system, drivers, makeFilesISO, ... }:
let
args = { inherit pkgs lib system drivers makeFilesISO; };
in rec {
# Essentials (drivers, runtimes, removals, performance)
essentials = {
virtioTools = import ./essentials/virtio-tools.nix args;
removeEdge = import ./essentials/remove-edge.nix args;
removeIE = import ./essentials/remove-ie.nix args;
removeWMP = import ./essentials/remove-wmp.nix args;
removePaint = import ./essentials/remove-paint.nix args;
amdGpuDrivers = import ./essentials/amd-gpu-drivers.nix args;
vcppRuntimes = import ./essentials/vcpp-runtimes.nix args;
bestPerformance = import ./essentials/best-performance.nix args;
clearFileAssociations = import ./essentials/clear-file-associations.nix args;
virtioDrivers = import ./essentials/virtio-drivers.nix args;
};
# Applications
apps = {
thorium = import ./apps/thorium.nix args;
edgeWebview = import ./apps/edge-webview.nix args;
sevenZip = import ./apps/7zip.nix args;
vlc = import ./apps/vlc.nix args;
imageGlass = import ./apps/imageglass.nix args;
sandboxie = import ./apps/sandboxie.nix args;
office = import ./apps/office.nix args;
};
# Default file associations policy
defaultApps = import ./default-apps.nix args;
# Generalize (sysprep + OOBE). Pass seal=true for hardware deployment.
generalize = import ./generalize.nix args;
# Offline registry templates
reg = import ./registry args;
# Bundles — reusable template lists for common use cases
bundles = {
# Essentials only: debloat + registry tweaks, no apps
laptopSlim = [
essentials.removeIE
essentials.removeWMP
essentials.removeEdge
essentials.vcppRuntimes
essentials.bestPerformance
reg.disableTelemetry
reg.disableErrorReporting
reg.disableUpdates
reg.disableSmartScreen
reg.disablePrivacyTracking
reg.disableAI
reg.disableConsumerFeatures
reg.performanceTweaks
apps.thorium
apps.sevenZip
];
# Full: essentials + apps
laptop = [
essentials.removeIE
essentials.removeWMP
essentials.removeEdge
essentials.vcppRuntimes
essentials.bestPerformance
reg.disableTelemetry
reg.disableErrorReporting
reg.disableUpdates
reg.disableSmartScreen
reg.disablePrivacyTracking
reg.disableAI
reg.disableConsumerFeatures
reg.performanceTweaks
apps.edgeWebview
apps.thorium
apps.sevenZip
apps.vlc
apps.imageGlass
essentials.virtioDrivers # needed for network during Office download
apps.office
];
};
}