Utilizes the IceDOS framework. The full bible — module structure, config flow, the
icedos rebuild --buildtest loop,validate.*helpers, dep loading — lives in core: https://github.com/IceDOS/core/blob/main/AGENTS.md — this file only covers what is specific to hardware.
- Build/test only via the
icedosCLI — neversudo nixos-rebuild. - Never
git commit/stash/reset/pull— the user manages git. - Every option uses a
validate.*/mk*Optionhelper; no untyped options. - A module's
config.tomldefaults must mirror itsicedos.nixdefaults. - Format with
icedos nixf .after editing any.nix. - If a repo or the config root you need isn't checked out locally, ask the user for
its path or permission to
git cloneit — don't guess or clone unprompted.
Hardware and low-level system configuration: kernels, GPU drivers, audio, peripherals, storage mounts, networking.
modules/<name>/{icedos.nix,config.toml}per module;flake.nixexposes them viaicedosLib.scanModules { path = ./modules; filename = "icedos.nix"; }.- Some modules nest sub-modules: e.g.
graphics/hasgraphics/modules/(radeon, nvidia, …).
Standard IceDOS module under options.icedos.hardware.<name>. Same shape as apps
(options from sibling config.toml → outputs.nixosModules → meta.name).
In the config root's config.toml, point this repo's overrideUrl at your local
checkout (path:/abs/path/to/hardware), then icedos rebuild --build (no activation).
Kernel/driver changes that affect the running system need a real switch + reboot —
that's the user's call.
kernel(variant selection, e.g.latest-lto-x86_64-v3),graphics/radeon&graphics/nvidia,pipewire(echo/noise cancellation),bluetooth,openrgb,zram,uinput,upower,monitors,mounts,network.scx(CPU scheduler),lact&low-latency-vulkan-layer(GPU),power-profiles-daemon,samba(file shares),solaar,input-remapper,ambiled(peripherals/LED).- Hardware modules can change boot/kernel — be conservative; prefer
--buildvalidation and let the user activate.