From 075e67cbea3cd422b8ae04392b5794ea8322c5d4 Mon Sep 17 00:00:00 2001 From: meftimes Date: Wed, 9 Oct 2024 15:04:06 -0400 Subject: [PATCH] add swallow patch --- config.def.h | 15 +- config.mk | 3 +- drw.o | Bin 11000 -> 11000 bytes dwm | Bin 90560 -> 91160 bytes dwm.c | 235 +++++++++++++++++++- dwm.o | Bin 79296 -> 82368 bytes patches/dwm-swallow-6.3.diff | 412 +++++++++++++++++++++++++++++++++++ util.o | Bin 2224 -> 2224 bytes 8 files changed, 652 insertions(+), 13 deletions(-) create mode 100644 patches/dwm-swallow-6.3.diff diff --git a/config.def.h b/config.def.h index 073660a..cc31ad6 100644 --- a/config.def.h +++ b/config.def.h @@ -8,6 +8,7 @@ /* appearance */ static unsigned int borderpx = 1; /* border pixel of windows */ static unsigned int snap = 32; /* snap pixel */ +static const int swallowfloating = 0; /* 1 means swallow floating windows by default */ static int showbar = 1; /* 0 means no bar */ static int topbar = 1; /* 0 means bottom bar */ static char font[] = "monospace:size=10"; @@ -44,12 +45,14 @@ static const Rule rules[] = { * WM_CLASS(STRING) = instance, class * WM_NAME(STRING) = title */ - /* class instance title tags mask isfloating monitor */ - { "FreeTube", NULL, NULL, 1 << 1, 0, -1 }, - { "LibreWolf", NULL, NULL, 1 << 2, 0, -1 }, - { "Beeper", NULL, NULL, 1 << 3, 0, -1 }, - { NULL, "spterm", NULL, SPTAG(0), 1, -1 }, - { NULL, "spcalc", NULL, SPTAG(1), 1, -1 }, + /* class instance title tags mask isfloating isterminal noswallow monitor */ + { "FreeTube", NULL, NULL, 1 << 1, 0, 0, 0, -1 }, + { "LibreWolf", NULL, NULL, 1 << 2, 0, 0, 0, -1 }, + { "Beeper", NULL, NULL, 1 << 3, 0, 0, 0, -1 }, + { "St", NULL, NULL, 0, 0, 1, 0, -1 }, + { NULL, NULL, "Event Tester", 0, 0, 0, 1, -1 }, /* xev */ + { NULL, "spterm", NULL, SPTAG(0), 1, 1, 0, -1 }, + { NULL, "spcalc", NULL, SPTAG(1), 1, 1, 0, -1 }, }; /* layout(s) */ diff --git a/config.mk b/config.mk index 8efca9a..a933c0b 100644 --- a/config.mk +++ b/config.mk @@ -20,10 +20,11 @@ FREETYPEINC = /usr/include/freetype2 # OpenBSD (uncomment) #FREETYPEINC = ${X11INC}/freetype2 #MANPREFIX = ${PREFIX}/man +#KVMLIB = -lkvm # includes and libs INCS = -I${X11INC} -I${FREETYPEINC} -LIBS = -L${X11LIB} -lX11 ${XINERAMALIBS} ${FREETYPELIBS} +LIBS = -L${X11LIB} -lX11 ${XINERAMALIBS} ${FREETYPELIBS} -lX11-xcb -lxcb -lxcb-res ${KVMLIB} # flags CPPFLAGS = -D_DEFAULT_SOURCE -D_BSD_SOURCE -D_XOPEN_SOURCE=700L -DVERSION=\"${VERSION}\" ${XINERAMAFLAGS} diff --git a/drw.o b/drw.o index 6e37c6a5203a60c6d1452401519e3c9d2046144c..249df4c15338687c02fcb827f26766f348397455 100644 GIT binary patch delta 25 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 APyhe` literal 90560 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 GRsRb&Ee!_% diff --git a/dwm.c b/dwm.c index e6b9d60..e46111e 100644 --- a/dwm.c +++ b/dwm.c @@ -41,6 +41,12 @@ #include #endif /* XINERAMA */ #include +#include +#include +#ifdef __OpenBSD__ +#include +#include +#endif /* __OpenBSD */ #include "drw.h" #include "util.h" @@ -96,9 +102,11 @@ struct Client { int basew, baseh, incw, inch, maxw, maxh, minw, minh, hintsvalid; int bw, oldbw; unsigned int tags; - int isfixed, isfloating, isurgent, neverfocus, oldstate, isfullscreen; + int isfixed, isfloating, isurgent, neverfocus, oldstate, isfullscreen, isterminal, noswallow; + pid_t pid; Client *next; Client *snext; + Client *swallowing; Monitor *mon; Window win; }; @@ -142,6 +150,8 @@ typedef struct { const char *title; unsigned int tags; int isfloating; + int isterminal; + int noswallow; int monitor; } Rule; @@ -257,6 +267,12 @@ static void bstack(Monitor *m); static void load_xresources(void); static void resource_load(XrmDatabase db, char *name, enum resource_type rtype, void *dst); +static pid_t getparentprocess(pid_t p); +static int isdescprocess(pid_t p, pid_t c); +static Client *swallowingclient(Window w); +static Client *termforwin(const Client *c); +static pid_t winpid(Window w); + /* variables */ static const char broken[] = "broken"; static char stext[256]; @@ -294,6 +310,8 @@ static Drw *drw; static Monitor *mons, *selmon; static Window root, wmcheckwin; +static xcb_connection_t *xcon; + /* configuration, allows nested code to access above variables */ #include "config.h" @@ -323,6 +341,8 @@ applyrules(Client *c) && (!r->class || strstr(class, r->class)) && (!r->instance || strstr(instance, r->instance))) { + c->isterminal = r->isterminal; + c->noswallow = r->noswallow; c->isfloating = r->isfloating; c->tags |= r->tags; if ((r->tags & SPTAGMASK) && r->isfloating) { @@ -446,6 +466,53 @@ attachstack(Client *c) c->mon->stack = c; } +void +swallow(Client *p, Client *c) +{ + + if (c->noswallow || c->isterminal) + return; + if (c->noswallow && !swallowfloating && c->isfloating) + return; + + detach(c); + detachstack(c); + + setclientstate(c, WithdrawnState); + XUnmapWindow(dpy, p->win); + + p->swallowing = c; + c->mon = p->mon; + + Window w = p->win; + p->win = c->win; + c->win = w; + updatetitle(p); + XMoveResizeWindow(dpy, p->win, p->x, p->y, p->w, p->h); + arrange(p->mon); + configure(p); + updateclientlist(); +} + +void +unswallow(Client *c) +{ + c->win = c->swallowing->win; + + free(c->swallowing); + c->swallowing = NULL; + + /* unfullscreen the client */ + setfullscreen(c, 0); + updatetitle(c); + arrange(c->mon); + XMapWindow(dpy, c->win); + XMoveResizeWindow(dpy, c->win, c->x, c->y, c->w, c->h); + setclientstate(c, NormalState); + focus(NULL); + arrange(c->mon); +} + void buttonpress(XEvent *e) { @@ -707,6 +774,9 @@ destroynotify(XEvent *e) if ((c = wintoclient(ev->window))) unmanage(c, 1); + + else if ((c = swallowingclient(ev->window))) + unmanage(c->swallowing, 1); } void @@ -1121,12 +1191,13 @@ killclient(const Arg *arg) void manage(Window w, XWindowAttributes *wa) { - Client *c, *t = NULL; + Client *c, *t = NULL, *term = NULL; Window trans = None; XWindowChanges wc; c = ecalloc(1, sizeof(Client)); c->win = w; + c->pid = winpid(w); /* geometry */ c->x = c->oldx = wa->x; c->y = c->oldy = wa->y; @@ -1141,6 +1212,7 @@ manage(Window w, XWindowAttributes *wa) } else { c->mon = selmon; applyrules(c); + term = termforwin(c); } if (c->x + WIDTH(c) > c->mon->wx + c->mon->ww) @@ -1175,6 +1247,8 @@ manage(Window w, XWindowAttributes *wa) c->mon->sel = c; arrange(c->mon); XMapWindow(dpy, c->win); + if (term) + swallow(term, c); focus(NULL); } @@ -1907,6 +1981,20 @@ unmanage(Client *c, int destroyed) Monitor *m = c->mon; XWindowChanges wc; + if (c->swallowing) { + unswallow(c); + return; + } + + Client *s = swallowingclient(c->win); + if (s) { + free(s->swallowing); + s->swallowing = NULL; + arrange(m); + focus(NULL); + return; + } + detach(c); detachstack(c); if (!destroyed) { @@ -1922,9 +2010,12 @@ unmanage(Client *c, int destroyed) XUngrabServer(dpy); } free(c); - focus(NULL); - updateclientlist(); - arrange(m); + + if (!s) { + arrange(m); + focus(NULL); + updateclientlist(); + } } void @@ -2205,6 +2296,136 @@ view(const Arg *arg) arrange(selmon); } +pid_t +winpid(Window w) +{ + + pid_t result = 0; + +#ifdef __linux__ + xcb_res_client_id_spec_t spec = {0}; + spec.client = w; + spec.mask = XCB_RES_CLIENT_ID_MASK_LOCAL_CLIENT_PID; + + xcb_generic_error_t *e = NULL; + xcb_res_query_client_ids_cookie_t c = xcb_res_query_client_ids(xcon, 1, &spec); + xcb_res_query_client_ids_reply_t *r = xcb_res_query_client_ids_reply(xcon, c, &e); + + if (!r) + return (pid_t)0; + + xcb_res_client_id_value_iterator_t i = xcb_res_query_client_ids_ids_iterator(r); + for (; i.rem; xcb_res_client_id_value_next(&i)) { + spec = i.data->spec; + if (spec.mask & XCB_RES_CLIENT_ID_MASK_LOCAL_CLIENT_PID) { + uint32_t *t = xcb_res_client_id_value_value(i.data); + result = *t; + break; + } + } + + free(r); + + if (result == (pid_t)-1) + result = 0; + +#endif /* __linux__ */ + +#ifdef __OpenBSD__ + Atom type; + int format; + unsigned long len, bytes; + unsigned char *prop; + pid_t ret; + + if (XGetWindowProperty(dpy, w, XInternAtom(dpy, "_NET_WM_PID", 0), 0, 1, False, AnyPropertyType, &type, &format, &len, &bytes, &prop) != Success || !prop) + return 0; + + ret = *(pid_t*)prop; + XFree(prop); + result = ret; + +#endif /* __OpenBSD__ */ + return result; +} + +pid_t +getparentprocess(pid_t p) +{ + unsigned int v = 0; + +#ifdef __linux__ + FILE *f; + char buf[256]; + snprintf(buf, sizeof(buf) - 1, "/proc/%u/stat", (unsigned)p); + + if (!(f = fopen(buf, "r"))) + return 0; + + fscanf(f, "%*u %*s %*c %u", &v); + fclose(f); +#endif /* __linux__*/ + +#ifdef __OpenBSD__ + int n; + kvm_t *kd; + struct kinfo_proc *kp; + + kd = kvm_openfiles(NULL, NULL, NULL, KVM_NO_FILES, NULL); + if (!kd) + return 0; + + kp = kvm_getprocs(kd, KERN_PROC_PID, p, sizeof(*kp), &n); + v = kp->p_ppid; +#endif /* __OpenBSD__ */ + + return (pid_t)v; +} + +int +isdescprocess(pid_t p, pid_t c) +{ + while (p != c && c != 0) + c = getparentprocess(c); + + return (int)c; +} + +Client * +termforwin(const Client *w) +{ + Client *c; + Monitor *m; + + if (!w->pid || w->isterminal) + return NULL; + + for (m = mons; m; m = m->next) { + for (c = m->clients; c; c = c->next) { + if (c->isterminal && !c->swallowing && c->pid && isdescprocess(c->pid, w->pid)) + return c; + } + } + + return NULL; +} + +Client * +swallowingclient(Window w) +{ + Client *c; + Monitor *m; + + for (m = mons; m; m = m->next) { + for (c = m->clients; c; c = c->next) { + if (c->swallowing && c->swallowing->win == w) + return c; + } + } + + return NULL; +} + Client * wintoclient(Window w) { @@ -2348,12 +2569,14 @@ main(int argc, char *argv[]) fputs("warning: no locale support\n", stderr); if (!(dpy = XOpenDisplay(NULL))) die("dwm: cannot open display"); + if (!(xcon = XGetXCBConnection(dpy))) + die("dwm: cannot get xcb connection\n"); checkotherwm(); XrmInitialize(); load_xresources(); setup(); #ifdef __OpenBSD__ - if (pledge("stdio rpath proc exec", NULL) == -1) + if (pledge("stdio rpath proc exec ps", NULL) == -1) die("pledge"); #endif /* __OpenBSD__ */ scan(); diff --git a/dwm.o b/dwm.o index 04a3cef243a65db800147f9419de271b8bbe54cb..6bb588258e3730e820c2ae31eb505a3cf1389537 100644 GIT binary patch literal 82368 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 H^ZEY|hu9Z9 literal 79296 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 +Date: Sat, 10 Sep 2022 12:51:09 +0200 +Subject: [PATCH] 6.3 swallow patch + +--- + config.def.h | 9 +- + config.mk | 3 +- + dwm.c | 235 +++++++++++++++++++++++++++++++++++++++++++++++++-- + 3 files changed, 237 insertions(+), 10 deletions(-) + +diff --git a/config.def.h b/config.def.h +index 061ad662f82a..0b2b8ffd30d5 100644 +--- a/config.def.h ++++ b/config.def.h +@@ -3,6 +3,7 @@ + /* appearance */ + static const unsigned int borderpx = 1; /* border pixel of windows */ + static const unsigned int snap = 32; /* snap pixel */ ++static const int swallowfloating = 0; /* 1 means swallow floating windows by default */ + static const int showbar = 1; /* 0 means no bar */ + static const int topbar = 1; /* 0 means bottom bar */ + static const char *fonts[] = { "monospace:size=10" }; +@@ -26,9 +27,11 @@ 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 isterminal noswallow monitor */ ++ { "Gimp", NULL, NULL, 0, 1, 0, 0, -1 }, ++ { "Firefox", NULL, NULL, 1 << 8, 0, 0, -1, -1 }, ++ { "St", NULL, NULL, 0, 0, 1, 0, -1 }, ++ { NULL, NULL, "Event Tester", 0, 0, 0, 1, -1 }, /* xev */ + }; + + /* layout(s) */ +diff --git a/config.mk b/config.mk +index 81c493ef4aff..52d1ebf30bec 100644 +--- a/config.mk ++++ b/config.mk +@@ -20,10 +20,11 @@ FREETYPEINC = /usr/include/freetype2 + # OpenBSD (uncomment) + #FREETYPEINC = ${X11INC}/freetype2 + #MANPREFIX = ${PREFIX}/man ++#KVMLIB = -lkvm + + # includes and libs + INCS = -I${X11INC} -I${FREETYPEINC} +-LIBS = -L${X11LIB} -lX11 ${XINERAMALIBS} ${FREETYPELIBS} ++LIBS = -L${X11LIB} -lX11 ${XINERAMALIBS} ${FREETYPELIBS} -lX11-xcb -lxcb -lxcb-res ${KVMLIB} + + # flags + CPPFLAGS = -D_DEFAULT_SOURCE -D_BSD_SOURCE -D_POSIX_C_SOURCE=200809L -DVERSION=\"${VERSION}\" ${XINERAMAFLAGS} +diff --git a/dwm.c b/dwm.c +index e5efb6a22806..e68294b6b679 100644 +--- a/dwm.c ++++ b/dwm.c +@@ -40,6 +40,12 @@ + #include + #endif /* XINERAMA */ + #include ++#include ++#include ++#ifdef __OpenBSD__ ++#include ++#include ++#endif /* __OpenBSD */ + + #include "drw.h" + #include "util.h" +@@ -92,9 +98,11 @@ struct Client { + int basew, baseh, incw, inch, maxw, maxh, minw, minh, hintsvalid; + int bw, oldbw; + unsigned int tags; +- int isfixed, isfloating, isurgent, neverfocus, oldstate, isfullscreen; ++ int isfixed, isfloating, isurgent, neverfocus, oldstate, isfullscreen, isterminal, noswallow; ++ pid_t pid; + Client *next; + Client *snext; ++ Client *swallowing; + Monitor *mon; + Window win; + }; +@@ -138,6 +146,8 @@ typedef struct { + const char *title; + unsigned int tags; + int isfloating; ++ int isterminal; ++ int noswallow; + int monitor; + } Rule; + +@@ -235,6 +245,12 @@ static int xerrordummy(Display *dpy, XErrorEvent *ee); + static int xerrorstart(Display *dpy, XErrorEvent *ee); + static void zoom(const Arg *arg); + ++static pid_t getparentprocess(pid_t p); ++static int isdescprocess(pid_t p, pid_t c); ++static Client *swallowingclient(Window w); ++static Client *termforwin(const Client *c); ++static pid_t winpid(Window w); ++ + /* variables */ + static const char broken[] = "broken"; + static char stext[256]; +@@ -269,6 +285,8 @@ static Drw *drw; + static Monitor *mons, *selmon; + static Window root, wmcheckwin; + ++static xcb_connection_t *xcon; ++ + /* configuration, allows nested code to access above variables */ + #include "config.h" + +@@ -298,6 +316,8 @@ applyrules(Client *c) + && (!r->class || strstr(class, r->class)) + && (!r->instance || strstr(instance, r->instance))) + { ++ c->isterminal = r->isterminal; ++ c->noswallow = r->noswallow; + c->isfloating = r->isfloating; + c->tags |= r->tags; + for (m = mons; m && m->num != r->monitor; m = m->next); +@@ -416,6 +436,53 @@ attachstack(Client *c) + c->mon->stack = c; + } + ++void ++swallow(Client *p, Client *c) ++{ ++ ++ if (c->noswallow || c->isterminal) ++ return; ++ if (c->noswallow && !swallowfloating && c->isfloating) ++ return; ++ ++ detach(c); ++ detachstack(c); ++ ++ setclientstate(c, WithdrawnState); ++ XUnmapWindow(dpy, p->win); ++ ++ p->swallowing = c; ++ c->mon = p->mon; ++ ++ Window w = p->win; ++ p->win = c->win; ++ c->win = w; ++ updatetitle(p); ++ XMoveResizeWindow(dpy, p->win, p->x, p->y, p->w, p->h); ++ arrange(p->mon); ++ configure(p); ++ updateclientlist(); ++} ++ ++void ++unswallow(Client *c) ++{ ++ c->win = c->swallowing->win; ++ ++ free(c->swallowing); ++ c->swallowing = NULL; ++ ++ /* unfullscreen the client */ ++ setfullscreen(c, 0); ++ updatetitle(c); ++ arrange(c->mon); ++ XMapWindow(dpy, c->win); ++ XMoveResizeWindow(dpy, c->win, c->x, c->y, c->w, c->h); ++ setclientstate(c, NormalState); ++ focus(NULL); ++ arrange(c->mon); ++} ++ + void + buttonpress(XEvent *e) + { +@@ -656,6 +723,9 @@ destroynotify(XEvent *e) + + if ((c = wintoclient(ev->window))) + unmanage(c, 1); ++ ++ else if ((c = swallowingclient(ev->window))) ++ unmanage(c->swallowing, 1); + } + + void +@@ -1022,12 +1092,13 @@ killclient(const Arg *arg) + void + manage(Window w, XWindowAttributes *wa) + { +- Client *c, *t = NULL; ++ Client *c, *t = NULL, *term = NULL; + Window trans = None; + XWindowChanges wc; + + c = ecalloc(1, sizeof(Client)); + c->win = w; ++ c->pid = winpid(w); + /* geometry */ + c->x = c->oldx = wa->x; + c->y = c->oldy = wa->y; +@@ -1042,6 +1113,7 @@ manage(Window w, XWindowAttributes *wa) + } else { + c->mon = selmon; + applyrules(c); ++ term = termforwin(c); + } + + if (c->x + WIDTH(c) > c->mon->wx + c->mon->ww) +@@ -1076,6 +1148,8 @@ manage(Window w, XWindowAttributes *wa) + c->mon->sel = c; + arrange(c->mon); + XMapWindow(dpy, c->win); ++ if (term) ++ swallow(term, c); + focus(NULL); + } + +@@ -1763,6 +1837,20 @@ unmanage(Client *c, int destroyed) + Monitor *m = c->mon; + XWindowChanges wc; + ++ if (c->swallowing) { ++ unswallow(c); ++ return; ++ } ++ ++ Client *s = swallowingclient(c->win); ++ if (s) { ++ free(s->swallowing); ++ s->swallowing = NULL; ++ arrange(m); ++ focus(NULL); ++ return; ++ } ++ + detach(c); + detachstack(c); + if (!destroyed) { +@@ -1778,9 +1866,12 @@ unmanage(Client *c, int destroyed) + XUngrabServer(dpy); + } + free(c); +- focus(NULL); +- updateclientlist(); +- arrange(m); ++ ++ if (!s) { ++ arrange(m); ++ focus(NULL); ++ updateclientlist(); ++ } + } + + void +@@ -2044,6 +2135,136 @@ view(const Arg *arg) + arrange(selmon); + } + ++pid_t ++winpid(Window w) ++{ ++ ++ pid_t result = 0; ++ ++#ifdef __linux__ ++ xcb_res_client_id_spec_t spec = {0}; ++ spec.client = w; ++ spec.mask = XCB_RES_CLIENT_ID_MASK_LOCAL_CLIENT_PID; ++ ++ xcb_generic_error_t *e = NULL; ++ xcb_res_query_client_ids_cookie_t c = xcb_res_query_client_ids(xcon, 1, &spec); ++ xcb_res_query_client_ids_reply_t *r = xcb_res_query_client_ids_reply(xcon, c, &e); ++ ++ if (!r) ++ return (pid_t)0; ++ ++ xcb_res_client_id_value_iterator_t i = xcb_res_query_client_ids_ids_iterator(r); ++ for (; i.rem; xcb_res_client_id_value_next(&i)) { ++ spec = i.data->spec; ++ if (spec.mask & XCB_RES_CLIENT_ID_MASK_LOCAL_CLIENT_PID) { ++ uint32_t *t = xcb_res_client_id_value_value(i.data); ++ result = *t; ++ break; ++ } ++ } ++ ++ free(r); ++ ++ if (result == (pid_t)-1) ++ result = 0; ++ ++#endif /* __linux__ */ ++ ++#ifdef __OpenBSD__ ++ Atom type; ++ int format; ++ unsigned long len, bytes; ++ unsigned char *prop; ++ pid_t ret; ++ ++ if (XGetWindowProperty(dpy, w, XInternAtom(dpy, "_NET_WM_PID", 0), 0, 1, False, AnyPropertyType, &type, &format, &len, &bytes, &prop) != Success || !prop) ++ return 0; ++ ++ ret = *(pid_t*)prop; ++ XFree(prop); ++ result = ret; ++ ++#endif /* __OpenBSD__ */ ++ return result; ++} ++ ++pid_t ++getparentprocess(pid_t p) ++{ ++ unsigned int v = 0; ++ ++#ifdef __linux__ ++ FILE *f; ++ char buf[256]; ++ snprintf(buf, sizeof(buf) - 1, "/proc/%u/stat", (unsigned)p); ++ ++ if (!(f = fopen(buf, "r"))) ++ return 0; ++ ++ fscanf(f, "%*u %*s %*c %u", &v); ++ fclose(f); ++#endif /* __linux__*/ ++ ++#ifdef __OpenBSD__ ++ int n; ++ kvm_t *kd; ++ struct kinfo_proc *kp; ++ ++ kd = kvm_openfiles(NULL, NULL, NULL, KVM_NO_FILES, NULL); ++ if (!kd) ++ return 0; ++ ++ kp = kvm_getprocs(kd, KERN_PROC_PID, p, sizeof(*kp), &n); ++ v = kp->p_ppid; ++#endif /* __OpenBSD__ */ ++ ++ return (pid_t)v; ++} ++ ++int ++isdescprocess(pid_t p, pid_t c) ++{ ++ while (p != c && c != 0) ++ c = getparentprocess(c); ++ ++ return (int)c; ++} ++ ++Client * ++termforwin(const Client *w) ++{ ++ Client *c; ++ Monitor *m; ++ ++ if (!w->pid || w->isterminal) ++ return NULL; ++ ++ for (m = mons; m; m = m->next) { ++ for (c = m->clients; c; c = c->next) { ++ if (c->isterminal && !c->swallowing && c->pid && isdescprocess(c->pid, w->pid)) ++ return c; ++ } ++ } ++ ++ return NULL; ++} ++ ++Client * ++swallowingclient(Window w) ++{ ++ Client *c; ++ Monitor *m; ++ ++ for (m = mons; m; m = m->next) { ++ for (c = m->clients; c; c = c->next) { ++ if (c->swallowing && c->swallowing->win == w) ++ return c; ++ } ++ } ++ ++ return NULL; ++} ++ + Client * + wintoclient(Window w) + { +@@ -2133,10 +2354,12 @@ main(int argc, char *argv[]) + fputs("warning: no locale support\n", stderr); + if (!(dpy = XOpenDisplay(NULL))) + die("dwm: cannot open display"); ++ if (!(xcon = XGetXCBConnection(dpy))) ++ die("dwm: cannot get xcb connection\n"); + checkotherwm(); + setup(); + #ifdef __OpenBSD__ +- if (pledge("stdio rpath proc exec", NULL) == -1) ++ if (pledge("stdio rpath proc exec ps", NULL) == -1) + die("pledge"); + #endif /* __OpenBSD__ */ + scan(); +-- +2.37.2 + diff --git a/util.o b/util.o index aa3779b8a8359ef45e7e6119d6f763f0e4c68e40..26ab857d2a56ff49969dd1704810e8d70d6b9cca 100644 GIT binary patch delta 25 gcmdlWxIu73CL@oLo}q$~fsu)UrJ=#*Qbucb09!!@R{#J2 delta 25 gcmdlWxIu73CL@obo}q$~fsu)Usgcp