From daa614cc3498f1b2b9a540d0c514b270feb3d66d Mon Sep 17 00:00:00 2001 From: bjarke-cachy-btw Date: Sun, 19 Jul 2026 10:07:07 +0200 Subject: [PATCH] games to steam patch --- config.def.h.rej | 10 +-- config.h | 21 +++-- dwm | Bin 100936 -> 100872 bytes dwm.c | 68 ++++----------- dwm.c.orig | 69 ++------------- dwm.c.rej | 10 +-- dwm.o | Bin 98624 -> 97696 bytes patches/dwm-games-6.6.diff | 173 ------------------------------------- patches/dwm-steam-6.6.diff | 72 +++++++++++++++ 9 files changed, 114 insertions(+), 309 deletions(-) delete mode 100644 patches/dwm-games-6.6.diff create mode 100644 patches/dwm-steam-6.6.diff diff --git a/config.def.h.rej b/config.def.h.rej index 36b8c7c..d121ec2 100644 --- a/config.def.h.rej +++ b/config.def.h.rej @@ -1,15 +1,15 @@ --- config.def.h +++ config.def.h -@@ -26,9 +26,11 @@ static const Rule rules[] = { +@@ -26,11 +26,9 @@ static const Rule rules[] = { * WM_CLASS(STRING) = instance, class * WM_NAME(STRING) = title */ -- /* class instance title tags mask isfloating monitor */ -+ /* class instance title tags mask isfloating monitor isgame */ +- /* class instance title tags mask isfloating monitor isgame */ ++ /* class instance title tags mask isfloating monitor */ { "Gimp", NULL, NULL, 0, 1, -1 }, { "Firefox", NULL, NULL, 1 << 8, 0, -1 }, -+ { "Steam", NULL, NULL, 0, 0, -1, 1 }, -+ { "steam_app",NULL, NULL, 0, 0, -1, 1 }, +- { "Steam", NULL, NULL, 0, 0, -1, 1 }, +- { "steam_app",NULL, NULL, 0, 0, -1, 1 }, }; /* layout(s) */ diff --git a/config.h b/config.h index 286db91..f8bb3b5 100644 --- a/config.h +++ b/config.h @@ -52,20 +52,19 @@ static const Rule rules[] = { * WM_CLASS(STRING) = instance, class * WM_NAME(STRING) = title */ - /* class instance title tags mask isfloating monitor isgame */ - { "Playground", NULL, NULL, 0, 1, -1, 0 }, + /* class instance title tags mask isfloating monitor */ + { "Playground", NULL, NULL, 0, 1, -1, }, - { "Steam", NULL, NULL, 1 << 1, 0, -1, 1 }, - { "steam_app", NULL, NULL, 0, 0, -1, 1 }, + { "steam", NULL, NULL, 1 << 1, 0, -1, }, - { "Firefox", NULL, NULL, 1 << 2, 0, -1, 0 }, - { "brave-browser", NULL, NULL, 1 << 3, 0, -1, 0 }, - { "discord", NULL, NULL, 1 << 4, 0, -1, 0 }, - { "feishin", NULL, NULL, 1 << 5, 0, -1, 0 }, + { "Firefox", NULL, NULL, 1 << 2, 0, -1, }, + { "brave-browser", NULL, NULL, 1 << 3, 0, -1, }, + { "discord", NULL, NULL, 1 << 4, 0, -1, }, + { "feishin", NULL, NULL, 1 << 5, 0, -1, }, - { NULL, "spterm", NULL, SPTAG(0), 1, -1, 0 }, - { NULL, "spfm", NULL, SPTAG(1), 1, -1, 0 }, - { NULL, "keepassxc", NULL, SPTAG(2), 0, -1, 0 }, + { NULL, "spterm", NULL, SPTAG(0), 1, -1, }, + { NULL, "spfm", NULL, SPTAG(1), 1, -1, }, + { NULL, "keepassxc", NULL, SPTAG(2), 0, -1, }, }; /* layout(s) */ diff --git a/dwm b/dwm index cf4538b68407ba2ded805c99cfb36ecc520ef087..8681cae23f0d79a4535c0e5de48c8402c60ebd16 100755 GIT binary patch delta 29621 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 SThsW&g`W-HH7>aHCjSRE4?yw& diff --git a/dwm.c b/dwm.c index 1a1b86b..adde2ab 100644 --- a/dwm.c +++ b/dwm.c @@ -51,7 +51,6 @@ * MAX(0, MIN((y)+(h),(m)->wy+(m)->wh) - MAX((y),(m)->wy))) #define ISVISIBLEONTAG(C, T) ((C->tags & T)) #define ISVISIBLE(C) ISVISIBLEONTAG(C, C->mon->tagset[C->mon->seltags]) -#define MINIMIZED(C) ((getstate(C->win) == IconicState)) #define HIDDEN(C) ((getstate(C->win) == IconicState)) #define MOUSEMASK (BUTTONMASK|PointerMotionMask) #define WIDTH(X) ((X)->w + 2 * (X)->bw) @@ -115,7 +114,7 @@ struct Client { int bw, oldbw; unsigned int tags; int isfixed, isfloating, isurgent, neverfocus, oldstate, isfullscreen; - int isgame; + int issteam; int fakefullscreen; Client *next; Client *snext; @@ -170,7 +169,6 @@ typedef struct { unsigned int tags; int isfloating; int monitor; - int isgame; } Rule; typedef struct Systray Systray; @@ -228,7 +226,6 @@ static void losefullscreen(Client *next); static void manage(Window w, XWindowAttributes *wa); static void mappingnotify(XEvent *e); static void maprequest(XEvent *e); -static void minimize(Client *c); static void monocle(Monitor *m); static void motionnotify(XEvent *e); static void movemouse(const Arg *arg); @@ -285,7 +282,6 @@ static void togglewin(const Arg *arg); static void unfocus(Client *c, int setfocus); static void unmanage(Client *c, int destroyed); static void unmapnotify(XEvent *e); -static void unminimize(Client *c); static void updatecurrentdesktop(void); static void updatebarpos(Monitor *m); static void updatebars(void); @@ -412,6 +408,9 @@ applyrules(Client *c) class = ch.res_class ? ch.res_class : broken; instance = ch.res_name ? ch.res_name : broken; + if (strstr(class, "Steam") || strstr(class, "steam_app_")) + c->issteam = 1; + for (i = 0; i < LENGTH(rules); i++) { r = &rules[i]; if ((!r->title || strstr(c->name, r->title)) @@ -420,7 +419,6 @@ applyrules(Client *c) { c->isfloating = r->isfloating; c->tags |= r->tags; - c->isgame = r->isgame; if ((r->tags & SPTAGMASK) && r->isfloating) { c->x = c->mon->wx + (c->mon->ww / 2 - WIDTH(c) / 2); c->y = c->mon->wy + (c->mon->wh / 2 - HEIGHT(c) / 2); @@ -802,13 +800,15 @@ configurerequest(XEvent *e) c->bw = ev->border_width; else if (c->isfloating || !selmon->lt[selmon->sellt]->arrange) { m = c->mon; - if (ev->value_mask & CWX) { - c->oldx = c->x; - c->x = m->mx + ev->x; - } - if (ev->value_mask & CWY) { - c->oldy = c->y; - c->y = m->my + ev->y; + if (!c->issteam) { + if (ev->value_mask & CWX) { + c->oldx = c->x; + c->x = m->mx + ev->x; + } + if (ev->value_mask & CWY) { + c->oldy = c->y; + c->y = m->my + ev->y; + } } if (ev->value_mask & CWWidth) { c->oldw = c->w; @@ -1566,29 +1566,6 @@ maprequest(XEvent *e) manage(ev->window, &wa); } -void -minimize(Client *c) -{ - if (!c || MINIMIZED(c)) - return; - - Window w = c->win; - static XWindowAttributes ra, ca; - - // more or less taken directly from blackbox's hide() function - XGrabServer(dpy); - XGetWindowAttributes(dpy, root, &ra); - XGetWindowAttributes(dpy, w, &ca); - // prevent UnmapNotify events - XSelectInput(dpy, root, ra.your_event_mask & ~SubstructureNotifyMask); - XSelectInput(dpy, w, ca.your_event_mask & ~StructureNotifyMask); - XUnmapWindow(dpy, w); - setclientstate(c, IconicState); - XSelectInput(dpy, root, ra.your_event_mask); - XSelectInput(dpy, w, ca.your_event_mask); - XUngrabServer(dpy); -} - void monocle(Monitor *m) { @@ -2159,9 +2136,8 @@ setfocus(Client *c) XA_WINDOW, 32, PropModeReplace, (unsigned char *) &(c->win), 1); } - - if (c->isgame && c->isfullscreen) - unminimize(c); + if (c->issteam) + setclientstate(c, NormalState); sendevent(c->win, wmatom[WMTakeFocus], NoEventMask, wmatom[WMTakeFocus], CurrentTime, 0, 0, 0); } @@ -2688,10 +2664,6 @@ unfocus(Client *c, int setfocus) { if (!c) return; - - if (c->isgame && c->isfullscreen) - minimize(c); - grabbuttons(c, 0); XSetWindowBorder(dpy, c->win, scheme[SchemeNorm][ColBorder].pixel); if (setfocus) { @@ -2746,16 +2718,6 @@ unmapnotify(XEvent *e) } } -void -unminimize(Client *c) -{ - if (!c || !MINIMIZED(c)) - return; - - XMapWindow(dpy, c->win); - setclientstate(c, NormalState); -} - void updatebars(void) { diff --git a/dwm.c.orig b/dwm.c.orig index 4fbf4c0..a2be27f 100644 --- a/dwm.c.orig +++ b/dwm.c.orig @@ -51,7 +51,6 @@ * MAX(0, MIN((y)+(h),(m)->wy+(m)->wh) - MAX((y),(m)->wy))) #define ISVISIBLEONTAG(C, T) ((C->tags & T)) #define ISVISIBLE(C) ISVISIBLEONTAG(C, C->mon->tagset[C->mon->seltags]) -#define MINIMIZED(C) ((getstate(C->win) == IconicState)) #define HIDDEN(C) ((getstate(C->win) == IconicState)) #define MOUSEMASK (BUTTONMASK|PointerMotionMask) #define WIDTH(X) ((X)->w + 2 * (X)->bw) @@ -115,8 +114,6 @@ struct Client { int bw, oldbw; unsigned int tags; int isfixed, isfloating, isurgent, neverfocus, oldstate, isfullscreen; - int issteam; - int isgame; int fakefullscreen; Client *next; Client *snext; @@ -171,7 +168,6 @@ typedef struct { unsigned int tags; int isfloating; int monitor; - int isgame; } Rule; typedef struct Systray Systray; @@ -229,7 +225,6 @@ static void losefullscreen(Client *next); static void manage(Window w, XWindowAttributes *wa); static void mappingnotify(XEvent *e); static void maprequest(XEvent *e); -static void minimize(Client *c); static void monocle(Monitor *m); static void motionnotify(XEvent *e); static void movemouse(const Arg *arg); @@ -286,7 +281,6 @@ static void togglewin(const Arg *arg); static void unfocus(Client *c, int setfocus); static void unmanage(Client *c, int destroyed); static void unmapnotify(XEvent *e); -static void unminimize(Client *c); static void updatecurrentdesktop(void); static void updatebarpos(Monitor *m); static void updatebars(void); @@ -413,9 +407,6 @@ applyrules(Client *c) class = ch.res_class ? ch.res_class : broken; instance = ch.res_name ? ch.res_name : broken; - if (strstr(class, "Steam") || strstr(class, "steam_app_")) - c->issteam = 1; - for (i = 0; i < LENGTH(rules); i++) { r = &rules[i]; if ((!r->title || strstr(c->name, r->title)) @@ -424,7 +415,6 @@ applyrules(Client *c) { c->isfloating = r->isfloating; c->tags |= r->tags; - c->isgame = r->isgame; if ((r->tags & SPTAGMASK) && r->isfloating) { c->x = c->mon->wx + (c->mon->ww / 2 - WIDTH(c) / 2); c->y = c->mon->wy + (c->mon->wh / 2 - HEIGHT(c) / 2); @@ -806,15 +796,13 @@ configurerequest(XEvent *e) c->bw = ev->border_width; else if (c->isfloating || !selmon->lt[selmon->sellt]->arrange) { m = c->mon; - if (!c->issteam) { - if (ev->value_mask & CWX) { - c->oldx = c->x; - c->x = m->mx + ev->x; - } - if (ev->value_mask & CWY) { - c->oldy = c->y; - c->y = m->my + ev->y; - } + if (ev->value_mask & CWX) { + c->oldx = c->x; + c->x = m->mx + ev->x; + } + if (ev->value_mask & CWY) { + c->oldy = c->y; + c->y = m->my + ev->y; } if (ev->value_mask & CWWidth) { c->oldw = c->w; @@ -1572,29 +1560,6 @@ maprequest(XEvent *e) manage(ev->window, &wa); } -void -minimize(Client *c) -{ - if (!c || MINIMIZED(c)) - return; - - Window w = c->win; - static XWindowAttributes ra, ca; - - // more or less taken directly from blackbox's hide() function - XGrabServer(dpy); - XGetWindowAttributes(dpy, root, &ra); - XGetWindowAttributes(dpy, w, &ca); - // prevent UnmapNotify events - XSelectInput(dpy, root, ra.your_event_mask & ~SubstructureNotifyMask); - XSelectInput(dpy, w, ca.your_event_mask & ~StructureNotifyMask); - XUnmapWindow(dpy, w); - setclientstate(c, IconicState); - XSelectInput(dpy, root, ra.your_event_mask); - XSelectInput(dpy, w, ca.your_event_mask); - XUngrabServer(dpy); -} - void monocle(Monitor *m) { @@ -2166,12 +2131,6 @@ setfocus(Client *c) (unsigned char *) &(c->win), 1); } - if (c->isgame && c->isfullscreen) - unminimize(c); - - if (c->issteam) - setclientstate(c, NormalState); - sendevent(c->win, wmatom[WMTakeFocus], NoEventMask, wmatom[WMTakeFocus], CurrentTime, 0, 0, 0); } @@ -2697,10 +2656,6 @@ unfocus(Client *c, int setfocus) { if (!c) return; - - if (c->isgame && c->isfullscreen) - minimize(c); - grabbuttons(c, 0); XSetWindowBorder(dpy, c->win, scheme[SchemeNorm][ColBorder].pixel); if (setfocus) { @@ -2755,16 +2710,6 @@ unmapnotify(XEvent *e) } } -void -unminimize(Client *c) -{ - if (!c || !MINIMIZED(c)) - return; - - XMapWindow(dpy, c->win); - setclientstate(c, NormalState); -} - void updatebars(void) { diff --git a/dwm.c.rej b/dwm.c.rej index 660493a..f62ea2b 100644 --- a/dwm.c.rej +++ b/dwm.c.rej @@ -1,19 +1,19 @@ --- dwm.c +++ dwm.c -@@ -92,7 +92,6 @@ struct Client { +@@ -92,6 +92,7 @@ struct Client { int bw, oldbw; unsigned int tags; int isfixed, isfloating, isurgent, neverfocus, oldstate, isfullscreen; -- int issteam; ++ int issteam; Client *next; Client *snext; Monitor *mon; -@@ -1476,8 +1470,6 @@ setfocus(Client *c) +@@ -1480,6 +1486,8 @@ setfocus(Client *c) XA_WINDOW, 32, PropModeReplace, (unsigned char *) &(c->win), 1); } -- if (c->issteam) -- setclientstate(c, NormalState); ++ if (c->issteam) ++ setclientstate(c, NormalState); sendevent(c, wmatom[WMTakeFocus]); } diff --git a/dwm.o b/dwm.o index f4392cd97d2bf0187708dbd65145a10b2311ef76..4ca39509d61f1989b9b12fce665ee0a722778355 100644 GIT binary patch delta 35195 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 delta 35548 zcmZ{t3w)0C`^WG5*-ciFl>@T#4sh~*+|j&{id(Fr4zsU z{VTr?W`!I=laSLSAr&1og`7!c|LgkR*R_40OV9W9+V|e`{#=Le=|1joul%#zwt08t zHSuK6&Tm$?W%N$lvXU1SUf&sESyonfZc^f+`F(+%IioUKHm)=W<=jnquqk-CWpg|9 zzeh?+)Tqa6s*`bT?9_sq@t@gt1NBX-LiD!onPn)e?r zDM`-l)+j1DcSAOWNhxv5IN8w#o}%fJeu| z85QHV71vYWx0`Bv3;MP1T)xWH?Ik6>7X2F=Q~ZK@_5NMzn?RH`VbQg+ms3S>DJ=V?wyUQut{-NN(dr`}<;cF_Oq{c7ak2P?dA3L`(==!V+bua?>|_)hx+_2b}6iOCB}sy_WR4&K0| zMOOw5n7=g(KES;FS@mfPzMH=_6F*md`ZChot;^w4@w535Z2paqs!xBb&JFHRVM$F8 z!RNfn92u>Whdkgp^oRQQkUN{`o+Rh8T&&HgfB1d;HEi$9A5>b8hS3i!_$jMHa&BA0 zXd~v1-;H7G4 zE_Gzc=$Ov)H|gGFwF48~laVlV*pnHJl5-1|tCPcPsZWOA;c0eVC8yT&WL{7cQk#{F zC@Co^eB<&^+cW1!b#+)f&+h-K7Q^e*I{RN3cNGO~%q^$^HTI>>YBg&3BcAeC)z0Cq zJ%_HSKZm!h8Fs#;Wavnq*l%DF7XR?O>YNrI8GWUsWd2hf?5a=ihn^L8c~j-2H7S4p zaj=LeQftzhdwzaHeV10-)8~}>Gp(Wbi?gNOOYZo3Hu%gaR~-F?YCB@Fr^aekIHH@k z$&YAK4kR32*fZdp;yKNnJ3oiqngrH{YBs$bWd0$J6tWsy24aosVoSDTyyB{sr4Z>){hYwN&FI+7t88&>xnU+V?v2lr>4-To?<2%$H`x>S$z*R7unxI!# zZs+1*hg9bH7Ri%gtf7tDV2Vmt)Qex~4|?rHy$;{w+6luJ9i^5n)#iHP4?pu(VM)nw zb#q!XRdvEWp5BE82@}@ap4?Z|)kiye!oF5<6Zd&KFHn3%& zXZK5(=RG{C{q_ZhueJ%n%Xu)MzvV-#23&AEb?%_5{n$O_KV1srab>CM{a7Qoyr(|sB1)z6Q;7P{jA9BP+V@TrxPtF@^5JQ%|9rT+XUBVY}Go)rPB z274HPEh+WPpK#!azc%zt_gj#``@H&oa-F7)zAY(9EgYPj`%shQMF)!4Lvjod4$hx| zpEdN1jn;>jszy`VhHcycO+B;igvywb(4i69y2rB$$+>Ui#QhdlykQ5@&uG~ucP!3| zrj@JX6?ZwUzM7Kksh6kfWj6Ed{aN+Q?B+R9sFr3n^kn?3)@5dSoPVq4Q}6P$+oT3e z{nE2^NkNlo4Q)@t$Ex@A;hr(u3RX|=WqTGruWn?u_Eg%ZTFe;XS^Jz?JY#0puRqZ9 zJoFc61FgllU9iKRX%C0!zT76-k&b_-jhmMl4?E-8r5=2|m8aP$HT&`Yo{b-=1CJ+# zwf`K(=*<0ah<+l(T>OT2Q=$p__eTv)sWaFy;U0YI8;X?AFUlxTvSKNKSy7=T4 z&%FoKnpsUf#S7Fov+CHNs2j6-);^cK;M|Pzy_U4Vy{T93m_~`c7yN|aE=w()-Mq~S zz$v-ylNVgeitM%McXz56Y^(Zop%$J9BjuMei4-zJUI*1 zT))>p5_WVNu9S|?;MC5jiy>CS$@R7)(rh@}r{sQuR=pOj&xWQJulPhGy>r!pX5h}1 zRXrtl9TJ`zFtlL(=R))F+&_Ly@;#wy`x+sU=eD`n!D`| z>Z3LF>{RvDnx6KXs($|6p1t9!NB(n&^6S|%)z$olc#*TVw!J~MUE9!eqN*CU_Hlcl zDq7oKom>~%B@ZvUp!^G4-7`F5F(it5CL}35W`1Z$rd_cxJSu5tctn@I;b9L{N`epY zeRx<>;m*C56$35@Bh=u62A(SsYF0sGyN+5_;PtnO1OdwZSal1Jc``iA!Zf{z--#Rw z4pus`T?lkXr-Vl(hsTW8sXU{?qq>C0r05Sx5JtyYMm|l^2TB|GdYjlL%Tm7=w1D$f z-4E}vE31?byV`x#k`HU!lhivOzU&LDu3fDDxS1FpF$#j#fNx{eh>yI!4y1NOH9b6H z0I3k+Bd}9Ixqr2_R>JO-YQuWt8i;>seYrn02Ue_6}AMaX!k6lCcTi+07 zXU6(_?JSkQzP6pG_O0(}pHRLHqkIXqFgy$mR*;3;FisRuPg?Yu1{FOL4Tb+R0 zR%I)b?8?(NiR@eVbiute<3or~?&b2eWIvjCOm7YRRtNwrnXtu0nFr0o!i(~8a%kAk zi8vk*uw#3PkJY@jWxY>AD}Cs-tmD*x&BQC?fd@)O>e&u8 zb*I1Z>`5VOb$r4N|6F;T7-?I2@ z8A(D3IqY)dS<%ElALfFl#2XO5Kpf7Dy0j(!zv1rZ4C391S59-mP#h`TJr7b39vSHh zZ_@+~B8MvJE^k9?b-23tx!0cos%=%YvT2->T_bC}=Al*`@i5}kDO%Dv7tkuPo+7S@ z4lH8UDAhym&xHV;**HKLHro;H;Jz%{uCXa-Gyvf9}@qO_@mU3 zZNP1q{+LJ%023EOa9g3z`s*qd47(FC@O$jpMiWlR!s6s{=Vi&2%lRP~s%wcg=G7X$tfZa2)WH z5iW=$ew-RwX|@Y4!)GkR$v&|veuC!XJq4BwN^mP%f3#k5H`XNW5NgHHXYRpNvUhUS z%{}+~W@)pERvfjLnqxhu`hDT`%_B8Ns0&pNsLzv{NGUkgN|g`lJEUe)LwRUFRHs1Q z%8^OsBl%txx!3DEM(Rn5%<5^CwAUMdiPUsb6KQLeclX*D`pny!YSG@7zGhmjY$cM) zBi=?8?e#vtFD#O~9!3Vq%HHQyaiB2a?Qj*pucgY{cZV9guUdsiA+TkI!?k<9^EK>d`|OG4eHA`f_d`$?@tlg37eRT8MjNxe&` zC)HF?Pm|hRsAttGP%n`>L8v!W(E)GDEmB_-YN(!&a@ID%D-z!)c!Y{S==Iei^@>pI zs0>gWkXoOXJomAQS_*0`slA2TMr{YR6RER>ny4;<+MU!lgxX8hFY@~Ole$@`sj6R* zH)SNLMM51z{IKAU68}l?OqCDO9w*hNqd)g?4)JKg=MnEF_(GL*$P2egSpQGg>va9O zuJ`HsB-Xyu5TP0z@RBOJxoT0nE-CvH1k+JGy>d*Kg_iLtQsf`G>uBq5giau8-@wSl8EdZL6fOymnPx*Vgsjy6&Ls zUb-Hk>&d!)QrFMv`ZZm@rR%M_h7o{h$8`Oxu1jr7o|>w2-SU)A*oy56MgmAV(Z_4nWE`d3|hRMAndT~pUhbRDbfj=E0P^$=Z; z)%9$Zajd2NlKy_Ru0PiGZe4$;>(jbEr)$_xAwJwm9{1W_T{qTsTV40l^=MsB(e)f% zKdb8(b-ha0@9TOq*1p0jxMtv3Pvr%;l*6)1+Z@pKF39sG1;Mj>4p(^~;hR7L{$4+^8#&m01Mr>Q_;f&Ze z>d2{95z`;Zao0sp2xXDU)q7`aw_=a8G|`-ac^`f3FY5?2?B?0-9@um_ z7mJ%|=ekEvqO_3}bZbg`4f3IL&)Iv`i1S{kXPj^8+h??9p}yL6WA9g6&U=0EV6e2U zuT(1wwpX3g5z77EGQj2uuW8f!cg*t0@1p{2p3@In-7I_6x7y~ai1TGVGtPY%FwUS0 zt!wfq*bPnn)e9{_-*+Lfz5lz*wD}us4yYCvAG8mu85di(!dqc1=Nh|P9_L2H>)jp5 zVd#!u?B0Xdha==}$A}%A#+P^qO%>PGOl@5;?;;~?((2} z0>kx!VZIvcfz67mv8_1j%G<15uXhB8#@saAb_UwN6yZKs_1wtR5)8=;h)9bON2bRZf zlig?~g2M`Ja6=za`n#KX?q=1Kl0F|XI{D*g|6AQ&I$#cBnW z0cu1L)vK0*+MHDE_bvG111X%U{_y%I87ls8p4Hclm<8aK04F>wUmF}Fa=*?8;SE}8 zx6;+hEx+64YRJtes9_0ToxddEz36r=RhB-?Im8{XF}y>?NJv&{Vs_5+Y9w= zuiw*250Rcv9D62_!NteH{-j4MB%dj!e9sl>j zDchTIF-T+^#tjQk29HT3am?7%$kjNAaHsfi_Nd_8iYdggW%n4Jo$GSEM@caKc{xp|6LqhCG|GXeZDhPi? zaK3r`kKlasxI=L6C%Dom*5b zG0Vfzc+zA<}U8A_+t&ygoSbQR0}OnqgnZ zi7yAss&yCbRqDnAm=}cK48l8g{pUEJ1mPjww0+r(a^h%LxUE6)L3qy~{E;9$CxF9@ za^hD5gfhM@2)7?7>+x6cEia`i20vo(D1(lRvZb_0DQhGxX$?9VybwEu>k`Un zgPWb2?AQ=BWje_ywJ=ueT;ay6JJ+y}HSF`83<&32VaRcYyun$D*>)OoD?>hLWcwOg z!c%+Pu)o8wzodsGzEcnE;qANN1H`dYtqr${PGm)BWL6NjXPlf0FwpO6EB}W^khVsU z&kP=7@b3+79_h}DY&&Sy?(V7EuJ^k=@a-h`qcy;{x9!vWD4;!g>lM*L~P zc?wrJNiYiWUz3d1WTs(V$0!{ibqY0A;q*ud?lJJWt4c z1E>ss)N;P-ZrAdgJLl_$jw#cqdHI6#1>gq3+mQWE!FgQv2@dUoS%Gql1WbCr(a)2@ zfdl<6I5*VSM~5ptBXY;@B98Gp8}Zxsar2itT%jJ^F9Mw<-a~M1P=CQW@h~H?dCfAB z?J+;LiXEo0K%5iIG6E$UJ;)LE9A}~694F6+QwQSo<9)&r4jkw;!B5agyd^j%_`t~s zx4q8Ma66(t+inSB`>C@XZ2bp>%&ET>oWuPl_+o0(CBfSew;qDQgd%s-@-BDEN5b`b zb;GEF$$(A3GV30K(}!i~pws^C9S z|6VY{-DkA-9j88o^RF>v^F05%2*=&ICOEe`bb#(mX>Yh$b%|qdl8y9tyS!{Zc>Syw zfjGftBT$MF=s*zr!-lG=SmY)`so1nOZV{#)4d9$9^0;7D)>8WG2l zC_Tvf;f}SPaNq_#C^+9+3=*8}#|h5%^8{!6Wx(;;qIAyKVNDQ+PX%ZD?*!)_|4bZv zZ0^%%%k14NeqLOS24Qo`8nlSy z+=E2o=wRNjJSgnjP=opi&T$3_&QGO>#Tg0A-6KOdaG;4!kq>TiGlRH2;n>lzQ_mIN z+`I*XbJV3qICEcFF6m)4*A5UDapDDtgJN9@0H!irI3J@&o z6+CM|nP((0*Uuth&ppc%{4bi(<^L4N4|~Sz!XcDa`u_>eJ$O%WPW-Wvz#P$S!hQ^O z>~rAyNuE4C9tjfYTM>v8|LknXUE*&cb3Z~;-GSsZ+>c6vbGQiNIHP7iyg}^mba~l% zjyu>mNT3!$0<|*i6O3J@tFY(OP`?0fETs`fpq@sc2>}jeKOxH$oJV4g5vP|CXTGr4 z2W33ZJSPMm>ZO8ng55#*e&RR<=C$@sVb6bDa>r218iBKnbBxOu9kE1!fQ9FNKCSI2 z!MhP3WpFdj3dgPsj~0*WjsGXZ3N!J^r`9l?tTY>UvjK6mHOH})u;=0GBsj-Oae3KF zXXzu1SL_FSW=LpW>=Ie0r3ypBSjeX^ia7&|!J*M6K z=L|RV;QyC!<55URcSi?XZT`q-w87(z^ivJ~kinmExw|;~8iHdunEW;3Jes`V-WU88 zY#Ed<()Ffv8hN;i0=VBQ{hRco0fJ@m56!V3VQT7bHQq0EeSmvM?9Vggg@XJPm9R|nHjVS)^+v4N+LpdlMIKeT4UojG# zG&sgy90C=TpNS(g_ky#+p5tHj8^Tp^;zjhA!7+DwvXI%WL~uT$ z-Z2&@?)Iq*Cyw)CK6Sb?h}R8JQu|9daG;QJ&^jo$9WRJu zDKX>p<==eR>@BXkZ|A zxL@!rN<3C@UMpFGbAx6R$F-7LdR+0Bl)Pg&6o6PK(rw5FgPVKDVI$Dc(m*98KLxSB zYS<4m?6W6A9$bHN3ffO{8zA`t!MSIviDM(p2IU8_-)z|XhZ`;WJcvV);b8t1g#Fk* zH#9m3Z%-T>O1mYDKa{@0f#-6f;QSXbGX-CU5uxM=&i2m=&h{%Fqy3+UnxB!a6b>Bd zEx~)yVtki4wj<3L(G9|$_nMKDb$cxj=0_)<%W)(iGk*hNy1~ugH_qWeBF;j?-aInC zB<%g1_zlCs{MER8;lTD=4Ev@=j}Ha0KW5k)zZ~K(`PmT6o}CR6=%Qh7{$TVEgPXri zS$+x(4HTYYecFZ3;hMwvv%rh4rf}dMM-#`XF;Bbog+0%4XTdpfZHRM@6Cy+5k>H;u^&pOk%^~e4?DrAVAKw=hd2?q|;XsR|ZZ784D+d4T3@EgY233ilkco3VHwT->e-R#sG-$}!`5MuL1 z=x@#`2xwn$lJ0|FCb(%>;aDuj3QE^$?v}@mn?Fc!p2!U1=sv>OXT}@$cn0EbEp~aA z(*Dk&#Cr_~M4b3b!TIp?owEx2@sp6bAAbnW;jHO_{o73G%L~qFY7j@WDn|dJU0(L1 zYEGOi0&(Jp1m^?;gCrO)>^c5)gBRhsmPhtyBapf4)XfU)F*hh(@HuqcpCLFe)cJzz z6@dHtb0pvpm0g9Dl&mux3P9tFkSzvBA6`laj5y{+MeP}21Vt{%){l#8eeT)AAeauE z;8Eh3)VxOcm$2tJZw28y%HsI>q_5BU-v)80`b1!ZI6;FTJRt~AxsBuaLwV*l!R0%G z@S-3*Y^Lichq`tU9_yb~=74j2BEtQgYH%EG?(xe(_*X%=J==|kG0a7sNZdJ@WQY3A zCr@ih;V$sxZ#5#hKjzm{R`RE?=a$CJaWl&}ZHZ%xM!E+CeZnb8F&y@QNEevaupm6c z;24b0vEvPnLz++(DkyV_qwOf;NaW0+MIeRzAP$qC((&~EgbDW2oIOn(M9q=tFYGD4-x_5&n3twG|LkBrW7tO;bNP+1Z$l&WgW%k;>zYHwJ>Uzn zD%m*p?zEWKSJBxTm)i49K%(HB-~r+|mF8c)Of~JX5xmK2Mt|U!MUM>1+U}AwK4?fhE5=k4K;sFb$X69M7wf} z6a`u#0`cNnCpb6g;BDNg*xl~q>)Of6WB*6*FE-QoABAMH>kn`<@IS%q>7`fFMA zHviVc=hTP4q3luIzs%bVUd8Q`-mT3$k`?p|iWttkVHh*PY4xDp-#+dvc+h^!?&`Ei zwtK?A-g9Op+rv`Kd!TJ@!qN%k@!c!<)0hIvFYZRSq_a~u#jcHEJEhoN?2gV;^l?Rs z9owoxx@(I61_ldHNE=!ScuQw;2y+wsYH|x^l8%X!o%?#YnTGYSV?E_(JI}$k)U+hP zbRU`iN~Y00?O}J|k+n{wGpnaP5*vKHr`_E%Kg4O!3&O!?czIc@e-E98L#c(_VqOvv zg7Xq;ZE*CdP4|fp7#w@SJ?Cppj!!*yN_yE%eH?Ux;f#g{ouuBjw-w(wJ!!}on@0^_ zU4VsSPYQ9K>utwIvmd^^z|^7dhd{5u`nyhkAGptn>0?L0|D zCoRNT4O_dp>UXxDbEA*l1YH|EL_-VP(q{mjX&K?h{GGM##JSnro!)|n(&vGK^Uw|@ zjvHf#s9usT9H8IT`r6$e;D0Y3r$c)JuA(2j@aQ>)N<$N#}R zPq?&qiu%H>5&r}CgF@#2OMXFc{!jA}w77AD!&BN~!An~#IQ>KU##W{fxGTJ)p1Wrj$J3r~|DSdKf97a`{bY_WOu@q3PIf`y+VoFB?q;nvpxGxBS zKXC{PY!1I~Ax?09KSN)^8#w(^VK;5x)eVy;WPXj$8o`%zaqSNZ&ckp)a6U>#R0wRY zlcPWTt+;;{tiFQtdpa_M@I1l!Js@iY=fn9y&EXoE=ab(wazQxo@jRkpU=KJ!oZy_G zuizX%)8u%K&I$5N0XQdEBRD5GC^#p$AUMa5sC0V=^gTkH5I8|!!8t*u;G7^&@X`(l z&hZaca_>=Yp90~)2_h=r-UB3Yf^&ktf|qunltcgV5XTAfN(Gmf_CRn>a8Phga6xd6 zA5legz(3vvaYEn(eFf(PnSyhIJi$vlAUMZQIw%BAa6xcR5D^~OgUimUG&lyi=; zxdm8$;uNLXE$vSodjweVTh`Kr)lMgV1X%5HGH|osS&GJ~bc2^Cj1M{6(dvkE5jV%3 z`XgcUozo9DKR7wKIql@*=2zzwZq7TAqwJRPmqOi^yYGQ<_j_#OHR9vxff61MklW7G zQP7O?bVk}B zcb2Bx)%}z3GnEU%bp*NIF!*DJJ^V9&T{tAC3N!d*!#>X7xZ_Og051c;(g6kM)GWJt z-9%x-ZyHK2HSzZqCj6?RRKfY(M&kwNmtJKH&TlJwTX24N(i)d{DLvxw%a*oDhivQ= z-0ca@FLOHT6lK`np~XVxx2VC}7j(gq!(rl=Yc&y^Uy2qd_$nu9G_1XGbQwwKRNZP^ znp2#qC{H6f1`rmW#Bt6ll&6p!=c=Xh3r>+4JXy$79Q$GL{*b)Wg?!qH2ibp~B)W ziz+Pa-N8vh`9YGih1|%QigF*4^Mu^NS%vaQlD7%DkyB)P9~5#2#~usbqsjY%kjFal zD9qyEAklsUSBS|X*q;Ek==}m{+U511^Ew4cH#uxcR zWPeoH_j8iQL&pb@TrA{4&Qz3#kbFbPL!DJ94=35Yd&Z<)og$QZRGZMwgENQnSjV1# z%Xk7T;|@Zb?8JlSn@W+>g{+(ml=(F#=AAc2hI7^gySi@=d>a8@SooESn0$}31-(&@ zLJi7tBf%c$9Lufpn`}EN=*qdxKmTgLBzs$k@D@>vJBp%ZK{f#k&?Y=+KL! zi(l!^s>zUnUnbj2$f-^d%6y%}H%aVW#j&S=%&(J;qB{+iD>?Bf^ZQ|!3%S_IKp9TC zx`etXUfnE=aKc%Na#}}MUM}QS&UTbHbaLe=y2R$(yPb(-pAft`}wI~4Z8B>-25_G{*UO)`DLClt;-4cvSyCp ze7Ut!aDF-LX2JR8uqOrQ%b-+!NT7Q%OwKQdT}H819uV>{8Rd(Q~FJnZY68hH=%LV5P)prHwx3m5vIKG_~^IH*gMaYTy z3UZ*}kBmfXc)zdURnj%KDpz;69Eb1Y8VSz#eF@d+o}3-{PH~`c;5*Ang7bS;mkZ9% zZ?*}}?^!J_h{RffiTROOs^I*j&Yvj+ezdn(aDL|Yrr`XD{f6NDB)^e2utEIB)Riu8 zS9(ghmF*gy6b|(8&I+Y-G_IAk>#sg;_q09V=cwq#cRJ}a?Wl^`XI=lkBb|9O?RK7+ zdCta}_WhA@^IVRv$kj!yQt-2`C+(;TEWPa{J!!Z19DUZA^`w2j=U@+KBWx>VE_NLf z9ebADzQRHLJ2og$P7-|dta;6uH4ChZA8|I~Hv2!$P2Ar2kJD*3Y$M)qX5lvG4QC^6 z6W&mfi)%R%bKoasiElWa<^anC8{9UT>} -Date: Mon, 1 Jul 2024 22:19:15 +0200 -Subject: [PATCH] Game rule patch - -This patch adds a rule identifying clients as a "game" such that -if the client is in fullscreen and it loses focus (e.g. by moving -to another tag) then it will automatically be minimized (set to -IconicState and unmapped). - -When the client receives focus again (e.g. by going back to its -tag) then it will automaticaly be unminimized (set to NormalState -and mapped). This should address many of the black screen or window -is tiny after having moved to another tag and back again. - -This may conflict with the awesomebar patch which skips hidden -(iconic) windows when selecting which client to focus on, i.e. it -would be there but minimized and will not automatically unminimize. - -The function names are minimize and unminimize compared to the same -functions hide and show in the awesomebar patch. The name change is -due to two reasons; 1) because hide and show do something very -different compared to the showhide function and 2) because when -minimizing and unminimizing we do not want to trigger arrange or -a change in focus (which would affect the stacking order and thus -prevent the window receiving focus when we move back to the previous -tag). ---- - config.def.h | 4 +++- - dwm.c | 47 +++++++++++++++++++++++++++++++++++++++++++++++ - 2 files changed, 50 insertions(+), 1 deletion(-) - -diff --git a/config.def.h b/config.def.h -index 9efa774..9df3c97 100644 ---- a/config.def.h -+++ b/config.def.h -@@ -26,9 +26,11 @@ static const Rule rules[] = { - * WM_CLASS(STRING) = instance, class - * WM_NAME(STRING) = title - */ -- /* class instance title tags mask isfloating monitor */ -+ /* class instance title tags mask isfloating monitor isgame */ - { "Gimp", NULL, NULL, 0, 1, -1 }, - { "Firefox", NULL, NULL, 1 << 8, 0, -1 }, -+ { "Steam", NULL, NULL, 0, 0, -1, 1 }, -+ { "steam_app",NULL, NULL, 0, 0, -1, 1 }, - }; - - /* layout(s) */ -diff --git a/dwm.c b/dwm.c -index 1443802..29de39a 100644 ---- a/dwm.c -+++ b/dwm.c -@@ -50,6 +50,7 @@ - #define INTERSECT(x,y,w,h,m) (MAX(0, MIN((x)+(w),(m)->wx+(m)->ww) - MAX((x),(m)->wx)) \ - * MAX(0, MIN((y)+(h),(m)->wy+(m)->wh) - MAX((y),(m)->wy))) - #define ISVISIBLE(C) ((C->tags & C->mon->tagset[C->mon->seltags])) -+#define MINIMIZED(C) ((getstate(C->win) == IconicState)) - #define MOUSEMASK (BUTTONMASK|PointerMotionMask) - #define WIDTH(X) ((X)->w + 2 * (X)->bw) - #define HEIGHT(X) ((X)->h + 2 * (X)->bw) -@@ -92,6 +93,7 @@ struct Client { - int bw, oldbw; - unsigned int tags; - int isfixed, isfloating, isurgent, neverfocus, oldstate, isfullscreen; -+ int isgame; - Client *next; - Client *snext; - Monitor *mon; -@@ -138,6 +140,7 @@ typedef struct { - unsigned int tags; - int isfloating; - int monitor; -+ int isgame; - } Rule; - - /* function declarations */ -@@ -180,6 +183,7 @@ static void killclient(const Arg *arg); - static void manage(Window w, XWindowAttributes *wa); - static void mappingnotify(XEvent *e); - static void maprequest(XEvent *e); -+static void minimize(Client *c); - static void monocle(Monitor *m); - static void motionnotify(XEvent *e); - static void movemouse(const Arg *arg); -@@ -215,6 +219,7 @@ static void toggleview(const Arg *arg); - static void unfocus(Client *c, int setfocus); - static void unmanage(Client *c, int destroyed); - static void unmapnotify(XEvent *e); -+static void unminimize(Client *c); - static void updatebarpos(Monitor *m); - static void updatebars(void); - static void updateclientlist(void); -@@ -298,6 +303,7 @@ applyrules(Client *c) - { - c->isfloating = r->isfloating; - c->tags |= r->tags; -+ c->isgame = r->isgame; - for (m = mons; m && m->num != r->monitor; m = m->next); - if (m) - c->mon = m; -@@ -1109,6 +1115,29 @@ maprequest(XEvent *e) - manage(ev->window, &wa); - } - -+void -+minimize(Client *c) -+{ -+ if (!c || MINIMIZED(c)) -+ return; -+ -+ Window w = c->win; -+ static XWindowAttributes ra, ca; -+ -+ // more or less taken directly from blackbox's hide() function -+ XGrabServer(dpy); -+ XGetWindowAttributes(dpy, root, &ra); -+ XGetWindowAttributes(dpy, w, &ca); -+ // prevent UnmapNotify events -+ XSelectInput(dpy, root, ra.your_event_mask & ~SubstructureNotifyMask); -+ XSelectInput(dpy, w, ca.your_event_mask & ~StructureNotifyMask); -+ XUnmapWindow(dpy, w); -+ setclientstate(c, IconicState); -+ XSelectInput(dpy, root, ra.your_event_mask); -+ XSelectInput(dpy, w, ca.your_event_mask); -+ XUngrabServer(dpy); -+} -+ - void - monocle(Monitor *m) - { -@@ -1475,6 +1504,10 @@ setfocus(Client *c) - XA_WINDOW, 32, PropModeReplace, - (unsigned char *) &(c->win), 1); - } -+ -+ if (c->isgame && c->isfullscreen) -+ unminimize(c); -+ - sendevent(c, wmatom[WMTakeFocus]); - } - -@@ -1766,6 +1799,10 @@ unfocus(Client *c, int setfocus) - { - if (!c) - return; -+ -+ if (c->isgame && c->isfullscreen) -+ minimize(c); -+ - grabbuttons(c, 0); - XSetWindowBorder(dpy, c->win, scheme[SchemeNorm][ColBorder].pixel); - if (setfocus) { -@@ -1814,6 +1851,16 @@ unmapnotify(XEvent *e) - } - } - -+void -+unminimize(Client *c) -+{ -+ if (!c || !MINIMIZED(c)) -+ return; -+ -+ XMapWindow(dpy, c->win); -+ setclientstate(c, NormalState); -+} -+ - void - updatebars(void) - { --- -2.50.1 - diff --git a/patches/dwm-steam-6.6.diff b/patches/dwm-steam-6.6.diff new file mode 100644 index 0000000..c6f5fd7 --- /dev/null +++ b/patches/dwm-steam-6.6.diff @@ -0,0 +1,72 @@ +From df7d9a685f38b64b8087faa3c72f05acf0190383 Mon Sep 17 00:00:00 2001 +From: Bakkeby +Date: Wed, 26 Jun 2024 23:06:37 +0200 +Subject: [PATCH] Steam patch + +Steam, and steam windows (games), trigger a ConfigureNotify request every time the window +gets focus. More so, the configure event passed along from Steam tends to have the wrong +x and y co-ordinates which can make the window, if floating, jump around the screen. + +This patch works around this age-old issue by ignoring the x and y co-ordinates for +ConfigureNotify requests relating to Steam windows. +--- + dwm.c | 22 +++++++++++++++------- + 1 file changed, 15 insertions(+), 7 deletions(-) + +diff --git a/dwm.c b/dwm.c +index 1443802..d99a6fb 100644 +--- a/dwm.c ++++ b/dwm.c +@@ -92,6 +92,7 @@ struct Client { + int bw, oldbw; + unsigned int tags; + int isfixed, isfloating, isurgent, neverfocus, oldstate, isfullscreen; ++ int issteam; + Client *next; + Client *snext; + Monitor *mon; +@@ -290,6 +291,9 @@ applyrules(Client *c) + class = ch.res_class ? ch.res_class : broken; + instance = ch.res_name ? ch.res_name : broken; + ++ if (strstr(class, "Steam") || strstr(class, "steam_app_")) ++ c->issteam = 1; ++ + for (i = 0; i < LENGTH(rules); i++) { + r = &rules[i]; + if ((!r->title || strstr(c->name, r->title)) +@@ -590,13 +594,15 @@ configurerequest(XEvent *e) + c->bw = ev->border_width; + else if (c->isfloating || !selmon->lt[selmon->sellt]->arrange) { + m = c->mon; +- if (ev->value_mask & CWX) { +- c->oldx = c->x; +- c->x = m->mx + ev->x; +- } +- if (ev->value_mask & CWY) { +- c->oldy = c->y; +- c->y = m->my + ev->y; ++ if (!c->issteam) { ++ if (ev->value_mask & CWX) { ++ c->oldx = c->x; ++ c->x = m->mx + ev->x; ++ } ++ if (ev->value_mask & CWY) { ++ c->oldy = c->y; ++ c->y = m->my + ev->y; ++ } + } + if (ev->value_mask & CWWidth) { + c->oldw = c->w; +@@ -1475,6 +1481,8 @@ setfocus(Client *c) + XA_WINDOW, 32, PropModeReplace, + (unsigned char *) &(c->win), 1); + } ++ if (c->issteam) ++ setclientstate(c, NormalState); + sendevent(c, wmatom[WMTakeFocus]); + } + +-- +2.50.1 +