dot

packages and services management
Log | Files | Refs | README

commit 8b1aef535369aca23ffaf292ee159f6d39669060
parent e7e7716335780a118c602024c1c8bd14d9db8d82
Author: Josuah Demangeon <mail@josuah.net>
Date:   Thu, 11 May 2017 12:57:30 +0200

collectd and patches

Diffstat:
Mbin/io-search | 2+-
Abuild/collectd/url | 1+
Mbuild/dwm/config.h | 38++++++++++++++++++++++----------------
Abuild/dwm/dwm-pertag-6.1.diff | 199+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Abuild/jq/url | 1+
5 files changed, 224 insertions(+), 17 deletions(-)

diff --git a/bin/io-search b/bin/io-search @@ -16,4 +16,4 @@ EOF path="${path#\# }" name="$(printf %s "$path" | tr '/' '!')" -ABDUCO="$name" exec abduco -e "$e" -A "$name" $EDITOR +"$number" "$path" +ABDUCO="$name" exec abduco -e "$e" -A "$name" less +"$number" "$path" diff --git a/build/collectd/url b/build/collectd/url @@ -0,0 +1 @@ +https://storage.googleapis.com/collectd-tarballs/collectd-5.7.1.tar.bz2 diff --git a/build/dwm/config.h b/build/dwm/config.h @@ -11,13 +11,20 @@ static const char normfgcolor[] = "#ffffff"; static const char selbordercolor[] = "#ffffff"; static const char selbgcolor[] = "#ffffff"; static const char selfgcolor[] = "#000000"; -static const unsigned int borderpx = 0; /* border pixel of windows */ +static const unsigned int borderpx = 1; /* border pixel of windows */ static const unsigned int snap = 32; /* snap pixel */ static const int showbar = 1; /* 0 means no bar */ static const int topbar = 1; /* 0 means bottom bar */ /* tagging */ -static const char *tags[] = { "1", "2", "3", "4" }; +static const char *tags[] = { + "1 lain", + "2 irc", + "3 ssh", + "4 web", + "5 doc", + "6 media", +}; static const Rule rules[] = { /* xprop(1): @@ -25,20 +32,19 @@ static const Rule rules[] = { * WM_NAME(STRING) = title */ /* class instance title tags mask isfloating monitor */ - { "st-256color", NULL, NULL, 1, 0, -1 }, - { "Sam", NULL, NULL, 1 << 1, 0, -1 }, - { "acme", NULL, NULL, 1 << 1, 0, -1 }, - { "emacs", NULL, NULL, 1 << 1, 0, -1 }, - { "Chromium", NULL, NULL, 1 << 2, 0, -1 }, - { "Iceweasel", NULL, NULL, 1 << 2, 0, -1 }, - { "Firefox", NULL, NULL, 1 << 2, 0, -1 }, - { "Surf", NULL, NULL, 1 << 2, 0, -1 }, - { "Zathura", NULL, NULL, 1 << 3, 0, -1 }, - { NULL, "libreoffice", NULL, 1 << 3, 0, -1 }, - { "Gimp", NULL, NULL, 1 << 3, 0, -1 }, - { "Blender", NULL, NULL, 1 << 3, 0, -1 }, - { "ffplay", NULL, NULL, 1 << 3, 0, -1 }, - { "Pavucontrol", NULL, NULL, 1 << 3, 0, -1 }, + { "Sam", NULL, NULL, 1 << 0, 0, -1 }, + { "acme", NULL, NULL, 1 << 0, 0, -1 }, + { "emacs", NULL, NULL, 1 << 0, 0, -1 }, + { "Chromium", NULL, NULL, 1 << 3, 0, -1 }, + { "Iceweasel", NULL, NULL, 1 << 3, 0, -1 }, + { "Firefox", NULL, NULL, 1 << 3, 0, -1 }, + { "Surf", NULL, NULL, 1 << 3, 0, -1 }, + { "Zathura", NULL, NULL, 1 << 4, 0, -1 }, + { NULL, "libreoffice", NULL, 1 << 4, 0, -1 }, + { "Gimp", NULL, NULL, 1 << 5, 0, -1 }, + { "Blender", NULL, NULL, 1 << 5, 0, -1 }, + { "ffplay", NULL, NULL, 1 << 5, 0, -1 }, + { "Pavucontrol", NULL, NULL, 1 << 5, 0, -1 }, }; /* layout(s) */ diff --git a/build/dwm/dwm-pertag-6.1.diff b/build/dwm/dwm-pertag-6.1.diff @@ -0,0 +1,199 @@ +diff --git a/dwm.c b/dwm.c +index 0362114..9ba4ec5 100644 +--- a/dwm.c ++++ b/dwm.c +@@ -111,6 +111,7 @@ typedef struct { + void (*arrange)(Monitor *); + } Layout; + ++typedef struct Pertag Pertag; + struct Monitor { + char ltsymbol[16]; + float mfact; +@@ -130,6 +131,7 @@ struct Monitor { + Monitor *next; + Window barwin; + const Layout *lt[2]; ++ Pertag *pertag; + }; + + typedef struct { +@@ -270,6 +272,16 @@ static Window root; + /* configuration, allows nested code to access above variables */ + #include "config.h" + ++struct Pertag { ++ unsigned int curtag, prevtag; /* current and previous tag */ ++ int nmasters[LENGTH(tags) + 1]; /* number of windows in master area */ ++ float mfacts[LENGTH(tags) + 1]; /* mfacts per tag */ ++ unsigned int sellts[LENGTH(tags) + 1]; /* selected layouts */ ++ const Layout *ltidxs[LENGTH(tags) + 1][2]; /* matrix of tags and layouts indexes */ ++ Bool showbars[LENGTH(tags) + 1]; /* display bar for the current tag */ ++ Client *prevzooms[LENGTH(tags) + 1]; /* store zoom information */ ++}; ++ + /* compile-time check if all tags fit into an unsigned int bit array. */ + struct NumTags { char limitexceeded[LENGTH(tags) > 31 ? -1 : 1]; }; + +@@ -526,6 +538,7 @@ clientmessage(XEvent *e) + { + XClientMessageEvent *cme = &e->xclient; + Client *c = wintoclient(cme->window); ++ int i; + + if (!c) + return; +@@ -537,6 +550,8 @@ clientmessage(XEvent *e) + if (!ISVISIBLE(c)) { + c->mon->seltags ^= 1; + c->mon->tagset[c->mon->seltags] = c->tags; ++ for(i=0; !(c->tags & 1 << i); i++); ++ view(&(Arg){.ui = 1 << i}); + } + pop(c); + } +@@ -640,6 +655,7 @@ Monitor * + createmon(void) + { + Monitor *m; ++ int i; + + m = ecalloc(1, sizeof(Monitor)); + m->tagset[0] = m->tagset[1] = 1; +@@ -650,6 +666,27 @@ createmon(void) + m->lt[0] = &layouts[0]; + m->lt[1] = &layouts[1 % LENGTH(layouts)]; + strncpy(m->ltsymbol, layouts[0].symbol, sizeof m->ltsymbol); ++ if (!(m->pertag = (Pertag *)calloc(1, sizeof(Pertag)))) ++ die("fatal: could not malloc() %u bytes\n", sizeof(Pertag)); ++ m->pertag->curtag = m->pertag->prevtag = 1; ++ for(i=0; i <= LENGTH(tags); i++) { ++ /* init nmaster */ ++ m->pertag->nmasters[i] = m->nmaster; ++ ++ /* init mfacts */ ++ m->pertag->mfacts[i] = m->mfact; ++ ++ /* init layouts */ ++ m->pertag->ltidxs[i][0] = m->lt[0]; ++ m->pertag->ltidxs[i][1] = m->lt[1]; ++ m->pertag->sellts[i] = m->sellt; ++ ++ /* init showbar */ ++ m->pertag->showbars[i] = m->showbar; ++ ++ /* swap focus and zoomswap*/ ++ m->pertag->prevzooms[i] = NULL; ++ } + return m; + } + +@@ -981,7 +1018,7 @@ grabkeys(void) + void + incnmaster(const Arg *arg) + { +- selmon->nmaster = MAX(selmon->nmaster + arg->i, 0); ++ selmon->nmaster = selmon->pertag->nmasters[selmon->pertag->curtag] = MAX(selmon->nmaster + arg->i, 0); + arrange(selmon); + } + +@@ -1517,10 +1554,13 @@ setfullscreen(Client *c, int fullscreen) + void + setlayout(const Arg *arg) + { +- if (!arg || !arg->v || arg->v != selmon->lt[selmon->sellt]) +- selmon->sellt ^= 1; ++ if (!arg || !arg->v || arg->v != selmon->lt[selmon->sellt]) { ++ selmon->pertag->sellts[selmon->pertag->curtag] ^= 1; ++ selmon->sellt = selmon->pertag->sellts[selmon->pertag->curtag]; ++ } + if (arg && arg->v) +- selmon->lt[selmon->sellt] = (Layout *)arg->v; ++ selmon->pertag->ltidxs[selmon->pertag->curtag][selmon->sellt] = (Layout *)arg->v; ++ selmon->lt[selmon->sellt] = selmon->pertag->ltidxs[selmon->pertag->curtag][selmon->sellt]; + strncpy(selmon->ltsymbol, selmon->lt[selmon->sellt]->symbol, sizeof selmon->ltsymbol); + if (selmon->sel) + arrange(selmon); +@@ -1539,7 +1579,7 @@ setmfact(const Arg *arg) + f = arg->f < 1.0 ? arg->f + selmon->mfact : arg->f - 1.0; + if (f < 0.1 || f > 0.9) + return; +- selmon->mfact = f; ++ selmon->mfact = selmon->pertag->mfacts[selmon->pertag->curtag] = f; + arrange(selmon); + } + +@@ -1692,7 +1732,7 @@ tile(Monitor *m) + void + togglebar(const Arg *arg) + { +- selmon->showbar = !selmon->showbar; ++ selmon->showbar = selmon->pertag->showbars[selmon->pertag->curtag] = !selmon->showbar; + updatebarpos(selmon); + XMoveResizeWindow(dpy, selmon->barwin, selmon->wx, selmon->by, selmon->ww, bh); + arrange(selmon); +@@ -1731,9 +1771,29 @@ void + toggleview(const Arg *arg) + { + unsigned int newtagset = selmon->tagset[selmon->seltags] ^ (arg->ui & TAGMASK); ++ int i; + + if (newtagset) { ++ if (newtagset == ~0) { ++ selmon->pertag->prevtag = selmon->pertag->curtag; ++ selmon->pertag->curtag = 0; ++ } ++ /* test if the user did not select the same tag */ ++ if (!(newtagset & 1 << (selmon->pertag->curtag - 1))) { ++ selmon->pertag->prevtag = selmon->pertag->curtag; ++ for (i=0; !(newtagset & 1 << i); i++) ; ++ selmon->pertag->curtag = i + 1; ++ } + selmon->tagset[selmon->seltags] = newtagset; ++ ++ /* apply settings for this view */ ++ selmon->nmaster = selmon->pertag->nmasters[selmon->pertag->curtag]; ++ selmon->mfact = selmon->pertag->mfacts[selmon->pertag->curtag]; ++ selmon->sellt = selmon->pertag->sellts[selmon->pertag->curtag]; ++ selmon->lt[selmon->sellt] = selmon->pertag->ltidxs[selmon->pertag->curtag][selmon->sellt]; ++ selmon->lt[selmon->sellt^1] = selmon->pertag->ltidxs[selmon->pertag->curtag][selmon->sellt^1]; ++ if (selmon->showbar != selmon->pertag->showbars[selmon->pertag->curtag]) ++ togglebar(NULL); + focus(NULL); + arrange(selmon); + } +@@ -2031,11 +2091,33 @@ updatewmhints(Client *c) + void + view(const Arg *arg) + { ++ int i; ++ unsigned int tmptag; ++ + if ((arg->ui & TAGMASK) == selmon->tagset[selmon->seltags]) + return; + selmon->seltags ^= 1; /* toggle sel tagset */ +- if (arg->ui & TAGMASK) ++ if (arg->ui & TAGMASK) { ++ selmon->pertag->prevtag = selmon->pertag->curtag; + selmon->tagset[selmon->seltags] = arg->ui & TAGMASK; ++ if (arg->ui == ~0) ++ selmon->pertag->curtag = 0; ++ else { ++ for (i=0; !(arg->ui & 1 << i); i++) ; ++ selmon->pertag->curtag = i + 1; ++ } ++ } else { ++ tmptag = selmon->pertag->prevtag; ++ selmon->pertag->prevtag = selmon->pertag->curtag; ++ selmon->pertag->curtag = tmptag; ++ } ++ selmon->nmaster = selmon->pertag->nmasters[selmon->pertag->curtag]; ++ selmon->mfact = selmon->pertag->mfacts[selmon->pertag->curtag]; ++ selmon->sellt = selmon->pertag->sellts[selmon->pertag->curtag]; ++ selmon->lt[selmon->sellt] = selmon->pertag->ltidxs[selmon->pertag->curtag][selmon->sellt]; ++ selmon->lt[selmon->sellt^1] = selmon->pertag->ltidxs[selmon->pertag->curtag][selmon->sellt^1]; ++ if (selmon->showbar != selmon->pertag->showbars[selmon->pertag->curtag]) ++ togglebar(NULL); + focus(NULL); + arrange(selmon); + } diff --git a/build/jq/url b/build/jq/url @@ -0,0 +1 @@ +http://github.com/stedolan/jq/releases/download/jq-1.5/jq-1.5.tar.gz