From 7e65edcb16d2aafa2240bda5d4b255f499ff7e4a Mon Sep 17 00:00:00 2001 From: William Carroll Date: Tue, 15 Feb 2022 11:46:28 -0800 Subject: feat(wpcarro/emacs): Define window-manager-move-window Move the current window to a new named EXWM workspace and focus that workspace. Change-Id: Ibb3d3b3df09c6853d2eaf02882714a5c62623d2b Reviewed-on: https://cl.tvl.fyi/c/depot/+/5293 Reviewed-by: wpcarro Autosubmit: wpcarro Tested-by: BuildkiteCI --- users/wpcarro/emacs/.emacs.d/wpc/window-manager.el | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'users/wpcarro/emacs/.emacs.d') diff --git a/users/wpcarro/emacs/.emacs.d/wpc/window-manager.el b/users/wpcarro/emacs/.emacs.d/wpc/window-manager.el index 308424cc54d8..4c61138f948a 100644 --- a/users/wpcarro/emacs/.emacs.d/wpc/window-manager.el +++ b/users/wpcarro/emacs/.emacs.d/wpc/window-manager.el @@ -209,5 +209,20 @@ predicate." t) window-manager-named-workspaces))) +(defun window-manager-move-window () + "Prompt the user to move the current window to another workspace." + (interactive) + (let ((window (get-buffer-window)) + (dest (completing-read "Move current window to: " + (->> window-manager-named-workspaces + (-map #'window-manager-named-workspace-label)) + nil + t))) + (exwm-workspace-move-window + (exwm-workspace--workspace-from-frame-or-index + (window-manager--label->index dest window-manager-named-workspaces)) + (exwm--buffer->id window)) + (window-manager--switch dest))) + (provide 'window-manager) ;;; window-manager.el ends here -- cgit 1.4.1