[wiki] [sites] [dwm][patches][ignore_transient_windows] Added patch to work with apps that use transient property || BrunoCooper17

From: <git_AT_suckless.org>
Date: Mon, 15 Nov 2021 05:32:49 +0100

commit 4df6d93c112e272debb80e7c41fb8685ed03c193
Author: BrunoCooper17 <BrunoCooper17_AT_outlook.com>
Date: Sun Nov 14 22:32:44 2021 -0600

    [dwm][patches][ignore_transient_windows] Added patch to work with apps that use transient property

diff --git a/dwm.suckless.org/patches/ignore_transient_windows/dwm-ignore_transient_windows-20211114-a786211.diff b/dwm.suckless.org/patches/ignore_transient_windows/dwm-ignore_transient_windows-20211114-a786211.diff
new file mode 100644
index 00000000..3d1755d4
--- /dev/null
+++ b/dwm.suckless.org/patches/ignore_transient_windows/dwm-ignore_transient_windows-20211114-a786211.diff
_AT_@ -0,0 +1,84 @@
+From ab0b7c8798f19fd45969590fbca421e0a526a72c Mon Sep 17 00:00:00 2001
+From: BrunoCooper17 <BrunoCooper17_AT_outlook.com>
+Date: Sun, 14 Nov 2021 21:17:39 -0600
+Subject: [PATCH] Add support to ignore transient window to avoid becoming floating
+
+This fix issues working with Jetbrains applications and the UE4 Editor.
+
+Also, not sure if needed but add the following for some java applications before launching dwm:
+export _JAVA_AWT_WM_NONREPARENTING=1
+export AWT_TOOLKIT=MToolkit
+wmname LG3D
+
+The real authors of this patch are Ar4m1d and bakkeby from reddit, I just put it
+on a patch to share it to anyone who find it useful:
+https://www.reddit.com/r/suckless/comments/k67tso/dwm_webstormjetbrains_webstorm_window_becomes/
+
+---
+ config.def.h | 6 +++---
+ dwm.c | 11 +++++++----
+ 2 files changed, 10 insertions(+), 7 deletions(-)
+
+diff --git a/config.def.h b/config.def.h
+index a2ac963..39e50a1 100644
+--- a/config.def.h
++++ b/config.def.h
+_AT_@ -26,9 +26,9 @@ static const Rule rules[] = {
+ * WM_CLASS(STRING) = instance, class
+ * WM_NAME(STRING) = title
+ */
+- /* class instance title tags mask isfloating monitor */
+- { "Gimp", NULL, NULL, 0, 1, -1 },
+- { "Firefox", NULL, NULL, 1 << 8, 0, -1 },
++ /* class instance title tags mask isfloating monitor ignoretransient */
++ { "Gimp", NULL, NULL, 0, 1, -1, 0 },
++ { "Firefox", NULL, NULL, 1 << 8, 0, -1, 0 },
+ };
+
+ /* layout(s) */
+diff --git a/dwm.c b/dwm.c
+index 5e4d494..8313f96 100644
+--- a/dwm.c
++++ b/dwm.c
+_AT_@ -92,7 +92,7 @@ struct Client {
+ int basew, baseh, incw, inch, maxw, maxh, minw, minh;
+ int bw, oldbw;
+ unsigned int tags;
+- int isfixed, isfloating, isurgent, neverfocus, oldstate, isfullscreen;
++ int isfixed, isfloating, isurgent, neverfocus, oldstate, isfullscreen, ignoretransient;
+ Client *next;
+ Client *snext;
+ Monitor *mon;
+_AT_@ -139,6 +139,7 @@ typedef struct {
+ unsigned int tags;
+ int isfloating;
+ int monitor;
++ int ignoretransient;
+ } Rule;
+
+ /* function declarations */
+_AT_@ -299,6 +300,7 @@ applyrules(Client *c)
+ && (!r->instance || strstr(instance, r->instance)))
+ {
+ c->isfloating = r->isfloating;
++ c->ignoretransient = r->ignoretransient;
+ c->tags |= r->tags;
+ for (m = mons; m && m->num != r->monitor; m = m->next);
+ if (m)
+_AT_@ -1224,9 +1226,10 @@ propertynotify(XEvent *e)
+ switch(ev->atom) {
+ default: break;
+ case XA_WM_TRANSIENT_FOR:
+- if (!c->isfloating && (XGetTransientForHint(dpy, c->win, &trans)) &&
+- (c->isfloating = (wintoclient(trans)) != NULL))
+- arrange(c->mon);
++ if (!c->ignoretransient && !c->isfloating &&
++ (XGetTransientForHint(dpy, c->win, &trans)) &&
++ (c->isfloating = (wintoclient(trans)) != NULL))
++ arrange(c->mon);
+ break;
+ case XA_WM_NORMAL_HINTS:
+ updatesizehints(c);
+--
+2.33.1
+
diff --git a/dwm.suckless.org/patches/ignore_transient_windows/index.md b/dwm.suckless.org/patches/ignore_transient_windows/index.md
new file mode 100644
index 00000000..5be9ef39
--- /dev/null
+++ b/dwm.suckless.org/patches/ignore_transient_windows/index.md
_AT_@ -0,0 +1,24 @@
+Ignore Transient Windows
+========================
+
+Description
+-----------
+This fix issues working with Jetbrains applications and the UE4 Editor.
+
+Also, not sure if needed but add the following for some java applications before launching dwm:
+
+export _JAVA_AWT_WM_NONREPARENTING=1
+export AWT_TOOLKIT=MToolkit
+wmname LG3D
+
+The real authors of this patch are Ar4m1d and bakkeby from reddit, I just put it on a patch to share it to anyone who find it useful:
+https://www.reddit.com/r/suckless/comments/k67tso/dwm_webstormjetbrains_webstorm_window_becomes/
+
+Download
+--------
+* [dwm-ignore_transient_windows-20211114-a786211.diff](dwm-ignore_transient_windows-20211114-a786211.diff)
+
+Authors
+-------
+* Ar4m1d and bakkeby from reddit
+* Jesús Mastache Caballero <BrunoCooper17_AT_outlook.com>
\ No newline at end of file
Received on Mon Nov 15 2021 - 05:32:49 CET

This archive was generated by hypermail 2.3.0 : Mon Nov 15 2021 - 05:36:46 CET