From 98d969c33385b23539d08b105a7adc2f870c7a30 Mon Sep 17 00:00:00 2001 From: bjarke-cachy-btw Date: Wed, 17 Jun 2026 12:43:37 +0200 Subject: [PATCH] add games patch --- config.def.h.rej | 24 ++--- config.h | 5 +- dwm | Bin 95760 -> 95824 bytes dwm.c | 47 ++++++++++ dwm.c.orig | 98 +++++++++++++++++++++ dwm.c.rej | 39 +++++++-- dwm.o | Bin 89048 -> 90328 bytes patches/dwm-games-6.6.diff | 173 +++++++++++++++++++++++++++++++++++++ 8 files changed, 367 insertions(+), 19 deletions(-) create mode 100644 patches/dwm-games-6.6.diff diff --git a/config.def.h.rej b/config.def.h.rej index dd1a041..36b8c7c 100644 --- a/config.def.h.rej +++ b/config.def.h.rej @@ -1,13 +1,15 @@ --- config.def.h +++ config.def.h -@@ -67,6 +67,10 @@ static const Key keys[] = { - { MODKEY, XK_b, togglebar, {0} }, - { MODKEY, XK_j, focusstack, {.i = +1 } }, - { MODKEY, XK_k, focusstack, {.i = -1 } }, -+ { MODKEY|ControlMask, XK_Left, placedir, {.i = 0 } }, // left -+ { MODKEY|ControlMask, XK_Right, placedir, {.i = 1 } }, // right -+ { MODKEY|ControlMask, XK_Up, placedir, {.i = 2 } }, // up -+ { MODKEY|ControlMask, XK_Down, placedir, {.i = 3 } }, // down - { MODKEY, XK_i, incnmaster, {.i = +1 } }, - { MODKEY, XK_d, incnmaster, {.i = -1 } }, - { MODKEY, XK_h, setmfact, {.f = -0.05} }, +@@ -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/config.h b/config.h index 511fb5f..3d86b9d 100644 --- a/config.h +++ b/config.h @@ -52,7 +52,7 @@ static const Rule rules[] = { * WM_CLASS(STRING) = instance, class * WM_NAME(STRING) = title */ - /* class instance title tags mask isfloating isterminal isswallow monitor */ + /* class instance title tags mask isfloating isterminal isswallow monitor isgame */ { "Playground", NULL, NULL, 0, 1, 0, -1 -1 }, { "steam", NULL, NULL, 1 << 1, 0, 0, -1 -1 }, @@ -63,6 +63,9 @@ static const Rule rules[] = { { NULL, "spterm", NULL, SPTAG(0), 1, 0, 0, -1 }, { NULL, "spfm", NULL, SPTAG(1), 1, 0, 0, -1 }, { NULL, "keepassxc", NULL, SPTAG(2), 0, 0, 0, -1 }, + + { "Steam", NULL, NULL, 1 << 4, 0, 0, -1 -1, 0 }, + { "steam_app", NULL, NULL, 1 << 5, 0, 0, -1 -1, 0 }, }; /* layout(s) */ diff --git a/dwm b/dwm index e43878b7b4eb143119aac7bb433f7625d735f12f..7945ac678599394a99bc5a0d63683c44bdd5669d 100755 GIT binary patch delta 26764 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 - 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 MOUSEMASK (BUTTONMASK|PointerMotionMask) #define WIDTH(X) ((X)->w + 2 * (X)->bw) #define HEIGHT(X) ((X)->h + 2 * (X)->bw) @@ -118,6 +119,7 @@ struct Client { int bw, oldbw; unsigned int tags; int isfixed, isfloating, isurgent, neverfocus, oldstate, isfullscreen, isterminal, noswallow; + int isgame; pid_t pid; Client *next; Client *snext; @@ -172,6 +174,7 @@ typedef struct { int isterminal; int noswallow; int monitor; + int isgame; } Rule; typedef struct Systray Systray; @@ -223,6 +226,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); @@ -268,6 +272,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); @@ -411,6 +416,7 @@ applyrules(Client *c) c->noswallow = r->noswallow; 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); @@ -1469,6 +1475,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) { @@ -1997,6 +2026,10 @@ setfocus(Client *c) XA_WINDOW, 32, PropModeReplace, (unsigned char *) &(c->win), 1); } + + if (c->isgame && c->isfullscreen) + unminimize(c); + sendevent(c->win, wmatom[WMTakeFocus], NoEventMask, wmatom[WMTakeFocus], CurrentTime, 0, 0, 0); } @@ -2359,6 +2392,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) { @@ -2430,6 +2467,16 @@ 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 11f1677..938ba3e 100644 --- a/dwm.c.orig +++ b/dwm.c.orig @@ -228,6 +228,7 @@ static void motionnotify(XEvent *e); static void movemouse(const Arg *arg); static Client *nexttagged(Client *c); static Client *nexttiled(Client *c); +static void placedir(const Arg *arg); static void pop(Client *c); static void propertynotify(XEvent *e); static void quit(const Arg *arg); @@ -1577,6 +1578,103 @@ nexttiled(Client *c) return c; } +void +placedir(const Arg *arg) +{ + Client *s = selmon->sel, *f = NULL, *c, *next, *fprior, *sprior; + + if (!s || s->isfloating) + return; + + unsigned int score = -1; + unsigned int client_score; + int dist; + int dirweight = 20; + + next = s->next; + if (!next) + next = s->mon->clients; + for (c = next; c != s; c = next) { + + next = c->next; + if (!next) + next = s->mon->clients; + + if (!ISVISIBLE(c)) // || HIDDEN(c) + continue; + + switch (arg->i) { + case 0: // left + dist = s->x - c->x - c->w; + client_score = + dirweight * MIN(abs(dist), abs(dist + s->mon->ww)) + + abs(s->y - c->y); + break; + case 1: // right + dist = c->x - s->x - s->w; + client_score = + dirweight * MIN(abs(dist), abs(dist + s->mon->ww)) + + abs(c->y - s->y); + break; + case 2: // up + dist = s->y - c->y - c->h; + client_score = + dirweight * MIN(abs(dist), abs(dist + s->mon->wh)) + + abs(s->x - c->x); + break; + default: + case 3: // down + dist = c->y - s->y - s->h; + client_score = + dirweight * MIN(abs(dist), abs(dist + s->mon->wh)) + + abs(c->x - s->x); + break; + } + + if (((arg->i == 0 || arg->i == 2) && client_score <= score) || client_score < score) { + score = client_score; + f = c; + } + } + + if (f && f != s) { + for (fprior = f->mon->clients; fprior && fprior->next != f; fprior = fprior->next); + for (sprior = s->mon->clients; sprior && sprior->next != s; sprior = sprior->next); + + if (s == fprior) { + next = f->next; + if (sprior) + sprior->next = f; + else + f->mon->clients = f; + f->next = s; + s->next = next; + } else if (f == sprior) { + next = s->next; + if (fprior) + fprior->next = s; + else + s->mon->clients = s; + s->next = f; + f->next = next; + } else { // clients are not adjacent to each other + next = f->next; + f->next = s->next; + s->next = next; + if (fprior) + fprior->next = s; + else + s->mon->clients = s; + if (sprior) + sprior->next = f; + else + f->mon->clients = f; + } + + arrange(f->mon); + } +} + void pop(Client *c) { diff --git a/dwm.c.rej b/dwm.c.rej index 80303f8..aaafc5a 100644 --- a/dwm.c.rej +++ b/dwm.c.rej @@ -1,12 +1,37 @@ --- dwm.c +++ dwm.c -@@ -723,6 +790,9 @@ destroynotify(XEvent *e) - - if ((c = wintoclient(ev->window))) - unmanage(c, 1); +@@ -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; +@@ -301,6 +306,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; +@@ -1501,6 +1530,10 @@ setfocus(Client *c) + XA_WINDOW, 32, PropModeReplace, + (unsigned char *) &(c->win), 1); + } + -+ else if ((c = swallowingclient(ev->window))) -+ unmanage(c->swallowing, 1); ++ if (c->isgame && c->isfullscreen) ++ unminimize(c); ++ + sendevent(c, wmatom[WMTakeFocus]); } - void diff --git a/dwm.o b/dwm.o index 227e964e4da4b902a48b98babc1ba112c3be323e..f828161cf652834264dc1f232ba7da3e0a8bfee0 100644 GIT binary patch literal 90328 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 literal 89048 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 diff --git a/patches/dwm-games-6.6.diff b/patches/dwm-games-6.6.diff new file mode 100644 index 0000000..ce4bbdb --- /dev/null +++ b/patches/dwm-games-6.6.diff @@ -0,0 +1,173 @@ +From d06cefd6e1f8b5cd9bdfe694b7dc16da1f00d83e Mon Sep 17 00:00:00 2001 +From: Bakkeby +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 +