aboutsummaryrefslogtreecommitdiffstats
path: root/README.md
diff options
context:
space:
mode:
Diffstat (limited to 'README.md')
-rw-r--r--README.md31
1 files changed, 31 insertions, 0 deletions
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..c827164
--- /dev/null
+++ b/README.md
@@ -0,0 +1,31 @@
+# unmapfullscreen
+
+## Description
+
+This patch hides fullscreen clients by unmapping them instead of moving them
+off-screen. It applies to dwm 6.8.
+
+`showhide()` hides a window by moving it to `-2 * width`. Some games and
+Wine/Proton builds treat that as a broken or minimized state and do not
+recover fullscreen when the tag returns. With this patch a hidden fullscreen
+client is unmapped and mapped again when it becomes visible.
+
+dwm selects `StructureNotifyMask` on clients and `SubstructureNotifyMask` on
+the root, so calling `XUnmapWindow()` directly reaches `unmapnotify()` and
+unmanages the client. The patch adds a small `unmapclient()` helper that
+suppresses both masks around the unmap, the same technique the windowmap
+patch uses. Hidden fullscreen clients are still parked off-screen so the
+initial map from `manage()` does not put them on the wrong tag.
+
+## Testing
+
+Applies and builds against dwm 6.8. Runtime tested under Xvfb: a hidden
+fullscreen client reports map state unmapped and stays managed.
+
+## Download
+
+* [dwm-unmapfullscreen-6.8.diff](dwm-unmapfullscreen-6.8.diff)
+
+## Author
+
+* Daniel Guihot - [daniel@guihot.net](mailto:daniel@guihot.net)