diff --git a/build-helpers/build-profile-loader b/build-helpers/build-profile-loader index 64cb4ca..bcc1a48 100755 --- a/build-helpers/build-profile-loader +++ b/build-helpers/build-profile-loader @@ -3,13 +3,15 @@ (defcli! build-profile-loader ((profile-name ("-n" form) "Profile name.") - (profile-directory ("-p" dir) "Profile data directory.") + (base-directory ("-b" dir) "Base directory (for profile and straight).") (profile-doom-dir ("-d" dir) "DOOMDIR")) "Write Doom's profile loader." - (let ((new-profiles `((,profile-name - (user-emacs-directory . ,doom-emacs-dir) - (doom-profile-data-dir . ,profile-directory) - ("DOOMDIR" . ,profile-doom-dir))))) + (let* ((profile-directory (expand-file-name "profile/" base-directory)) + (new-profiles `((,profile-name + (user-emacs-directory . ,doom-emacs-dir) + (doom-profile-data-dir . ,profile-directory) + (unstraightened--straight-base-dir . ,base-directory) + ("DOOMDIR" . ,profile-doom-dir))))) (doom-profiles-save new-profiles))) (run! "build-profile-loader" (cdr (member "--" argv))) diff --git a/doom.nix b/doom.nix index 70ce5ff..2efc842 100644 --- a/doom.nix +++ b/doom.nix @@ -276,14 +276,14 @@ let # Required to avoid Doom erroring out at startup. nativeBuildInputs = [ git ]; } '' - mkdir $out $out/loader $out/profile + mkdir $out $out/loader $out/profile $out/straight export DOOMPROFILELOADFILE=$out/loader/init.el export DOOMLOCALDIR=$(mktemp -d) # Prevent error on Emacs shutdown writing empty build cache. mkdir $DOOMLOCALDIR/straight ${runtimeShell} ${doomSource}/bin/doomscript ${./build-helpers/build-profile-loader} \ - -n "${profileName}" -p "$out/profile" -d "${finalDoomDir}" + -n "${profileName}" -b "$out" -d "${finalDoomDir}" # With DOOMPROFILE set, doom-state-dir and friends are HOME-relative. export HOME=$(mktemp -d) diff --git a/pre-init.el b/pre-init.el index 6857916..5a2fb19 100644 --- a/pre-init.el +++ b/pre-init.el @@ -9,7 +9,14 @@ `straight-recipe-repositories' is set, but we do not want to set it. Just skip it entirely." :override #'doom-initialize-core-packages - (doom-log "Assuming straight was already initialized")) + (doom-log "nix-doom-emacs-unstraightened overriding core package init") + ;; doom-initialize-core-packages normally registers recipes, which loads the + ;; build cache by side effect, which leaves straight--build-cache available + ;; afterwards. Doom assumes this cache is available, so force a load here. + (straight--load-build-cache)) + +(after! doom-packages + (setq straight-base-dir unstraightened--straight-base-dir)) ;; nix-doom-emacs-unstraightened additions end here. ;; Original init.el follows.