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 05d478d8df54322c6b7f4a149f8493495e8aa5ab /git/dwm-sdk/commit/05d478d8df54322c6b7f4a149f8493495e8aa5ab.gph codevoid.de 70 1parent 2a88da430896de546000bf2a04f192977776f507 /git/dwm-sdk/commit/2a88da430896de546000bf2a04f192977776f507.gph codevoid.de 70 hAuthor: Stefan Hagen URL:mailto:sh+git[at]codevoid[dot]de codevoid.de 70 iDate: Tue, 5 Feb 2019 09:52:47 +0100 Err codevoid.de 70 i Err codevoid.de 70 iAdd scratchpad Err codevoid.de 70 i Err codevoid.de 70 iDiffstat: Err codevoid.de 70 i M config.def.h | 3 +++ Err codevoid.de 70 i M config.h | 6 ++++++ Err codevoid.de 70 i M dwm.c | 32 +++++++++++++++++++++++++++++++ Err codevoid.de 70 i Err codevoid.de 70 i3 files changed, 41 insertions(+), 0 deletions(-) Err codevoid.de 70 i--- Err codevoid.de 70 1diff --git a/config.def.h b/config.def.h /git/dwm-sdk/file/config.def.h.gph codevoid.de 70 it@@ -54,11 +54,14 @@ static const Layout layouts[] = { Err codevoid.de 70 i /* commands */ Err codevoid.de 70 i static const char *dmenucmd[] = { "dmenu_run", "-fn", font, "-nb", normbgcolor, "-nf", normfgcolor, "-sb", selbgcolor, "-sf", selfgcolor, NULL }; Err codevoid.de 70 i static const char *termcmd[] = { "uxterm", 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_minus, togglescratch, {.v = scratchpadcmd } }, Err codevoid.de 70 i { MODKEY, XK_b, togglebar, {0} }, Err codevoid.de 70 i { MODKEY, XK_b, toggleextrabar, {0} }, Err codevoid.de 70 i { MODKEY, XK_j, focusstack, {.i = +1 } }, Err codevoid.de 70 1diff --git a/config.h b/config.h /git/dwm-sdk/file/config.h.gph codevoid.de 70 it@@ -61,13 +61,16 @@ static const Layout layouts[] = { Err codevoid.de 70 i Err codevoid.de 70 i /* helper for spawning shell commands in the pre dwm-5.0 fashion */ Err codevoid.de 70 i #define SHCMD(cmd) { .v = (const char*[]){ "/bin/sh", "-c", cmd, NULL } } Err codevoid.de 70 i+static const char scratchpadname[] = "scratchpad"; Err codevoid.de 70 i Err codevoid.de 70 i /* commands */ Err codevoid.de 70 i static const char *dmenucmd[] = { "dmenu_run", DMENUOPTS, NULL }; Err codevoid.de 70 i #ifdef __linux__ Err codevoid.de 70 i+static const char *scratchpadcmd[] = { "st","-t", scratchpadname, "-g", "120x34", "-e", "mksh", NULL }; Err codevoid.de 70 i static const char *termcmd[] = { "st", "-e", "mksh", NULL }; Err codevoid.de 70 i #else Err codevoid.de 70 i static const char *termcmd[] = { "st", NULL }; Err codevoid.de 70 i+static const char *scratchpadcmd[] = { "st", "-t", scratchpadname, "-g", "120x34", NULL }; Err codevoid.de 70 i #endif Err codevoid.de 70 i static const char *notescmd[] = { "st", "-e", "vim", "Seafile/NotesSync/notes.otl", NULL }; Err codevoid.de 70 i static const char *browsercmd[] = { ".dwm/browser", DMENUOPTS, NULL }; Err codevoid.de 70 it@@ -77,6 +80,7 @@ static const char *sshot[] = { ".dwm/sshot", NULL }; Err codevoid.de 70 i static const char *updateStatus[] = { "pkill", "-SIGUSR1", "dwmstatus", NULL }; Err codevoid.de 70 i static const char *unMute[] = { "mixerctl", "outputs.spkr_mute=off", NULL }; Err codevoid.de 70 i Err codevoid.de 70 i+ Err codevoid.de 70 i #include "maximize.c" Err codevoid.de 70 i static Key keys[] = { Err codevoid.de 70 i /* modifier key function argument */ Err codevoid.de 70 it@@ -93,6 +97,8 @@ static Key keys[] = { Err codevoid.de 70 i { MODKEY|ShiftMask, XK_Print, spawn, {.v = sshot } }, Err codevoid.de 70 i { MODKEY|ShiftMask, XK_o, spawn, {.v = notescmd } }, Err codevoid.de 70 i Err codevoid.de 70 i+ { MODKEY, XK_minus, togglescratch, {.v = scratchpadcmd } }, Err codevoid.de 70 i+ Err codevoid.de 70 i { MODKEY, XK_b, togglebar, {0} }, Err codevoid.de 70 i { MODKEY, XK_b, toggleextrabar, {0} }, Err codevoid.de 70 i Err codevoid.de 70 1diff --git a/dwm.c b/dwm.c /git/dwm-sdk/file/dwm.c.gph codevoid.de 70 it@@ -269,6 +269,7 @@ static void tile(Monitor *); Err codevoid.de 70 i static void togglebar(const Arg *arg); Err codevoid.de 70 i static void toggleextrabar(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, Bool setfocus); Err codevoid.de 70 it@@ -346,6 +347,8 @@ struct Pertag { Err codevoid.de 70 i Bool showbars[LENGTH(tags) + 1]; /* display bar for the current tag */ Err codevoid.de 70 i }; 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 it@@ -1303,6 +1306,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, dc.norm[ColBorder]); Err codevoid.de 70 it@@ -2003,6 +2013,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 unsigned int newtags; Err codevoid.de 70 i Err codevoid.de 70 .