diff --git a/core/core-custom-settings.el b/core/core-custom-settings.el index 74813f4cc9bc..33c0e78ecb96 100644 --- a/core/core-custom-settings.el +++ b/core/core-custom-settings.el @@ -14,13 +14,13 @@ ".custom-settings")) (defun spacemacs/initialize-custom-file () - "Initialize the custom file." + "Initialize the custom file. +Does not initialize writing the custom file into the dotfile. To +complete that part see `spacemacs/initialize-custom-file-sync'." ;; setup auto-rewrite of custom settings only if custom-file ;; has not been set by the user (when (null custom-file) - (setq custom-file spacemacs--custom-file) - (advice-add 'custom-save-all :after - #'spacemacs/write-custom-settings-to-dotfile)) + (setq custom-file spacemacs--custom-file)) ;; initialize the cache file contents (unless (or (not (string-equal custom-file spacemacs--custom-file)) (file-exists-p spacemacs--custom-file)) @@ -32,6 +32,12 @@ ;; function `dotspacemacs/emacs-custom-settings'. ;; Do not alter this file, use Emacs customize interface instead.\n\n"))))) +(defun spacemacs/initialize-custom-file-sync () + "Initialize syncing of the custom file to the dotfile." + (when (string-equal custom-file spacemacs--custom-file) + (advice-add 'custom-save-all :after + #'spacemacs/write-custom-settings-to-dotfile))) + (defun spacemacs//delete-emacs-custom-settings () "Delete function `dotspacemacs/emacs-custom-settings' from dotfile. diff --git a/core/core-spacemacs.el b/core/core-spacemacs.el index 7142e389a323..eba21a376fe0 100644 --- a/core/core-spacemacs.el +++ b/core/core-spacemacs.el @@ -211,6 +211,9 @@ Note: the hooked function is not executed when in dumped mode." "Calling dotfile user config...") (dotspacemacs|call-func dotspacemacs/emacs-custom-settings "Calling dotfile Emacs custom settings...") + ;; don't write custom settings into the dotfile before loading them, + ;; otherwise https://github.com/syl20bnr/spacemacs/issues/10504 happens + (spacemacs/initialize-custom-file-sync) (run-hooks 'spacemacs-post-user-config-hook) (setq spacemacs-post-user-config-hook-run t) (when (fboundp dotspacemacs-scratch-mode)