From 484cba1b1b5098b8e7df836527a6a6f57e8b1a7e Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Sat, 7 Apr 2018 23:03:18 -0400 Subject: [PATCH] feature/workspaces: unselect side-windows when switching workspaces #499 --- modules/feature/workspaces/config.el | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/modules/feature/workspaces/config.el b/modules/feature/workspaces/config.el index 8a886d133..72731e51a 100644 --- a/modules/feature/workspaces/config.el +++ b/modules/feature/workspaces/config.el @@ -113,6 +113,15 @@ Uses `+workspaces-main' to determine the name of the main workspace." ;; On `doom/cleanup-session', delete buffers associated with no perspectives (add-hook 'doom-cleanup-hook #'+workspaces|cleanup-unassociated-buffers) + (defun +workspaces|select-non-side-window (&rest _) + "Ensure a side window isn't current when switching workspaces." + (when (window-parameter nil 'window-side) + (select-window + (cl-loop for win in (window-list) + unless (window-parameter win 'window-side) + return win)))) + (add-hook 'persp-before-deactivate-functions #'+workspaces|select-non-side-window) + ;; per-frame workspaces (setq persp-init-frame-behaviour t persp-init-new-frame-behaviour-override nil