it* dwm + patches Err codevoid.de 70 i Err codevoid.de 70 hgit clone git://git.codevoid.de/dwm-sdk URL:git://git.codevoid.de/dwm-sdk codevoid.de 70 1Log /git/dwm-sdk/log.gph codevoid.de 70 1Files /git/dwm-sdk/files.gph codevoid.de 70 1Refs /git/dwm-sdk/refs.gph codevoid.de 70 1README /git/dwm-sdk/file/README.gph codevoid.de 70 1LICENSE /git/dwm-sdk/file/LICENSE.gph codevoid.de 70 i--- Err codevoid.de 70 1commit f9863c9844ae49da49b61899e66f942ef5344215 /git/dwm-sdk/commit/f9863c9844ae49da49b61899e66f942ef5344215.gph codevoid.de 70 1parent 46d79b7c26c0038f03e7a02f8cd1d44a281abb63 /git/dwm-sdk/commit/46d79b7c26c0038f03e7a02f8cd1d44a281abb63.gph codevoid.de 70 hAuthor: Stefan Hagen URL:mailto:sh+git[at]codevoid[dot]de codevoid.de 70 iDate: Wed, 23 May 2018 18:08:37 +0200 Err codevoid.de 70 i Err codevoid.de 70 iAdd scratchpad patch file Err codevoid.de 70 i Err codevoid.de 70 iDiffstat: Err codevoid.de 70 i A patches/dwm-scratchpad-20170207-bb… | 83 +++++++++++++++++++++++++++++++ Err codevoid.de 70 i Err codevoid.de 70 i1 file changed, 83 insertions(+), 0 deletions(-) Err codevoid.de 70 i--- Err codevoid.de 70 1diff --git a/patches/dwm-scratchpad-20170207-bb3bd6f.diff b/patches/dwm-scratchpad-20170207-bb3bd6f.diff /git/dwm-sdk/file/patches/dwm-scratchpad-20170207-bb3bd6f.diff.gph codevoid.de 70 it@@ -0,0 +1,83 @@ Err codevoid.de 70 i+diff --git a/config.def.h b/config.def.h Err codevoid.de 70 i+index ba9a240..eaaca3e 100644 Err codevoid.de 70 i+--- a/config.def.h Err codevoid.de 70 i++++ b/config.def.h Err codevoid.de 70 i+@@ -58,11 +58,14 @@ static const Layout layouts[] = { Err codevoid.de 70 i+ static char dmenumon[2] = "0"; /* component of dmenucmd, manipulated in spawn() */ Err codevoid.de 70 i+ static const char *dmenucmd[] = { "dmenu_run", "-m", dmenumon, "-fn", dmenufont, "-nb", col_gray1, "-nf", col_gray3, "-sb", col_cyan, "-sf", col_gray4, NULL }; Err codevoid.de 70 i+ static const char *termcmd[] = { "st", NULL }; Err codevoid.de 70 i++static const char scratchpadname[] = "scratchpad"; Err codevoid.de 70 i++static const char *scratchpadcmd[] = { "st", "-t", scratchpadname, "-g", "120x34", NULL }; Err codevoid.de 70 i+ Err codevoid.de 70 i+ static Key keys[] = { Err codevoid.de 70 i+ /* modifier key function argument */ Err codevoid.de 70 i+ { MODKEY, XK_p, spawn, {.v = dmenucmd } }, Err codevoid.de 70 i+ { MODKEY|ShiftMask, XK_Return, spawn, {.v = termcmd } }, Err codevoid.de 70 i++ { MODKEY, XK_grave, togglescratch, {.v = scratchpadcmd } }, Err codevoid.de 70 i+ { MODKEY, XK_b, togglebar, {0} }, Err codevoid.de 70 i+ { MODKEY, XK_j, focusstack, {.i = +1 } }, Err codevoid.de 70 i+ { MODKEY, XK_k, focusstack, {.i = -1 } }, Err codevoid.de 70 i+diff --git a/dwm.c b/dwm.c Err codevoid.de 70 i+index d27cb67..3fa7274 100644 Err codevoid.de 70 i+--- a/dwm.c Err codevoid.de 70 i++++ b/dwm.c Err codevoid.de 70 i+@@ -212,6 +212,7 @@ static void tagmon(const Arg *arg); Err codevoid.de 70 i+ static void tile(Monitor *); Err codevoid.de 70 i+ static void togglebar(const Arg *arg); Err codevoid.de 70 i+ static void togglefloating(const Arg *arg); Err codevoid.de 70 i++static void togglescratch(const Arg *arg); Err codevoid.de 70 i+ static void toggletag(const Arg *arg); Err codevoid.de 70 i+ static void toggleview(const Arg *arg); Err codevoid.de 70 i+ static void unfocus(Client *c, int setfocus); Err codevoid.de 70 i+@@ -272,6 +273,8 @@ static Window root, wmcheckwin; Err codevoid.de 70 i+ /* configuration, allows nested code to access above variables */ Err codevoid.de 70 i+ #include "config.h" Err codevoid.de 70 i+ Err codevoid.de 70 i++static unsigned int scratchtag = 1 << LENGTH(tags); Err codevoid.de 70 i++ Err codevoid.de 70 i+ /* compile-time check if all tags fit into an unsigned int bit array. */ Err codevoid.de 70 i+ struct NumTags { char limitexceeded[LENGTH(tags) > 31 ? -1 : 1]; }; Err codevoid.de 70 i+ Err codevoid.de 70 i+@@ -1051,6 +1054,13 @@ manage(Window w, XWindowAttributes *wa) Err codevoid.de 70 i+ && (c->x + (c->w / 2) < c->mon->wx + c->mon->ww)) ? bh : c->mon->my); Err codevoid.de 70 i+ c->bw = borderpx; Err codevoid.de 70 i+ Err codevoid.de 70 i++ if (!strcmp(c->name, scratchpadname)) { Err codevoid.de 70 i++ c->mon->tagset[c->mon->seltags] |= c->tags = scratchtag; Err codevoid.de 70 i++ c->isfloating = True; Err codevoid.de 70 i++ c->x = c->mon->wx + (c->mon->ww / 2 - WIDTH(c) / 2); Err codevoid.de 70 i++ c->y = c->mon->wy + (c->mon->wh / 2 - HEIGHT(c) / 2); Err codevoid.de 70 i++ } Err codevoid.de 70 i++ Err codevoid.de 70 i+ wc.border_width = c->bw; Err codevoid.de 70 i+ XConfigureWindow(dpy, w, CWBorderWidth, &wc); Err codevoid.de 70 i+ XSetWindowBorder(dpy, w, scheme[SchemeNorm][ColBorder].pixel); Err codevoid.de 70 i+@@ -1724,6 +1734,28 @@ togglefloating(const Arg *arg) Err codevoid.de 70 i+ } Err codevoid.de 70 i+ Err codevoid.de 70 i+ void Err codevoid.de 70 i++togglescratch(const Arg *arg) Err codevoid.de 70 i++{ Err codevoid.de 70 i++ Client *c; Err codevoid.de 70 i++ unsigned int found = 0; Err codevoid.de 70 i++ Err codevoid.de 70 i++ for (c = selmon->clients; c && !(found = c->tags & scratchtag); c = c->next); Err codevoid.de 70 i++ if (found) { Err codevoid.de 70 i++ unsigned int newtagset = selmon->tagset[selmon->seltags] ^ scratchtag; Err codevoid.de 70 i++ if (newtagset) { Err codevoid.de 70 i++ selmon->tagset[selmon->seltags] = newtagset; Err codevoid.de 70 i++ focus(NULL); Err codevoid.de 70 i++ arrange(selmon); Err codevoid.de 70 i++ } Err codevoid.de 70 i++ if (ISVISIBLE(c)) { Err codevoid.de 70 i++ focus(c); Err codevoid.de 70 i++ restack(selmon); Err codevoid.de 70 i++ } Err codevoid.de 70 i++ } else Err codevoid.de 70 i++ spawn(arg); Err codevoid.de 70 i++} Err codevoid.de 70 i++ Err codevoid.de 70 i++void Err codevoid.de 70 i+ toggletag(const Arg *arg) Err codevoid.de 70 i+ { Err codevoid.de 70 i+ unsigned int newtags; Err codevoid.de 70 .