dwm-killunsel-ceac8c91ff.diff - sites - public wiki contents of suckless.org
(HTM) git clone git://git.suckless.org/sites
(DIR) Log
(DIR) Files
(DIR) Refs
---
dwm-killunsel-ceac8c91ff.diff (1667B)
---
1 diff --git a/config.def.h b/config.def.h
2 index a9ac303..6496426 100644
3 --- a/config.def.h
4 +++ b/config.def.h
5 @@ -73,6 +73,7 @@ static Key keys[] = {
6 { MODKEY, XK_Return, zoom, {0} },
7 { MODKEY, XK_Tab, view, {0} },
8 { MODKEY|ShiftMask, XK_c, killclient, {0} },
9 + { MODKEY|ShiftMask, XK_x, killunsel, {0} },
10 { MODKEY, XK_t, setlayout, {.v = &layouts[0]} },
11 { MODKEY, XK_f, setlayout, {.v = &layouts[1]} },
12 { MODKEY, XK_m, setlayout, {.v = &layouts[2]} },
13 diff --git a/dwm.c b/dwm.c
14 index a5ce993..a310c29 100644
15 --- a/dwm.c
16 +++ b/dwm.c
17 @@ -178,6 +178,7 @@ static void grabkeys(void);
18 static void incnmaster(const Arg *arg);
19 static void keypress(XEvent *e);
20 static void killclient(const Arg *arg);
21 +static void killunsel(const Arg *arg);
22 static void manage(Window w, XWindowAttributes *wa);
23 static void mappingnotify(XEvent *e);
24 static void maprequest(XEvent *e);
25 @@ -1017,6 +1018,29 @@ killclient(const Arg *arg)
26 }
27
28 void
29 +killunsel(const Arg *arg)
30 +{
31 + Client *i = NULL;
32 +
33 + if (!selmon->sel)
34 + return;
35 +
36 + for (i = selmon->clients; i; i = i->next) {
37 + if (ISVISIBLE(i) && i != selmon->sel) {
38 + if (!sendevent(i, wmatom[WMDelete])) {
39 + XGrabServer(dpy);
40 + XSetErrorHandler(xerrordummy);
41 + XSetCloseDownMode(dpy, DestroyAll);
42 + XKillClient(dpy, i->win);
43 + XSync(dpy, False);
44 + XSetErrorHandler(xerror);
45 + XUngrabServer(dpy);
46 + }
47 + }
48 + }
49 +}
50 +
51 +void
52 manage(Window w, XWindowAttributes *wa)
53 {
54 Client *c, *t = NULL;