Introduction
Introduction Statistics Contact Development Disclaimer Help
dwm-bulkill-safe-20231029-9f88553.diff - sites - public wiki contents of suckle…
git clone git://git.suckless.org/sites
Log
Files
Refs
---
dwm-bulkill-safe-20231029-9f88553.diff (2673B)
---
1 From c40d70e238b7e5e8ebfd16b435c56af55a541912 Mon Sep 17 00:00:00 2001
2 From: ysl2 <[email protected]>
3 Date: Sun, 29 Oct 2023 15:39:46 +0800
4 Subject: [PATCH] Bulk kill: arg.ui == 0 for normal kill current client; …
5 == 1 for kill other clients in current tag (except current focusing cli…
6 arg.ui == 2 for kill all clients in current tag (include focusing clien…
7
8 ---
9 bulkill.c | 35 +++++++++++++++++++++++++++++++++++
10 config.def.h | 3 +++
11 2 files changed, 38 insertions(+)
12 create mode 100644 bulkill.c
13
14 diff --git a/bulkill.c b/bulkill.c
15 new file mode 100644
16 index 0000000..732852e
17 --- /dev/null
18 +++ b/bulkill.c
19 @@ -0,0 +1,35 @@
20 +static void killthis(Client *c);
21 +static void bulkill(const Arg *arg);
22 +
23 +void
24 +killthis(Client *c) {
25 + if (!sendevent(c, wmatom[WMDelete])) {
26 + XGrabServer(dpy);
27 + XSetErrorHandler(xerrordummy);
28 + XSetCloseDownMode(dpy, DestroyAll);
29 + XKillClient(dpy, c->win);
30 + XSync(dpy, False);
31 + XSetErrorHandler(xerror);
32 + XUngrabServer(dpy);
33 + }
34 +}
35 +
36 +void
37 +bulkill(const Arg *arg)
38 +{
39 + Client *c;
40 +
41 + if (!selmon->sel)
42 + return;
43 +
44 + if (!arg->ui || arg->ui == 0) {
45 + killthis(selmon->sel);
46 + return;
47 + }
48 +
49 + for (c = selmon->clients; c; c = c->next) {
50 + if (!ISVISIBLE(c) || (arg->ui == 1 && c == selmon->sel))
51 + continue;
52 + killthis(c);
53 + }
54 +}
55 diff --git a/config.def.h b/config.def.h
56 index 9efa774..28cfd78 100644
57 --- a/config.def.h
58 +++ b/config.def.h
59 @@ -60,6 +60,7 @@ static char dmenumon[2] = "0"; /* component of dmenucm…
60 static const char *dmenucmd[] = { "dmenu_run", "-m", dmenumon, "-fn", d…
61 static const char *termcmd[] = { "st", NULL };
62
63 +#include "bulkill.c"
64 static const Key keys[] = {
65 /* modifier key function argu…
66 { MODKEY, XK_p, spawn, {.v …
67 @@ -74,6 +75,8 @@ static const Key keys[] = {
68 { MODKEY, XK_Return, zoom, {0} …
69 { MODKEY, XK_Tab, view, {0} …
70 { MODKEY|ShiftMask, XK_c, killclient, {0} …
71 + { MODKEY|ControlMask, XK_c, bulkill, {.ui = 1…
72 + { MODKEY|ShiftMask|ControlMask, XK_c, bulkill, {.ui = 2…
73 { MODKEY, XK_t, setlayout, {.v …
74 { MODKEY, XK_f, setlayout, {.v …
75 { MODKEY, XK_m, setlayout, {.v …
76 --
77 2.20.1
78
You are viewing proxied material from suckless.org. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.