diff options
author | William Carroll <wpcarro@gmail.com> | 2020-10-03T13·49+0100 |
---|---|---|
committer | William Carroll <wpcarro@gmail.com> | 2020-10-03T13·49+0100 |
commit | b4b929a55b95cf569296aa8f2b0342fd90aa1586 (patch) | |
tree | 888fee2e1dd0d73a87e9755cdf893fcc5dd5bf72 /emacs/.emacs.d/wpc/window-manager.el | |
parent | 869bcf3fc84994b0074e735b2204fd7a180dfd44 (diff) |
Define window-manager-swap-workspaces
This is a wrapper around the existing `exwm-workspace-swap` except it's aware of my `window-manager-workspace` struct.
Diffstat (limited to 'emacs/.emacs.d/wpc/window-manager.el')
-rw-r--r-- | emacs/.emacs.d/wpc/window-manager.el | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/emacs/.emacs.d/wpc/window-manager.el b/emacs/.emacs.d/wpc/window-manager.el index cda66a296492..5a2ae0e186ed 100644 --- a/emacs/.emacs.d/wpc/window-manager.el +++ b/emacs/.emacs.d/wpc/window-manager.el @@ -375,6 +375,22 @@ predicate." cycle-current window-manager--named-workspace-label)) +(defun window-manager-swap-workspaces () + "Prompt the user to switch the current workspace with another." + (interactive) + (let* ((selection (->> window-manager--named-workspaces + (-map #'window-manager--named-workspace-label) + (-reject + (lambda (x) + (s-equals? x (window-manager-current-workspace)))) + (completing-read + (format "Swap current workspace (i.e. \"%s\") with: " + (window-manager-current-workspace))))) + (i (-find-index (lambda (x) + (s-equals? selection (window-manager--named-workspace-label x))) + window-manager--named-workspaces))) + (exwm-workspace-swap exwm-workspace--current (elt exwm-workspace--list i)))) + ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; Startup Applications in `window-manager--named-workspaces' ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |