diff --git a/core/core-popups.el b/core/core-popups.el index 0916e317f..02cdc0396 100644 --- a/core/core-popups.el +++ b/core/core-popups.el @@ -514,6 +514,18 @@ that `doom*popup-save' won't break it." (add-hook 'doom-popup-mode-hook #'+evil|neotree-fix-popup)) +(after! persp-mode + (defun doom*persp-mode-restore-popups (&rest _) + "Restore popup windows when loading a perspective from file." + (dolist (window (window-list)) + (when-let (plist (window-parameter window 'popup)) + (with-selected-window window + (unless doom-popup-mode + (setq-local doom-popup-rules plist) + (doom-popup-mode +1)))))) + (advice-add #'persp-load-state-from-file :after #'doom*persp-mode-restore-popups)) + + (after! quickrun ;; don't auto-focus quickrun windows, shackle handles that (setq quickrun-focus-p nil)) diff --git a/modules/feature/workspaces/config.el b/modules/feature/workspaces/config.el index 91c21c408..61fbfe060 100644 --- a/modules/feature/workspaces/config.el +++ b/modules/feature/workspaces/config.el @@ -99,20 +99,10 @@ perspective-specific buffer list via `+workspaces-buffer-list'." (advice-add #'switch-to-buffer :after #'+workspaces*auto-add-buffer) (advice-add #'display-buffer :after #'+workspaces*auto-add-buffer) - (defun +workspaces|workspace-per-project () + (defun +workspaces|create-project-workspace () "Create a new workspace when switching project with projectile." (+workspace-switch (projectile-project-name) t)) - (add-hook 'projectile-before-switch-project-hook #'+workspaces|workspace-per-project) - - (defun +workspaces|restore-popups (&rest _) - "Restore popup windows when loading a perspective from file." - (dolist (window (window-list)) - (when-let (plist (window-parameter window 'popup)) - (with-selected-window window - (unless doom-popup-mode - (setq-local doom-popup-rules plist) - (doom-popup-mode +1)))))) - (advice-add #'persp-load-state-from-file :after #'+workspaces|restore-popups) + (add-hook 'projectile-before-switch-project-hook #'+workspaces|create-project-workspace) (defun +workspaces*autosave-real-buffers (orig-fn &rest args) "Don't autosave if no real buffers are open."