dwm-tagspawn-6.2.diff (2058B)
1 From 62b79d4c032556794b82305a03606f752c096d8b Mon Sep 17 00:00:00 2001 2 From: Sage Raflik <neonfuz@gmail.com> 3 Date: Sat, 11 Dec 2021 22:58:03 -0600 4 Subject: [PATCH] tagspawn 5 6 --- 7 config.def.h | 6 ++++++ 8 dwm.c | 12 ++++++++++++ 9 2 files changed, 18 insertions(+) 10 11 diff --git a/config.def.h b/config.def.h 12 index 1c0b587..f727668 100644 13 --- a/config.def.h 14 +++ b/config.def.h 15 @@ -59,10 +59,16 @@ static char dmenumon[2] = "0"; /* component of dmenucmd, manipulated in spawn() 16 static const char *dmenucmd[] = { "dmenu_run", "-m", dmenumon, "-fn", dmenufont, "-nb", col_gray1, "-nf", col_gray3, "-sb", col_cyan, "-sf", col_gray4, NULL }; 17 static const char *termcmd[] = { "st", NULL }; 18 19 +/* per tag commands for tagspawn function */ 20 +static const char ** const tagcommands[LENGTH(tags)] = { 21 + [0] = termcmd, /* first tag */ 22 +}; 23 + 24 static Key keys[] = { 25 /* modifier key function argument */ 26 { MODKEY, XK_p, spawn, {.v = dmenucmd } }, 27 { MODKEY|ShiftMask, XK_Return, spawn, {.v = termcmd } }, 28 + { MODKEY|CtrlMask, XK_Return, tagspawn, {0} }, 29 { MODKEY, XK_b, togglebar, {0} }, 30 { MODKEY, XK_j, focusstack, {.i = +1 } }, 31 { MODKEY, XK_k, focusstack, {.i = -1 } }, 32 diff --git a/dwm.c b/dwm.c 33 index 4465af1..b70cc67 100644 34 --- a/dwm.c 35 +++ b/dwm.c 36 @@ -206,6 +206,7 @@ static void seturgent(Client *c, int urg); 37 static void showhide(Client *c); 38 static void sigchld(int unused); 39 static void spawn(const Arg *arg); 40 +static void tagspawn(const Arg *arg); 41 static void tag(const Arg *arg); 42 static void tagmon(const Arg *arg); 43 static void tile(Monitor *); 44 @@ -1652,6 +1653,17 @@ spawn(const Arg *arg) 45 } 46 } 47 48 +void 49 +tagspawn(const Arg *arg) 50 +{ 51 + for (int i=0; i<LENGTH(tags); ++i) { 52 + if (selmon->tagset[selmon->seltags] & (1<<i)) { 53 + const Arg a = {.v = tagcommands[i]}; 54 + spawn(&a); 55 + } 56 + } 57 +} 58 + 59 void 60 tag(const Arg *arg) 61 { 62 -- 63 2.33.1 64