Skip to content

Commit

Permalink
window-purpose layer: eval-after-load for eyebrowse
Browse files Browse the repository at this point in the history
  • Loading branch information
Bar Magal committed Jun 13, 2015
1 parent 5ef60c8 commit 16851f5
Showing 1 changed file with 25 additions and 23 deletions.
48 changes: 25 additions & 23 deletions contrib/!window-management/window-purpose/packages.el
Original file line number Diff line number Diff line change
Expand Up @@ -106,26 +106,28 @@ PURPOSE defaults to the purpose of the current buffer."
;; *LV* buffer is used by corelv.el
(push "^\\*LV\\*$" purpose-action-function-ignore-buffer-names)

(defvar window-purpose--eyebrowse-new-workspace eyebrowse-new-workspace)

(defun window-purpose/new-workspace ()
"Create a new eyebrowse workspace."
;; partially copied from `eyebrowse-switch-to-window-config'
(cond
((stringp window-purpose--eyebrowse-new-workspace)
(switch-to-buffer (get-buffer-create window-purpose--eyebrowse-new-workspace)))
((functionp window-purpose--eyebrowse-new-workspace)
(funcall window-purpose--eyebrowse-new-workspace))
(t (switch-to-buffer "*scratch*")))

;; in case opening the new buffer splitted the frame (e.g.
;; `eyebrowse-switch-to-window-config' was called from a purpose-dedicated
;; buffer)
(delete-other-windows))

(defun window-purpose/sync-eyebrowse ()
(if purpose-mode
(setq eyebrowse-new-workspace #'window-purpose/new-workspace)
(setq eyebrowse-new-workspace window-purpose--eyebrowse-new-workspace)))
(add-hook 'purpose-mode-hook #'window-purpose/sync-eyebrowse)
(window-purpose/sync-eyebrowse))
(eval-after-load 'eyebrowse
'(progn
(defvar window-purpose--eyebrowse-new-workspace eyebrowse-new-workspace)

(defun window-purpose/new-workspace ()
"Create a new eyebrowse workspace."
;; partially copied from `eyebrowse-switch-to-window-config'
(cond
((stringp window-purpose--eyebrowse-new-workspace)
(switch-to-buffer (get-buffer-create window-purpose--eyebrowse-new-workspace)))
((functionp window-purpose--eyebrowse-new-workspace)
(funcall window-purpose--eyebrowse-new-workspace))
(t (switch-to-buffer "*scratch*")))

;; in case opening the new buffer splitted the frame (e.g.
;; `eyebrowse-switch-to-window-config' was called from a purpose-dedicated
;; buffer)
(delete-other-windows))

(defun window-purpose/sync-eyebrowse ()
(if purpose-mode
(setq eyebrowse-new-workspace #'window-purpose/new-workspace)
(setq eyebrowse-new-workspace window-purpose--eyebrowse-new-workspace)))
(add-hook 'purpose-mode-hook #'window-purpose/sync-eyebrowse)
(window-purpose/sync-eyebrowse))))

0 comments on commit 16851f5

Please sign in to comment.