From d4f7b19977092519846f56697356fe2d022902ca Mon Sep 17 00:00:00 2001 From: Noah Swerhun Date: Tue, 6 Oct 2020 22:59:31 -0500 Subject: [PATCH] added window swallowing --- config.def.h | 9 +- config.h | 25 +- config.mk | 3 +- dwm | Bin 80104 -> 80768 bytes dwm-swallow-20200807-b2de9b0.diff | 412 ++++++++++++++++++++++++++++++ dwm.c | 236 ++++++++++++++++- dwm.o | Bin 70144 -> 73264 bytes 7 files changed, 665 insertions(+), 20 deletions(-) create mode 100644 dwm-swallow-20200807-b2de9b0.diff diff --git a/config.def.h b/config.def.h index a886863..b27c70b 100644 --- a/config.def.h +++ b/config.def.h @@ -8,6 +8,7 @@ static const unsigned int gappiv = 10; /* vert inner gap between window static const unsigned int gappoh = 10; /* horiz outer gap between windows and screen edge */ static const unsigned int gappov = 30; /* vert outer gap between windows and screen edge */ static int smartgaps = 0; /* 1 means no outer gap when there is only one window */ +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" }; @@ -31,9 +32,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.h b/config.h index 834640d..8f60a41 100644 --- a/config.h +++ b/config.h @@ -1,5 +1,7 @@ /* See LICENSE file for copyright and license details. */ +#define TERMCLASS "st-256color" + /* appearance */ static const unsigned int borderpx = 1; /* border pixel of windows */ static const unsigned int snap = 32; /* snap pixel */ @@ -10,6 +12,7 @@ static const unsigned int gappiv = 5; /* vert inner gap between window static const unsigned int gappoh = 5; /* horiz outer gap between windows and screen edge */ static const unsigned int gappov = 5; /* vert outer gap between windows and screen edge */ static int smartgaps = 0; /* 1 means no outer gap when there is only one window */ +static const int swallowfloating = 0; /* 1 means swallow floating windows by default */ static const char *fonts[] = { "Roboto Mono:size=10", "Joypixels:size=10" }; static const char dmenufont[] = "Roboto Mono:size=10"; static const char col_gray1[] = "#222222"; @@ -24,20 +27,22 @@ static const char *colors[][3] = { }; /* tagging */ -static const char *tags[] = { "1", "2", "3", "4", "5", "6", "7", "8", "9" }; +static const char *tags[] = { "I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX" }; static const Rule rules[] = { /* xprop(1): * 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 }, + { TERMCLASS, NULL, NULL, 0, 0, 1, 0, -1 }, + { NULL, NULL, "Event Tester", 0, 0, 0, 1, -1 }, /* xev */ }; /* layout(s) */ -static const float mfact = 0.55; /* factor of master area size [0.05..0.95] */ +static const float mfact = 0.5; /* factor of master area size [0.05..0.95] */ static const int nmaster = 1; /* number of clients in master area */ static const int resizehints = 0; /* 1 means respect size hints in tiled resizals */ @@ -46,11 +51,11 @@ static const int resizehints = 0; /* 1 means respect size hints in tiled resi static const Layout layouts[] = { /* symbol arrange function */ - { "[]=", tile }, /* first entry is default */ - { "[M]", monocle }, - { "[@]", spiral }, - { "[\\]", dwindle }, + { "[@]", spiral }, /* first entry is default */ + { "[]=", tile }, { "H[]", deck }, + { "[M]", monocle }, + { "[\\]", dwindle }, { "TTT", bstack }, { "===", bstackhoriz }, { "HHH", grid }, @@ -81,7 +86,7 @@ static const Layout layouts[] = { static char dmenumon[2] = "0"; /* component of dmenucmd, manipulated in spawn() */ static const char *dmenucmd[] = { "dmenu_run", "-m", dmenumon, "-fn", dmenufont, "-nb", col_gray1, "-nf", col_gray3, "-sb", col_cyan, "-sf", col_gray4, NULL }; static const char *termcmd[] = { "st", NULL }; -static const char *browser[] = { "waterfox-classic", NULL }; +static const char *browser[] = { "waterfox-current", NULL }; static const char *passmenu[] = { "passmenu", "-m", dmenumon, "-fn", dmenufont, "-nb", col_gray1, "-nf", col_gray3, "-sb", col_cyan, "-sf", col_gray4, "-l", "5", "-i", NULL }; static const char *scrotselection[] = { "sleep", "0.5", "&&", "scrot", "-s", "~/pics/screenshots/%Y-%m-%d-%s%w%h.jpg", NULL }; static const char *manmenu[] = { "manmenu", NULL }; diff --git a/config.mk b/config.mk index 6d36cb7..5d136bc 100644 --- a/config.mk +++ b/config.mk @@ -19,10 +19,11 @@ FREETYPELIBS = -lfontconfig -lXft FREETYPEINC = /usr/include/freetype2 # OpenBSD (uncomment) #FREETYPEINC = ${X11INC}/freetype2 +#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=2 -DVERSION=\"${VERSION}\" ${XINERAMAFLAGS} diff --git a/dwm b/dwm index 2891dd507bc7b29f688decb6c2fb714279ff72ad..d1fb466637e69e5c3616432b915fd6e598e68b73 100755 GIT binary patch literal 80768 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 delta 31926 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 Tx72|CdP~d5X!nHvddL3 +Date: Fri, 7 Aug 2020 20:14:29 -0400 +Subject: [PATCH] added openbsd support for swallowing + +--- + 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 1c0b587..fe51476 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 7084c33..ff9e508 100644 +--- a/config.mk ++++ b/config.mk +@@ -19,10 +19,11 @@ FREETYPELIBS = -lfontconfig -lXft + FREETYPEINC = /usr/include/freetype2 + # OpenBSD (uncomment) + #FREETYPEINC = ${X11INC}/freetype2 ++#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 9fd0286..e9f08f7 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; + 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); +@@ -414,6 +434,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) + { +@@ -653,6 +720,9 @@ destroynotify(XEvent *e) + + if ((c = wintoclient(ev->window))) + unmanage(c, 1); ++ ++ else if ((c = swallowingclient(ev->window))) ++ unmanage(c->swallowing, 1); + } + + void +@@ -1018,12 +1088,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; +@@ -1038,6 +1109,7 @@ manage(Window w, XWindowAttributes *wa) + } else { + c->mon = selmon; + applyrules(c); ++ term = termforwin(c); + } + + if (c->x + WIDTH(c) > c->mon->mx + c->mon->mw) +@@ -1074,6 +1146,8 @@ manage(Window w, XWindowAttributes *wa) + c->mon->sel = c; + arrange(c->mon); + XMapWindow(dpy, c->win); ++ if (term) ++ swallow(term, c); + focus(NULL); + } + +@@ -1768,6 +1842,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) { +@@ -1782,9 +1870,12 @@ unmanage(Client *c, int destroyed) + XUngrabServer(dpy); + } + free(c); +- focus(NULL); +- updateclientlist(); +- arrange(m); ++ ++ if (!s) { ++ arrange(m); ++ focus(NULL); ++ updateclientlist(); ++ } + } + + void +@@ -2047,6 +2138,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", 1), 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) + { +@@ -2138,10 +2359,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.26.2 + diff --git a/dwm.c b/dwm.c index c3b2d82..4d797ba 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; 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; @@ -237,6 +247,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]; @@ -271,6 +287,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" @@ -300,6 +318,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) { @@ -659,6 +726,9 @@ destroynotify(XEvent *e) if ((c = wintoclient(ev->window))) unmanage(c, 1); + + else if ((c = swallowingclient(ev->window))) + unmanage(c->swallowing, 1); } void @@ -1024,12 +1094,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; @@ -1044,6 +1115,7 @@ manage(Window w, XWindowAttributes *wa) } else { c->mon = selmon; applyrules(c); + term = termforwin(c); } if (c->x + WIDTH(c) > c->mon->mx + c->mon->mw) @@ -1080,6 +1152,9 @@ manage(Window w, XWindowAttributes *wa) c->mon->sel = c; arrange(c->mon); XMapWindow(dpy, c->win); + if (term) { + swallow(term, c); + } focus(NULL); } @@ -1746,6 +1821,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) { @@ -1760,9 +1849,11 @@ unmanage(Client *c, int destroyed) XUngrabServer(dpy); } free(c); - focus(NULL); - updateclientlist(); - arrange(m); + if (!s) { + arrange(m); + focus(NULL); + updateclientlist(); + } } void @@ -2025,6 +2116,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", 1), 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) { @@ -2116,10 +2337,13 @@ 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(); diff --git a/dwm.o b/dwm.o index 378f6d48f80290e7440fb8ddc0d9d0087e3e2e9c..a07d7a16945092f44295d34c22b316e41691d344 100644 GIT binary patch literal 73264 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

m`uC7<8f_`BHjT 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 literal 70144 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 UA2Cg|el`B_