about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--exwm-core.el7
-rw-r--r--exwm-workspace.el12
2 files changed, 13 insertions, 6 deletions
diff --git a/exwm-core.el b/exwm-core.el
index 09e16582be6a..7606a9e9416b 100644
--- a/exwm-core.el
+++ b/exwm-core.el
@@ -199,12 +199,7 @@
     ["Swap workspaces" exwm-workspace-swap]
     ["Move X window to" exwm-workspace-move-window :keys "C-c C-m"]
     ["Move X window from" exwm-workspace-switch-to-buffer]
-    ["Attach minibuffer" exwm-workspace-attach-minibuffer
-     (and (exwm-workspace--minibuffer-own-frame-p)
-          (not (exwm-workspace--minibuffer-attached-p)))]
-    ["Detach minibuffer" exwm-workspace-detach-minibuffer
-     (and (exwm-workspace--minibuffer-own-frame-p)
-          (exwm-workspace--minibuffer-attached-p))]
+    ["Toggle minibuffer" exwm-workspace-toggle-minibuffer]
     ["Switch workspace" exwm-workspace-switch]
     ;; Place this entry at bottom to avoid selecting others by accident.
     ("Switch to" :filter
diff --git a/exwm-workspace.el b/exwm-workspace.el
index b3c2390936c3..e58c55411416 100644
--- a/exwm-workspace.el
+++ b/exwm-workspace.el
@@ -500,6 +500,7 @@ The optional FORCE option is for internal use only."
   "Number of workspaces `exwm-workspace-switch-create' allowed to create
 each time.")
 
+;;;###autoload
 (defun exwm-workspace-switch-create (frame-or-index)
   "Switch to workspace FRAME-OR-INDEX, creating it if it does not exist yet."
   (interactive)
@@ -835,6 +836,7 @@ Please check `exwm-workspace--minibuffer-own-frame-p' first."
   (assq (frame-parameter exwm-workspace--minibuffer 'exwm-container)
         exwm-workspace--id-struts-alist))
 
+;;;###autoload
 (defun exwm-workspace-attach-minibuffer ()
   "Attach the minibuffer so that it always shows."
   (interactive)
@@ -858,6 +860,7 @@ Please check `exwm-workspace--minibuffer-own-frame-p' first."
         (exwm-workspace--set-fullscreen f))
       (exwm-workspace--show-minibuffer))))
 
+;;;###autoload
 (defun exwm-workspace-detach-minibuffer ()
   "Detach the minibuffer so that it automatically hides."
   (interactive)
@@ -874,6 +877,15 @@ Please check `exwm-workspace--minibuffer-own-frame-p' first."
         (exwm-workspace--set-fullscreen f))
       (exwm-workspace--hide-minibuffer))))
 
+;;;###autoload
+(defun exwm-workspace-toggle-minibuffer ()
+  "Attach the minibuffer if it's detached, or detach it if it's attached."
+  (interactive)
+  (when (exwm-workspace--minibuffer-own-frame-p)
+    (if (exwm-workspace--minibuffer-attached-p)
+        (exwm-workspace-detach-minibuffer)
+      (exwm-workspace-attach-minibuffer))))
+
 (defun exwm-workspace--update-minibuffer-height (&optional echo-area)
   "Update the minibuffer frame height."
   (let ((height