[wiki] [sites] new dwm sub-patch: nametag-prepend || Ondrej Grover

From: <git_AT_suckless.org>
Date: Sat, 07 Jun 2014 12:42:43 +0200

commit c1443a028a857b3ed07f6f3cf1e522fc468e15e7
Author: Ondrej Grover <ondrej.grover_AT_gmail.com>
Date: Sat Jun 7 12:40:44 2014 +0200

    new dwm sub-patch: nametag-prepend
    
    makes name "foo" given to tag 5 automatically "5:foo"

diff --git a/dwm.suckless.org/patches/dwm-6.1-nametag-prepend.diff b/dwm.suckless.org/patches/dwm-6.1-nametag-prepend.diff
new file mode 100644
index 0000000..574083f
--- /dev/null
+++ b/dwm.suckless.org/patches/dwm-6.1-nametag-prepend.diff
_AT_@ -0,0 +1,71 @@
+diff --git a/config.def.h b/config.def.h
+index 875885b..222745d 100644
+--- a/config.def.h
++++ b/config.def.h
+_AT_@ -14,7 +14,10 @@ static const Bool showbar = True; /* False means no bar */
+ static const Bool topbar = True; /* False means bottom bar */
+
+ /* tagging */
+-static const char *tags[] = { "1", "2", "3", "4", "5", "6", "7", "8", "9" };
++#define MAX_TAGNAME_LEN 14 /* excludes TAG_PREPEND */
++#define TAG_PREPEND "%1i:" /* formatted as 2 chars */
++#define MAX_TAGLEN 16 /* altogether */
++static char tags[][MAX_TAGLEN] = { "1", "2", "3", "4", "5", "6", "7", "8", "9" };
+
+ static const Rule rules[] = {
+ /* xprop(1):
+_AT_@ -79,6 +82,7 @@ static Key keys[] = {
+ { MODKEY, XK_period, focusmon, {.i = +1 } },
+ { MODKEY|ShiftMask, XK_comma, tagmon, {.i = -1 } },
+ { MODKEY|ShiftMask, XK_period, tagmon, {.i = +1 } },
++ { MODKEY, XK_n, nametag, {0} },
+ TAGKEYS( XK_1, 0)
+ TAGKEYS( XK_2, 1)
+ TAGKEYS( XK_3, 2)
+diff --git a/dwm.c b/dwm.c
+index 1bbb4b3..fefdd69 100644
+--- a/dwm.c
++++ b/dwm.c
+_AT_@ -183,6 +183,7 @@ static void maprequest(XEvent *e);
+ static void monocle(Monitor *m);
+ static void motionnotify(XEvent *e);
+ static void movemouse(const Arg *arg);
++static void nametag(const Arg *arg);
+ static Client *nexttiled(Client *c);
+ static void pop(Client *);
+ static void propertynotify(XEvent *e);
+_AT_@ -1174,6 +1175,34 @@ movemouse(const Arg *arg) {
+ }
+ }
+
++void
++nametag(const Arg *arg) {
++ char *p, name[MAX_TAGNAME_LEN];
++ FILE *f;
++ int i;
++
++ errno = 0; // popen(3p) says on failure it "may" set errno
++ if(!(f = popen("dmenu < /dev/null", "r"))) {
++ fprintf(stderr, "dwm: popen 'dmenu < /dev/null' failed%s%s
", errno ? ": " : "", errno ? strerror(errno) : "");
++ return;
++ }
++ if (!(p = fgets(name, MAX_TAGNAME_LEN, f)) && (i = errno) && ferror(f))
++ fprintf(stderr, "dwm: fgets failed: %s
", strerror(i));
++ if (pclose(f) < 0)
++ fprintf(stderr, "dwm: pclose failed: %s
", strerror(errno));
++ if(!p)
++ return;
++ if((p = strchr(name, '
')))
++ *p = '
Received on Sat Jun 07 2014 - 12:42:43 CEST

This archive was generated by hypermail 2.3.0 : Thu Jun 18 2015 - 17:38:57 CEST