Implement pre-built Doom Emacs packages for the live USB image, eliminating
the need to run `doom sync` after first boot.
Changes:
- Add nix-doom-emacs-unstraightened flake input
- Add homeModule to all three module sets (nixos, unstable, darwin)
- Add `prebuiltDoom` option to emacs role (default: false)
- Enable prebuiltDoom for live-usb configuration
- Pin custom packages in packages.el for deterministic builds:
- claude-code-ide, gptel-tool-library, beads
When prebuiltDoom=true, all Doom packages are compiled at nix build time
using emacs-overlay. The doom configuration is stored in the nix store
(read-only), and no `doom sync` is required at runtime.
This is ideal for:
- Live USB images
- Immutable/reproducible systems
- Offline deployments
Closes: nixos-configs-1wd
Migrate all remaining home-manager modules from home/modules/ to home/roles/
to establish a unified role-based configuration pattern. This completes the
migration started in Phase 1.
Changes:
- Phase 1-3: Migrated tmux, plasma-manager, kubectl, and emacs to roles
- Phase 4: Migrated aerospace with custom options under home.roles.aerospace.*
- Phase 5: Migrated i3+sway with shared config and override options
- Phase 6: Removed empty home/modules/ directory
All home configs now import only ./roles with role-based enable options.
Updated flake.nix machine-specific overrides to use new namespaces.
Verified with nix flake check - all configurations build successfully.