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
43 lines
1.3 KiB
Nix
43 lines
1.3 KiB
Nix
{ pkgs, globalInputs, system, ... }:
|
|
|
|
{
|
|
# Home Manager configuration for live USB environments
|
|
# Minimal setup without persistent services
|
|
|
|
home.username = "nixos";
|
|
home.homeDirectory = "/home/nixos";
|
|
home.stateVersion = "24.05";
|
|
|
|
# Enable minimal roles only (no sync or kdeconnect for live environment)
|
|
home.roles = {
|
|
base.enable = true;
|
|
desktop.enable = true;
|
|
tmux.enable = true;
|
|
plasma-manager.enable = true;
|
|
emacs = {
|
|
enable = true;
|
|
# Use pre-built Doom Emacs - all packages built at nix build time
|
|
# This means no doom sync is needed after booting the live USB
|
|
prebuiltDoom = true;
|
|
};
|
|
i3_sway.enable = true;
|
|
starship.enable = true;
|
|
# development.enable = false; # Not needed for live USB
|
|
# communication.enable = false; # Not needed for live USB
|
|
# office.enable = false; # Not needed for live USB
|
|
# media.enable = false; # Not needed for live USB
|
|
# sync.enable = false; # No persistent sync on live USB
|
|
# kdeconnect.enable = false; # No device integration on live USB
|
|
};
|
|
|
|
targets.genericLinux.enable = true;
|
|
home.sessionVariables = {};
|
|
home.sessionPath = [];
|
|
|
|
imports = [
|
|
./roles
|
|
./roles/base-linux
|
|
];
|
|
|
|
# Live USB specific overrides can go here if needed
|
|
} |