about summary refs log tree commit diff
path: root/exwm-layout.el
diff options
context:
space:
mode:
authorChris Feng <chris.w.feng@gmail.com>2016-02-07T02·45+0800
committerChris Feng <chris.w.feng@gmail.com>2016-02-07T02·45+0800
commite2edf81271e1a7dd148aa7386b730ae2838c2860 (patch)
treeeb89d010d631444cd2ac8cce377f2724092e6a5e /exwm-layout.el
parent3d643fafbe58d9b3e2dc9e864cbf05a2d911e1b2 (diff)
Add some useful key bindings
* exwm-core.el (exwm--floating-mode-line-format, exwm--mode-line-format)
(exwm-mode-map):
* exwm-floating.el (exwm-floating-hide-mode-line)
(exwm-floating-show-mode-line):
* exwm-layout.el (exwm-layout-hide-mode-line, exwm-layout-show-mode-line)
(exwm-layout-toggle-mode-line):
Allow hide/show mode-line for all `exwm-mode' buffers with 'C-c M'.

* exwm-config.el (exwm-config-default): Add simulation keys for 'C-d' and
'C-k'.
Diffstat (limited to 'exwm-layout.el')
-rw-r--r--exwm-layout.el33
1 files changed, 33 insertions, 0 deletions
diff --git a/exwm-layout.el b/exwm-layout.el
index 871438f9f6e0..df603f709a12 100644
--- a/exwm-layout.el
+++ b/exwm-layout.el
@@ -392,6 +392,39 @@ See also `exwm-layout-enlarge-window'."
   (interactive "p")
   (exwm-layout-enlarge-window (- delta) t))
 
+(defun exwm-layout-hide-mode-line ()
+  "Hide mode-line."
+  (interactive)
+  (when (and (eq major-mode 'exwm-mode) mode-line-format)
+    (setq exwm--mode-line-format mode-line-format
+          mode-line-format nil)
+    (if (not exwm--floating-frame)
+        (exwm-layout--show exwm--id)
+      (exwm-floating--fit-frame-to-window)
+      (xcb:flush exwm--connection)
+      (setq window-size-fixed exwm--fixed-size))))
+
+(defun exwm-layout-show-mode-line ()
+  "Show mode-line."
+  (interactive)
+  (when (and (eq major-mode 'exwm-mode) (not mode-line-format))
+    (setq mode-line-format exwm--mode-line-format
+          exwm--mode-line-format nil)
+    (if (not exwm--floating-frame)
+        (exwm-layout--show exwm--id)
+      (exwm-floating--fit-frame-to-window)
+      (exwm-input-grab-keyboard)
+      (xcb:flush exwm--connection)
+      (setq window-size-fixed exwm--fixed-size))))
+
+(defun exwm-layout-toggle-mode-line ()
+  "Toggle the display of mode-line."
+  (interactive)
+  (when (eq major-mode 'exwm-mode)
+    (if mode-line-format
+        (exwm-layout-hide-mode-line)
+      (exwm-layout-show-mode-line))))
+
 (defun exwm-layout--init ()
   "Initialize layout module."
   ;; Auto refresh layout