about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--exwm-manage.el13
1 files changed, 10 insertions, 3 deletions
diff --git a/exwm-manage.el b/exwm-manage.el
index 260571b6c0..9e05ea2482 100644
--- a/exwm-manage.el
+++ b/exwm-manage.el
@@ -28,6 +28,11 @@
 
 (require 'exwm-core)
 
+(defvar exwm-manage-force-tiling nil
+  "Non-nil to force managing all X windows in tiling layout.
+
+You can still make the X windows floating afterwards.")
+
 (defvar exwm-manage-finish-hook nil
   "Normal hook run after a window is just managed, in the context of the
 corresponding buffer.")
@@ -233,9 +238,11 @@ corresponding buffer.")
       (xcb:flush exwm--connection)
       (exwm--update-title id)
       (exwm--update-protocols id)
-      (if (or exwm-transient-for exwm--fixed-size
-              (memq xcb:Atom:_NET_WM_WINDOW_TYPE_UTILITY exwm-window-type)
-              (memq xcb:Atom:_NET_WM_WINDOW_TYPE_DIALOG exwm-window-type))
+      (if (and (not exwm-manage-force-tiling)
+               (or exwm-transient-for exwm--fixed-size
+                   (memq xcb:Atom:_NET_WM_WINDOW_TYPE_UTILITY exwm-window-type)
+                   (memq xcb:Atom:_NET_WM_WINDOW_TYPE_DIALOG
+                         exwm-window-type)))
           (exwm-floating--set-floating id)
         (exwm-floating--unset-floating id))
       (exwm-input-grab-keyboard id)