feat(emacs): Add prebuilt Doom option using nix-doom-emacs-unstraightened
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
This commit is contained in:
11
flake.nix
11
flake.nix
@@ -47,6 +47,12 @@
|
||||
url = "github:steveyegge/beads";
|
||||
inputs.nixpkgs.follows = "nixpkgs-unstable";
|
||||
};
|
||||
|
||||
nix-doom-emacs-unstraightened = {
|
||||
url = "github:marienz/nix-doom-emacs-unstraightened";
|
||||
# Don't follow nixpkgs to avoid rebuild issues with emacs-overlay
|
||||
inputs.nixpkgs.follows = "";
|
||||
};
|
||||
};
|
||||
|
||||
outputs = { self, nixpkgs, nixpkgs-unstable, nixos-wsl, ... } @ inputs: let
|
||||
@@ -70,6 +76,7 @@
|
||||
home-manager.useUserPackages = true;
|
||||
home-manager.sharedModules = [
|
||||
inputs.plasma-manager.homeModules.plasma-manager
|
||||
inputs.nix-doom-emacs-unstraightened.homeModule
|
||||
];
|
||||
home-manager.extraSpecialArgs = {
|
||||
globalInputs = inputs;
|
||||
@@ -98,6 +105,7 @@
|
||||
home-manager.useUserPackages = true;
|
||||
home-manager.sharedModules = [
|
||||
inputs.plasma-manager-unstable.homeModules.plasma-manager
|
||||
inputs.nix-doom-emacs-unstraightened.homeModule
|
||||
];
|
||||
home-manager.extraSpecialArgs = {
|
||||
globalInputs = inputs;
|
||||
@@ -129,6 +137,9 @@
|
||||
];
|
||||
home-manager.useGlobalPkgs = true;
|
||||
home-manager.useUserPackages = true;
|
||||
home-manager.sharedModules = [
|
||||
inputs.nix-doom-emacs-unstraightened.homeModule
|
||||
];
|
||||
home-manager.extraSpecialArgs = {
|
||||
globalInputs = inputs;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user