[wiki] [sites] Rename most misnamed diff files... || Britton Leo Kerin

From: <git_AT_suckless.org>
Date: Fri, 08 Jul 2016 22:59:49 +0200

commit 3979685fca5cc5200b95a9ecc31da11cc8f9ba03
Author: Britton Leo Kerin <britton.kerin_AT_gmail.com>
Date: Fri Jul 8 12:56:02 2016 -0800

    Rename most misnamed diff files...
    
    Most of the diffs that don't follow the current agreed-upon naming
    scheme are misnamed in the same way. This commit renames all of these
    that apply cleanly. Dates are looked up from the short has and added.

diff --git a/dwm.suckless.org/patches/alwaysfullscreen.md b/dwm.suckless.org/patches/alwaysfullscreen.md
index e4edeec..9d703b8 100644
--- a/dwm.suckless.org/patches/alwaysfullscreen.md
+++ b/dwm.suckless.org/patches/alwaysfullscreen.md
_AT_@ -10,7 +10,7 @@ focusstack().
 Download
 --------
 
-* [dwm-cdec978-alwaysfullscreen.diff](dwm-cdec978-alwaysfullscreen.diff) (323b) (20140220)
+* [dwm-alwaysfullscreen-git-20130827-cdec978.diff](dwm-alwaysfullscreen-git-20130827-cdec978.diff) (323b) (20140220)
 
 Author
 ------
diff --git a/dwm.suckless.org/patches/argbcolor.md b/dwm.suckless.org/patches/argbcolor.md
index b42ed12..1fef6cd 100644
--- a/dwm.suckless.org/patches/argbcolor.md
+++ b/dwm.suckless.org/patches/argbcolor.md
_AT_@ -13,7 +13,7 @@ just like [ARGB patch for st][1].
 Download
 --------
 
- * [dwm-3465bed-argbcolor.diff](dwm-3465bed-argbcolor.diff) (20160307)
+ * [dwm-argbcolor-git-20151219-3465bed.diff](dwm-argbcolor-git-20151219-3465bed.diff) (20160307)
 
 
 Author
diff --git a/dwm.suckless.org/patches/attachabove.md b/dwm.suckless.org/patches/attachabove.md
index b1e049e..fa2dae0 100644
--- a/dwm.suckless.org/patches/attachabove.md
+++ b/dwm.suckless.org/patches/attachabove.md
_AT_@ -11,9 +11,9 @@ Download
 Patches against different versions of dwm are available at
 [dwm-clean-patches](https://github.com/jceb/dwm-clean-patches).
 
- * [dwm-6.1-attachabove.diff](dwm-6.1-attachabove.diff) (1829b) (20151122)
+ * [dwm-attachabove-6.1.diff](dwm-attachabove-6.1.diff) (1829b) (20151122)
  * [dwm-git-20120406-attachabove.diff](dwm-git-20120406-attachabove.diff) (1709b)
- * [dwm-6.0-attachabove.diff](dwm-6.0-attachabove.diff) (1707b) (20120406)
+ * [dwm-attachabove-6.0.diff](dwm-attachabove-6.0.diff) (1707b) (20120406)
  * [dwm-5.6.1-attachabove.diff](historical/dwm-5.6.1-attachabove.diff) (1.1K) (20090817)
 
 Author
diff --git a/dwm.suckless.org/patches/attachaside.md b/dwm.suckless.org/patches/attachaside.md
index 26a7a31..611d065 100644
--- a/dwm.suckless.org/patches/attachaside.md
+++ b/dwm.suckless.org/patches/attachaside.md
_AT_@ -54,7 +54,7 @@ improved to also attach to the stack on unfocused tags.
 
 ### Original
 
-* [dwm-6.0-attachaside.diff](dwm-6.0-attachaside.diff) (1,6K) (20140412)
+* [dwm-attachaside-6.0.diff](dwm-attachaside-6.0.diff) (1,6K) (20140412)
 * [dwm-5.7.2-attachaside.diff](historical/dwm-5.7.2-attachaside.diff) (1.1K) (20091215)
 * [dwm-5.6.1-attachaside.diff](historical/dwm-5.6.1-attachaside.diff) (1.1K) (20090915)
 
diff --git a/dwm.suckless.org/patches/autoresize.md b/dwm.suckless.org/patches/autoresize.md
index 02baeb5..e5c8c4c 100644
--- a/dwm.suckless.org/patches/autoresize.md
+++ b/dwm.suckless.org/patches/autoresize.md
_AT_@ -7,7 +7,7 @@ By default, windows that are not visible when requesting a resize/move wont get
 ## Download
 
  * [autoresize.diff](autoresize.diff) autoresize.diff (07.03.2010)
- * [dwm-6.0-autoresize.diff](dwm-6.0-autoresize.diff) (15.04.2013)
+ * [dwm-autoresize-6.0.diff](dwm-autoresize-6.0.diff) (15.04.2013)
 
 ## Author
 
diff --git a/dwm.suckless.org/patches/bottommargin.md b/dwm.suckless.org/patches/bottommargin.md
index 2dd33ae..c805b97 100644
--- a/dwm.suckless.org/patches/bottommargin.md
+++ b/dwm.suckless.org/patches/bottommargin.md
_AT_@ -6,7 +6,7 @@ Adds a variable margin at the bottom for status or notification bars
 
 ## Download
 
- * [dwm-6.0-bottommargin.diff](dwm-6.0-bottommargin.diff) dwm-6.0-bottommargin.diff (07.06.2014)
+ * [dwm-bottommargin-6.0.diff](dwm-bottommargin-6.0.diff) dwm-bottommargin-6.0.diff (07.06.2014)
 
 ## Author
 
diff --git a/dwm.suckless.org/patches/center.md b/dwm.suckless.org/patches/center.md
index 4ff47b9..ccc8eb1 100644
--- a/dwm.suckless.org/patches/center.md
+++ b/dwm.suckless.org/patches/center.md
_AT_@ -10,7 +10,7 @@ monitor.
 Download
 --------
 
-* [dwm-6.1-center.diff](dwm-6.1-center.diff) (2k) (20151114)
+* [dwm-center-6.1.diff](dwm-center-6.1.diff) (2k) (20151114)
 * [dwm-cdec978-center.diff](historical/dwm-cdec978-center.diff) (2k) (20140123)
 
 Author
diff --git a/dwm.suckless.org/patches/centeredmaster.md b/dwm.suckless.org/patches/centeredmaster.md
index 5c3b112..551fe9c 100644
--- a/dwm.suckless.org/patches/centeredmaster.md
+++ b/dwm.suckless.org/patches/centeredmaster.md
_AT_@ -88,7 +88,7 @@ behind (logs, tests, ...).
 ## Links
 
 * [centeredmaster.c](centeredmaster.c) - 2015/11/22
-* [dwm-6.1-centeredmaster.diff](dwm-6.1-centeredmaster.diff) - 2015/11/21
+* [dwm-centeredmaster-6.1.diff](dwm-centeredmaster-6.1.diff) - 2015/11/21
 
 
 [jerome](http://blog.jardinmagique.info) <jerome_AT_gcu.info>
diff --git a/dwm.suckless.org/patches/combo.md b/dwm.suckless.org/patches/combo.md
index 0fc4f12..50e5303 100644
--- a/dwm.suckless.org/patches/combo.md
+++ b/dwm.suckless.org/patches/combo.md
_AT_@ -18,9 +18,9 @@ and view so you could replace all usages if you wanted.
 Download
 --------
 
- * [dwm-5.9-combo.diff](dwm-5.9-combo.diff) - 2010-10-30
- * [dwm-6.0-combo.diff](dwm-6.0-combo.diff) - 2012-10-09
- * [dwm-6.1-combo.diff](dwm-6.1-combo.diff) - 2016-01-22
+ * [dwm-combo-5.9.diff](dwm-combo-5.9.diff) - 2010-10-30
+ * [dwm-combo-6.0.diff](dwm-combo-6.0.diff) - 2012-10-09
+ * [dwm-combo-6.1.diff](dwm-combo-6.1.diff) - 2016-01-22
 
 Author
 ------
diff --git a/dwm.suckless.org/patches/current_desktop.md b/dwm.suckless.org/patches/current_desktop.md
index c3be18e..1a4b26d 100644
--- a/dwm.suckless.org/patches/current_desktop.md
+++ b/dwm.suckless.org/patches/current_desktop.md
_AT_@ -23,7 +23,7 @@
 
 ## Download
 
- * [dwm-5.8.2-current_desktop.diff](dwm-5.8.2-current_desktop.diff) (dwm 2010604)
+ * [dwm-current_desktop-5.8.2.diff](dwm-current_desktop-5.8.2.diff) (dwm 2010604)
 
 ## Author
 
diff --git a/dwm.suckless.org/patches/dualstatus.md b/dwm.suckless.org/patches/dualstatus.md
index 58648a6..d059ab7 100644
--- a/dwm.suckless.org/patches/dualstatus.md
+++ b/dwm.suckless.org/patches/dualstatus.md
_AT_@ -11,8 +11,8 @@ xsetroot -name "top text;bottom text"
 Download
 --------
 
- * [dwm-6.1-dualstatus.diff](dwm-6.1-dualstatus.diff) (4683b) (20151110)
- * [dwm-6.0-dualstatus.diff](dwm-6.0-dualstatus.diff) (4794b) (20130908)
+ * [dwm-dualstatus-6.1.diff](dwm-dualstatus-6.1.diff) (4683b) (20151110)
+ * [dwm-dualstatus-6.0.diff](dwm-dualstatus-6.0.diff) (4794b) (20130908)
 
 Screenshot
 ----------
diff --git a/dwm.suckless.org/patches/dwm-3465bed-argbcolor.diff b/dwm.suckless.org/patches/dwm-3465bed-argbcolor.diff
deleted file mode 100644
index fe6e51e..0000000
--- a/dwm.suckless.org/patches/dwm-3465bed-argbcolor.diff
+++ /dev/null
_AT_@ -1,269 +0,0 @@
-From db0f6c99b236aafb33c21cc57ad4ec493ab4d3b2 Mon Sep 17 00:00:00 2001
-From: "Eon S. Jeon" <esjeon_AT_hyunmu.am>
-Date: Mon, 7 Mar 2016 20:17:24 +0900
-Subject: [PATCH] implement ARGB color support
-
----
- config.def.h |  2 ++
- config.mk    |  2 +-
- drw.c        | 22 +++++++++----------
- drw.h        |  7 ++++--
- dwm.c        | 70 ++++++++++++++++++++++++++++++++++++++++++++++++++----------
- 5 files changed, 78 insertions(+), 25 deletions(-)
-
-diff --git a/config.def.h b/config.def.h
-index 7054c06..4448d46 100644
---- a/config.def.h
-+++ b/config.def.h
-_AT_@ -11,6 +11,8 @@ static const char normfgcolor[]     = "#bbbbbb";
- static const char selbordercolor[]  = "#005577";
- static const char selbgcolor[]      = "#005577";
- static const char selfgcolor[]      = "#eeeeee";
-+static unsigned int baralpha        = 0xd0;
-+static unsigned int borderalpha     = OPAQUE;
- 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 */
-diff --git a/config.mk b/config.mk
-index 80dc936..2c62e89 100644
---- a/config.mk
-+++ b/config.mk
-_AT_@ -22,7 +22,7 @@ FREETYPEINC = /usr/include/freetype2
- 
- # includes and libs
- INCS = -I${X11INC} -I${FREETYPEINC}
--LIBS = -L${X11LIB} -lX11 ${XINERAMALIBS} ${FREETYPELIBS}
-+LIBS = -L${X11LIB} -lX11 ${XINERAMALIBS} ${FREETYPELIBS} -lXrender
- 
- # flags
- CPPFLAGS = -D_DEFAULT_SOURCE -D_BSD_SOURCE -D_POSIX_C_SOURCE=2 -DVERSION=\"${VERSION}\" ${XINERAMAFLAGS}
-diff --git a/drw.c b/drw.c
-index f49200b..12e3ebc 100644
---- a/drw.c
-+++ b/drw.c
-_AT_@ -61,7 +61,7 @@ utf8decode(const char *c, long *u, size_t clen)
- }
- 
- Drw *
--drw_create(Display *dpy, int screen, Window root, unsigned int w, unsigned int h)
-+drw_create(Display *dpy, int screen, Window root, unsigned int w, unsigned int h, Visual *visual, unsigned int depth, Colormap cmap)
- {
- 	Drw *drw;
- 
-_AT_@ -71,8 +71,11 @@ drw_create(Display *dpy, int screen, Window root, unsigned int w, unsigned int h
- 	drw->root = root;
- 	drw->w = w;
- 	drw->h = h;
--	drw->drawable = XCreatePixmap(dpy, root, w, h, DefaultDepth(dpy, screen));
--	drw->gc = XCreateGC(dpy, root, 0, NULL);
-+	drw->visual = visual;
-+	drw->depth = depth;
-+	drw->cmap = cmap;
-+	drw->drawable = XCreatePixmap(dpy, root, w, h, depth);
-+	drw->gc = XCreateGC(dpy, drw->drawable, 0, NULL);
- 	drw->fontcount = 0;
- 	XSetLineAttributes(dpy, drw->gc, 1, LineSolid, CapButt, JoinMiter);
- 
-_AT_@ -86,7 +89,7 @@ drw_resize(Drw *drw, unsigned int w, unsigned int h)
- 	drw->h = h;
- 	if (drw->drawable)
- 		XFreePixmap(drw->dpy, drw->drawable);
--	drw->drawable = XCreatePixmap(drw->dpy, drw->root, w, h, DefaultDepth(drw->dpy, drw->screen));
-+	drw->drawable = XCreatePixmap(drw->dpy, drw->root, w, h, drw->depth);
- }
- 
- void
-_AT_@ -180,16 +183,15 @@ drw_font_free(Fnt *font)
- }
- 
- Clr *
--drw_clr_create(Drw *drw, const char *clrname)
-+drw_clr_create(Drw *drw, const char *clrname, unsigned int alpha)
- {
- 	Clr *clr;
- 
- 	clr = ecalloc(1, sizeof(Clr));
--	if (!XftColorAllocName(drw->dpy, DefaultVisual(drw->dpy, drw->screen),
--	                       DefaultColormap(drw->dpy, drw->screen),
-+	if (!XftColorAllocName(drw->dpy, drw->visual, drw->cmap,
- 	                       clrname, &clr->rgb))
- 		die("error, cannot allocate color '%s'
", clrname);
--	clr->pix = clr->rgb.pixel;
-+	clr->pix = (clr->rgb.pixel & 0x00ffffffU) | (alpha << 24);
- 
- 	return clr;
- }
-_AT_@ -245,9 +247,7 @@ drw_text(Drw *drw, int x, int y, unsigned int w, unsigned int h, const char *tex
- 		XSetForeground(drw->dpy, drw->gc, invert ?
- 		               drw->scheme->fg->pix : drw->scheme->bg->pix);
- 		XFillRectangle(drw->dpy, drw->drawable, drw->gc, x, y, w, h);
--		d = XftDrawCreate(drw->dpy, drw->drawable,
--		                  DefaultVisual(drw->dpy, drw->screen),
--		                  DefaultColormap(drw->dpy, drw->screen));
-+		d = XftDrawCreate(drw->dpy, drw->drawable, drw->visual, drw->cmap);
- 	}
- 
- 	curfont = drw->fonts[0];
-diff --git a/drw.h b/drw.h
-index e3b8515..1fed824 100644
---- a/drw.h
-+++ b/drw.h
-_AT_@ -30,6 +30,9 @@ typedef struct {
- 	Display *dpy;
- 	int screen;
- 	Window root;
-+	Visual *visual;
-+	unsigned int depth;
-+	Colormap cmap;
- 	Drawable drawable;
- 	GC gc;
- 	ClrScheme *scheme;
-_AT_@ -43,7 +46,7 @@ typedef struct {
- } Extnts;
- 
- /* Drawable abstraction */
--Drw *drw_create(Display *, int, Window, unsigned int, unsigned int);
-+Drw *drw_create(Display *, int, Window, unsigned int, unsigned int, Visual*, unsigned int, Colormap);
- void drw_resize(Drw *, unsigned int, unsigned int);
- void drw_free(Drw *);
- 
-_AT_@ -55,7 +58,7 @@ void drw_font_getexts(Fnt *, const char *, unsigned int, Extnts *);
- unsigned int drw_font_getexts_width(Fnt *, const char *, unsigned int);
- 
- /* Colour abstraction */
--Clr *drw_clr_create(Drw *, const char *);
-+Clr *drw_clr_create(Drw *, const char *, unsigned int);
- void drw_clr_free(Clr *);
- 
- /* Cursor abstraction */
-diff --git a/dwm.c b/dwm.c
-index ff7e096..286fb10 100644
---- a/dwm.c
-+++ b/dwm.c
-_AT_@ -57,6 +57,8 @@
- #define TAGMASK                 ((1 << LENGTH(tags)) - 1)
- #define TEXTW(X)                (drw_text(drw, 0, 0, 0, 0, (X), 0) + drw->fonts[0]->h)
- 
-+#define OPAQUE                  0xffU
-+
- /* enums */
- enum { CurNormal, CurResize, CurMove, CurLast }; /* cursor */
- enum { SchemeNorm, SchemeSel, SchemeLast }; /* color schemes */
-_AT_@ -232,6 +234,7 @@ static Monitor *wintomon(Window w);
- static int xerror(Display *dpy, XErrorEvent *ee);
- static int xerrordummy(Display *dpy, XErrorEvent *ee);
- static int xerrorstart(Display *dpy, XErrorEvent *ee);
-+static void xinitvisual();
- static void zoom(const Arg *arg);
- 
- /* variables */
-_AT_@ -267,6 +270,11 @@ static Drw *drw;
- static Monitor *mons, *selmon;
- static Window root;
- 
-+static int useargb = 0;
-+static Visual *visual;
-+static int depth;
-+static Colormap cmap;
-+
- /* configuration, allows nested code to access above variables */
- #include "config.h"
- 
-_AT_@ -1561,7 +1569,8 @@ setup(void)
- 	sw = DisplayWidth(dpy, screen);
- 	sh = DisplayHeight(dpy, screen);
- 	root = RootWindow(dpy, screen);
--	drw = drw_create(dpy, screen, root, sw, sh);
-+	xinitvisual();
-+	drw = drw_create(dpy, screen, root, sw, sh, visual, depth, cmap);
- 	drw_load_fonts(drw, fonts, LENGTH(fonts));
- 	if (!drw->fontcount)
- 		die("no fonts could be loaded.
");
-_AT_@ -1585,12 +1594,12 @@ setup(void)
- 	cursor[CurResize] = drw_cur_create(drw, XC_sizing);
- 	cursor[CurMove] = drw_cur_create(drw, XC_fleur);
- 	/* init appearance */
--	scheme[SchemeNorm].border = drw_clr_create(drw, normbordercolor);
--	scheme[SchemeNorm].bg = drw_clr_create(drw, normbgcolor);
--	scheme[SchemeNorm].fg = drw_clr_create(drw, normfgcolor);
--	scheme[SchemeSel].border = drw_clr_create(drw, selbordercolor);
--	scheme[SchemeSel].bg = drw_clr_create(drw, selbgcolor);
--	scheme[SchemeSel].fg = drw_clr_create(drw, selfgcolor);
-+	scheme[SchemeNorm].border = drw_clr_create(drw, normbordercolor, borderalpha);
-+	scheme[SchemeNorm].bg = drw_clr_create(drw, normbgcolor, baralpha);
-+	scheme[SchemeNorm].fg = drw_clr_create(drw, normfgcolor, OPAQUE);
-+	scheme[SchemeSel].border = drw_clr_create(drw, selbordercolor, borderalpha);
-+	scheme[SchemeSel].bg = drw_clr_create(drw, selbgcolor, baralpha);
-+	scheme[SchemeSel].fg = drw_clr_create(drw, selfgcolor, OPAQUE);
- 	/* init bars */
- 	updatebars();
- 	updatestatus();
-_AT_@ -1803,15 +1812,17 @@ updatebars(void)
- 	Monitor *m;
- 	XSetWindowAttributes wa = {
- 		.override_redirect = True,
--		.background_pixmap = ParentRelative,
-+		.background_pixel = 0,
-+		.border_pixel = 0,
-+		.colormap = cmap,
- 		.event_mask = ButtonPressMask|ExposureMask
- 	};
- 	for (m = mons; m; m = m->next) {
- 		if (m->barwin)
- 			continue;
--		m->barwin = XCreateWindow(dpy, root, m->wx, m->by, m->ww, bh, 0, DefaultDepth(dpy, screen),
--		                          CopyFromParent, DefaultVisual(dpy, screen),
--		                          CWOverrideRedirect|CWBackPixmap|CWEventMask, &wa);
-+		m->barwin = XCreateWindow(dpy, root, m->wx, m->by, m->ww, bh, 0, depth,
-+		                          InputOutput, visual,
-+		                          CWOverrideRedirect|CWBackPixel|CWBorderPixel|CWColormap|CWEventMask, &wa);
- 		XDefineCursor(dpy, m->barwin, cursor[CurNormal]->cursor);
- 		XMapRaised(dpy, m->barwin);
- 	}
-_AT_@ -2112,6 +2123,43 @@ xerrorstart(Display *dpy, XErrorEvent *ee)
- }
- 
- void
-+xinitvisual()
-+{
-+	XVisualInfo *infos;
-+	XRenderPictFormat *fmt;
-+	int nitems;
-+	int i;
-+
-+	XVisualInfo tpl = {
-+		.screen = screen,
-+		.depth = 32,
-+		.class = TrueColor
-+	};
-+	long masks = VisualScreenMask | VisualDepthMask | VisualClassMask;
-+
-+	infos = XGetVisualInfo(dpy, masks, &tpl, &nitems);
-+	visual = NULL;
-+	for(i = 0; i < nitems; i ++) {
-+		fmt = XRenderFindVisualFormat(dpy, infos[i].visual);
-+		if (fmt->type == PictTypeDirect && fmt->direct.alphaMask) {
-+			visual = infos[i].visual;
-+			depth = infos[i].depth;
-+			cmap = XCreateColormap(dpy, root, visual, AllocNone);
-+			useargb = 1;
-+			break;
-+		}
-+	}
-+
-+	XFree(infos);
-+
-+	if (! visual) {
-+		visual = DefaultVisual(dpy, screen);
-+		depth = DefaultDepth(dpy, screen);
-+		cmap = DefaultColormap(dpy, screen);
-+	}
-+}
-+
-+void
- zoom(const Arg *arg)
- {
- 	Client *c = selmon->sel;
--- 
-2.1.4
-
diff --git a/dwm.suckless.org/patches/dwm-5.7.2-nametag.diff b/dwm.suckless.org/patches/dwm-5.7.2-nametag.diff
deleted file mode 100644
index 6c4d752..0000000
--- a/dwm.suckless.org/patches/dwm-5.7.2-nametag.diff
+++ /dev/null
_AT_@ -1,70 +0,0 @@
-diff -r 2bcd25cce4ab config.def.h
---- a/config.def.h	Sun Sep 27 20:20:14 2009 +0100
-+++ b/config.def.h	Thu Oct 29 12:27:26 2009 -0700
-_AT_@ -14,7 +14,8 @@
- 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_TAGLEN 16
-+static char tags[][MAX_TAGLEN] = { "1", "2", "3", "4", "5", "6", "7", "8", "9" };
- 
- static const Rule rules[] = {
- 	/* class      instance    title       tags mask     isfloating   monitor */
-_AT_@ -71,6 +72,7 @@
- 	{ 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 -r 2bcd25cce4ab config.mk
---- a/config.mk	Sun Sep 27 20:20:14 2009 +0100
-+++ b/config.mk	Thu Oct 29 12:27:26 2009 -0700
-_AT_@ -19,7 +19,7 @@
- LIBS = -L/usr/lib -lc -L${X11LIB} -lX11 ${XINERAMALIBS}
- 
- # flags
--CPPFLAGS = -DVERSION=\"${VERSION}\" ${XINERAMAFLAGS}
-+CPPFLAGS = -D_BSD_SOURCE -DVERSION=\"${VERSION}\" ${XINERAMAFLAGS}
- #CFLAGS = -g -std=c99 -pedantic -Wall -O0 ${INCS} ${CPPFLAGS}
- CFLAGS = -std=c99 -pedantic -Wall -Os ${INCS} ${CPPFLAGS}
- #LDFLAGS = -g ${LIBS}
-diff -r 2bcd25cce4ab dwm.c
---- a/dwm.c	Sun Sep 27 20:20:14 2009 +0100
-+++ b/dwm.c	Thu Oct 29 12:27:26 2009 -0700
-_AT_@ -195,6 +195,7 @@
- static void maprequest(XEvent *e);
- static void monocle(Monitor *m);
- static void movemouse(const Arg *arg);
-+static void nametag(const Arg *arg);
- static Client *nexttiled(Client *c);
- static Monitor *ptrtomon(int x, int y);
- static void propertynotify(XEvent *e);
-_AT_@ -1240,6 +1241,25 @@
- 	}
- }
- 
-+void
-+nametag(const Arg *arg) {
-+	char *cp, name[MAX_TAGLEN];
-+	FILE *fp;
-+	int i;
-+
-+	if(!(fp = (FILE*)popen("echo -n | dmenu", "r")))
-+		fprintf(stderr, "dwm: Could not popen 'echo -n | dmenu'
");
-+	cp = fgets(name, MAX_TAGLEN, fp);
-+	pclose(fp);
-+	if(cp == NULL)
-+		return;
-+
-+	for(i = 0; i < LENGTH(tags); i++)
-+		if(selmon->tagset[selmon->seltags] & (1 << i))
-+			memcpy(tags[i], name, MAX_TAGLEN);
-+	drawbars();
-+}
-+
- Client *
- nexttiled(Client *c) {
- 	for(; c && (c->isfloating || !ISVISIBLE(c)); c = c->next);
diff --git a/dwm.suckless.org/patches/dwm-5.7.2-sizehints.diff b/dwm.suckless.org/patches/dwm-5.7.2-sizehints.diff
deleted file mode 100644
index 82c2499..0000000
--- a/dwm.suckless.org/patches/dwm-5.7.2-sizehints.diff
+++ /dev/null
_AT_@ -1,24 +0,0 @@
-diff -r 46109f7eeb14 dwm.c
---- a/dwm.c	Mon Dec 21 01:14:28 2009 -0500
-+++ b/dwm.c	Mon Dec 21 01:16:38 2009 -0500
-_AT_@ -1841,7 +1841,7 @@
- 
- 	if(!XGetWMNormalHints(dpy, c->win, &size, &msize))
- 		/* size is uninitialized, ensure that size.flags aren't used */
--		size.flags = PSize;
-+		size.flags = 0;
- 	if(size.flags & PBaseSize) {
- 		c->basew = size.base_width;
- 		c->baseh = size.base_height;
-_AT_@ -1880,6 +1880,11 @@
- 	}
- 	else
- 		c->maxa = c->mina = 0.0;
-+	if(size.flags & PSize) {
-+		c->basew = size.base_width;
-+		c->baseh = size.base_height;
-+		c->isfloating = True;
-+	}
- 	c->isfixed = (c->maxw && c->minw && c->maxh && c->minh
- 	             && c->maxw == c->minw && c->maxh == c->minh);
- }
diff --git a/dwm.suckless.org/patches/dwm-5.8.2-current_desktop.diff b/dwm.suckless.org/patches/dwm-5.8.2-current_desktop.diff
deleted file mode 100644
index 3f22b9f..0000000
--- a/dwm.suckless.org/patches/dwm-5.8.2-current_desktop.diff
+++ /dev/null
_AT_@ -1,109 +0,0 @@
-diff -r 23b71491e149 dwm.c
---- a/dwm.c	Thu Dec 02 10:16:47 2010 +0000
-+++ b/dwm.c	Mon Dec 13 08:18:03 2010 -0500
-_AT_@ -57,8 +57,8 @@
- /* enums */
- enum { CurNormal, CurResize, CurMove, CurLast };        /* cursor */
- enum { ColBorder, ColFG, ColBG, ColLast };              /* color */
--enum { NetSupported, NetWMName, NetWMState,
--       NetWMFullscreen, NetLast };                      /* EWMH atoms */
-+enum { NetSupported, NetWMName, NetWMState, NetWMFullscreen,
-+    NetNumberOfDesktops, NetCurrentDesktop, NetLast };  /* EWMH atoms */
- enum { WMProtocols, WMDelete, WMState, WMLast };        /* default atoms */
- enum { ClkTagBar, ClkLtSymbol, ClkStatusText, ClkWinTitle,
-        ClkClientWin, ClkRootWin, ClkLast };             /* clicks */
-_AT_@ -212,6 +212,7 @@
- static void setclientstate(Client *c, long state);
- static void setlayout(const Arg *arg);
- static void setmfact(const Arg *arg);
-+static void setnumbdesktops(void);
- static void setup(void);
- static void showhide(Client *c);
- static void sigchld(int unused);
-_AT_@ -227,6 +228,7 @@
- static void unfocus(Client *c, Bool setfocus);
- static void unmanage(Client *c, Bool destroyed);
- static void unmapnotify(XEvent *e);
-+static void updatecurrenddesktop(void);
- static Bool updategeom(void);
- static void updatebarpos(Monitor *m);
- static void updatebars(void);
-_AT_@ -1467,6 +1469,13 @@
- }
- 
- void
-+setcurrentdesktop(void){
-+        long data[] = { 0 };
-+        XChangeProperty(dpy, root, netatom[NetCurrentDesktop], XA_CARDINAL, 32,
-+                        PropModeReplace, (unsigned char *)data, 1);
-+}
-+
-+void
- setclientstate(Client *c, long state) {
- 	long data[] = { state, None };
- 
-_AT_@ -1502,6 +1511,13 @@
- }
- 
- void
-+setnumbdesktops(void){
-+        long data[] = { TAGMASK };
-+        XChangeProperty(dpy, root, netatom[NetNumberOfDesktops], XA_CARDINAL, 32,
-+                        PropModeReplace, (unsigned char *)data, 1);
-+}
-+
-+void
- setup(void) {
- 	XSetWindowAttributes wa;
- 
-_AT_@ -1524,6 +1540,8 @@
- 	netatom[NetWMName] = XInternAtom(dpy, "_NET_WM_NAME", False);
- 	netatom[NetWMState] = XInternAtom(dpy, "_NET_WM_STATE", False);
- 	netatom[NetWMFullscreen] = XInternAtom(dpy, "_NET_WM_STATE_FULLSCREEN", False);
-+	netatom[NetNumberOfDesktops] = XInternAtom(dpy, "_NET_NUMBER_OF_DESKTOPS", False);
-+	netatom[NetCurrentDesktop] = XInternAtom(dpy, "_NET_CURRENT_DESKTOP", False);
- 	/* init cursors */
- 	cursor[CurNormal] = XCreateFontCursor(dpy, XC_left_ptr);
- 	cursor[CurResize] = XCreateFontCursor(dpy, XC_sizing);
-_AT_@ -1546,6 +1564,10 @@
- 	/* EWMH support per view */
- 	XChangeProperty(dpy, root, netatom[NetSupported], XA_ATOM, 32,
- 			PropModeReplace, (unsigned char *) netatom, NetLast);
-+        /* set EWMH NUMBER_OF_DESKTOPS */
-+        setnumbdesktops();
-+        /* initialize EWMH CURRENT_DESKTOP */
-+        setcurrentdesktop();
- 	/* select for events */
- 	wa.cursor = cursor[CurNormal];
- 	wa.event_mask = SubstructureRedirectMask|SubstructureNotifyMask|ButtonPressMask
-_AT_@ -1688,6 +1710,7 @@
- 		selmon->tagset[selmon->seltags] = newtagset;
- 		arrange(selmon);
- 	}
-+        updatecurrenddesktop();
- }
- 
- void
-_AT_@ -1763,6 +1786,14 @@
- 		m->by = -bh;
- }
- 
-+void
-+updatecurrenddesktop(){
-+        long data[] = { selmon->tagset[selmon->seltags] };
-+        
-+        XChangeProperty(dpy, root, netatom[NetCurrentDesktop], XA_CARDINAL, 32,
-+                        PropModeReplace, (unsigned char *)data, 1);
-+}
-+
- Bool
- updategeom(void) {
- 	Bool dirty = False;
-_AT_@ -1948,6 +1979,7 @@
- 	if(arg->ui & TAGMASK)
- 		selmon->tagset[selmon->seltags] = arg->ui & TAGMASK;
- 	arrange(selmon);
-+        updatecurrenddesktop();
- }
- 
- Client *
diff --git a/dwm.suckless.org/patches/dwm-5.8.2-fibonacci.diff b/dwm.suckless.org/patches/dwm-5.8.2-fibonacci.diff
deleted file mode 100644
index 78664c8..0000000
--- a/dwm.suckless.org/patches/dwm-5.8.2-fibonacci.diff
+++ /dev/null
_AT_@ -1,85 +0,0 @@
-diff --git a/config.def.h b/config.def.h
-index cca37df..91b91aa 100644
---- a/config.def.h
-+++ b/config.def.h
-_AT_@ -29,1 +29,2 @@
-+#include "fibonacci.c"
- static const Layout layouts[] = {
-_AT_@ -34,3 +35,5 @@
-+ 	{ "[_AT_]",      spiral },
-+ 	{ "[\]",      dwindle },
- };
- 
- /* key definitions */
-diff --git a/fibonacci.c b/fibonacci.c
-new file mode 100644
-index 0000000..fce0a57
---- /dev/null
-+++ b/fibonacci.c
-_AT_@ -0,0 +1,66 @@
-+void
-+fibonacci(Monitor *mon, int s) {
-+	unsigned int i, n, nx, ny, nw, nh;
-+	Client *c;
-+
-+	for(n = 0, c = nexttiled(mon->clients); c; c = nexttiled(c->next), n++);
-+	if(n == 0)
-+		return;
-+	
-+	nx = mon->wx;
-+	ny = 0;
-+	nw = mon->ww;
-+	nh = mon->wh;
-+	
-+	for(i = 0, c = nexttiled(mon->clients); c; c = nexttiled(c->next)) {
-+		if((i % 2 && nh / 2 > 2 * c->bw)
-+		   || (!(i % 2) && nw / 2 > 2 * c->bw)) {
-+			if(i < n - 1) {
-+				if(i % 2)
-+					nh /= 2;
-+				else
-+					nw /= 2;
-+				if((i % 4) == 2 && !s)
-+					nx += nw;
-+				else if((i % 4) == 3 && !s)
-+					ny += nh;
-+			}
-+			if((i % 4) == 0) {
-+				if(s)
-+					ny += nh;
-+				else
-+					ny -= nh;
-+			}
-+			else if((i % 4) == 1)
-+				nx += nw;
-+			else if((i % 4) == 2)
-+				ny += nh;
-+			else if((i % 4) == 3) {
-+				if(s)
-+					nx += nw;
-+				else
-+					nx -= nw;
-+			}
-+			if(i == 0)
-+			{
-+				if(n != 1)
-+					nw = mon->ww * mon->mfact;
-+				ny = mon->wy;
-+			}
-+			else if(i == 1)
-+				nw = mon->ww - nw;
-+			i++;
-+		}
-+		resize(c, nx, ny, nw - 2 * c->bw, nh - 2 * c->bw, False);
-+	}
-+}
-+
-+void
-+dwindle(Monitor *mon) {
-+	fibonacci(mon, 1);
-+}
-+
-+void
-+spiral(Monitor *mon) {
-+	fibonacci(mon, 0);
-+}
diff --git a/dwm.suckless.org/patches/dwm-5.8.2-gridmode.diff b/dwm.suckless.org/patches/dwm-5.8.2-gridmode.diff
deleted file mode 100644
index 0cbd8e2..0000000
--- a/dwm.suckless.org/patches/dwm-5.8.2-gridmode.diff
+++ /dev/null
_AT_@ -1,43 +0,0 @@
-diff -r 62791cc97f88 config.def.h
---- a/config.def.h	Tue Jun 01 17:39:26 2010 +0100
-+++ b/config.def.h	Wed Jun 02 13:42:49 2010 +0100
-_AT_@ -29,1 +29,2 @@
-+#include "grid.c"
- static const Layout layouts[] = {
-_AT_@ -34,3 +35,4 @@
-+	{ "HHH",      grid },
- };
- 
- /* key definitions */
-diff -r 62791cc97f88 grid.c
---- /dev/null	Thu Jan 01 00:00:00 1970 +0000
-+++ b/grid.c	Wed Jun 02 13:42:49 2010 +0100
-_AT_@ -0,0 +1,28 @@
-+void
-+grid(Monitor *m) {
-+	unsigned int i, n, cx, cy, cw, ch, aw, ah, cols, rows;
-+	Client *c;
-+
-+	for(n = 0, c = nexttiled(m->clients); c; c = nexttiled(c->next))
-+		n++;
-+
-+	/* grid dimensions */
-+	for(rows = 0; rows <= n/2; rows++)
-+		if(rows*rows >= n)
-+			break;
-+	cols = (rows && (rows - 1) * rows >= n) ? rows - 1 : rows;
-+
-+	/* window geoms (cell height/width) */
-+	ch = m->wh / (rows ? rows : 1);
-+	cw = m->ww / (cols ? cols : 1);
-+	for(i = 0, c = nexttiled(m->clients); c; c = nexttiled(c->next)) {
-+		cx = m->wx + (i / rows) * cw;
-+		cy = m->wy + (i % rows) * ch;
-+		/* adjust height/width of last row/column's windows */
-+		ah = ((i + 1) % rows == 0) ? m->wh - ch * rows : 0;
-+		aw = (i >= rows * (cols - 1)) ? m->ww - cw * cols : 0;
-+		resize(c, cx, cy, cw - 2 * c->bw + aw, ch - 2 * c->bw + ah, False);
-+		i++;
-+	}
-+}
-+
diff --git a/dwm.suckless.org/patches/dwm-5.8.2-monocle_count.diff b/dwm.suckless.org/patches/dwm-5.8.2-monocle_count.diff
deleted file mode 100644
index 7744ce6..0000000
--- a/dwm.suckless.org/patches/dwm-5.8.2-monocle_count.diff
+++ /dev/null
_AT_@ -1,52 +0,0 @@
-diff -r -U5 dwm-5.8.2/dwm.c dwm-5.8.2_monocle_count/dwm.c
---- dwm-5.8.2/dwm.c	2010-06-04 12:39:15.000000000 +0200
-+++ dwm-5.8.2_monocle_count/dwm.c	2010-06-15 15:52:51.000000000 +0200
-_AT_@ -684,10 +684,12 @@
- void
- drawbar(Monitor *m) {
- 	int x;
- 	unsigned int i, occ = 0, urg = 0;
- 	unsigned long *col;
-+	unsigned int a= 0, s= 0;
-+	char posbuf[10];
- 	Client *c;
- 
- 	for(c = m->clients; c; c = c->next) {
- 		occ |= c->tags;
- 		if(c->isurgent)
-_AT_@ -704,10 +706,22 @@
- 	}
- 	dc.w = blw = TEXTW(m->ltsymbol);
- 	drawtext(m->ltsymbol, dc.norm, False);
- 	dc.x += dc.w;
- 	x = dc.x;
-+	if(m->lt[m->sellt]->arrange == monocle){
-+		for(c= nexttiled(m->clients), a= 0, s= 0; c; c= nexttiled(c->next), a++)
-+			if(c == m->stack)
-+				s= a;
-+		if(!s && a)
-+			s= a;
-+		snprintf(posbuf, LENGTH(posbuf), "[%d/%d]", s, a);
-+		dc.w= TEXTW(posbuf);
-+		drawtext(posbuf, dc.norm, False);
-+		x= dc.x + dc.w;
-+	}
-+	
- 	if(m == selmon) { /* status is only drawn on selected monitor */
- 		dc.w = TEXTW(stext);
- 		dc.x = m->ww - dc.w;
- 		if(dc.x < x) {
- 			dc.x = x;
-_AT_@ -1184,12 +1198,10 @@
- 	Client *c;
- 
- 	for(c = m->clients; c; c = c->next)
- 		if(ISVISIBLE(c))
- 			n++;
--	if(n > 0) /* override layout symbol */
--		snprintf(m->ltsymbol, sizeof m->ltsymbol, "[%d]", n);
- 	for(c = nexttiled(m->clients); c; c = nexttiled(c->next))
- 		resize(c, m->wx, m->wy, m->ww - 2 * c->bw, m->wh - 2 * c->bw, False);
- }
- 
- void
diff --git a/dwm.suckless.org/patches/dwm-5.8.2-statusallmons.diff b/dwm.suckless.org/patches/dwm-5.8.2-statusallmons.diff
deleted file mode 100644
index 587035b..0000000
--- a/dwm.suckless.org/patches/dwm-5.8.2-statusallmons.diff
+++ /dev/null
_AT_@ -1,39 +0,0 @@
---- ../dwm-5.8.2/dwm.c	2011-03-18 09:51:10.000000000 +0100
-+++ ./dwm.c	2011-03-18 09:52:15.000000000 +0100
-_AT_@ -700,17 +700,13 @@ drawbar(Monitor *m) {
- 	drawtext(m->ltsymbol, dc.norm, False);
- 	dc.x += dc.w;
- 	x = dc.x;
--	if(m == selmon) { /* status is only drawn on selected monitor */
--		dc.w = TEXTW(stext);
--		dc.x = m->ww - dc.w;
--		if(dc.x < x) {
--			dc.x = x;
--			dc.w = m->ww - x;
--		}
--		drawtext(stext, dc.norm, False);
-+	dc.w = TEXTW(stext);
-+	dc.x = m->ww - dc.w;
-+	if(dc.x < x) {
-+		dc.x = x;
-+		dc.w = m->ww - x;
- 	}
--	else
--		dc.x = m->ww;
-+	drawtext(stext, dc.norm, False);
- 	if((dc.w = dc.x - x) > bh) {
- 		dc.x = x;
- 		if(m->sel) {
-_AT_@ -1917,9 +1913,11 @@ updatetitle(Client *c) {
- 
- void
- updatestatus(void) {
-+	Monitor* m;
- 	if(!gettextprop(root, XA_WM_NAME, stext, sizeof(stext)))
- 		strcpy(stext, "dwm-"VERSION);
--	drawbar(selmon);
-+	for(m = mons; m; m = m->next)
-+		drawbar(m);
- }
- 
- void
diff --git a/dwm.suckless.org/patches/dwm-5.9-combo.diff b/dwm.suckless.org/patches/dwm-5.9-combo.diff
deleted file mode 100644
index bf3827b..0000000
--- a/dwm.suckless.org/patches/dwm-5.9-combo.diff
+++ /dev/null
_AT_@ -1,72 +0,0 @@
-diff -r c361034c5a1c dwm.c
---- a/dwm.c	Sat Sep 11 19:00:18 2010 +0000
-+++ b/dwm.c	Thu Nov 25 22:54:04 2010 -0800
-_AT_@ -243,6 +243,11 @@
- static int xerrorstart(Display *dpy, XErrorEvent *ee);
- static void zoom(const Arg *arg);
- 
-+static void keyrelease(XEvent *e);
-+static void combotag(const Arg *arg);
-+static void comboview(const Arg *arg);
-+
-+
- /* variables */
- static const char broken[] = "broken";
- static char stext[256];
-_AT_@ -253,6 +258,7 @@
- static unsigned int numlockmask = 0;
- static void (*handler[LASTEvent]) (XEvent *) = {
- 	[ButtonPress] = buttonpress,
-+	[ButtonRelease] = keyrelease,
- 	[ClientMessage] = clientmessage,
- 	[ConfigureRequest] = configurerequest,
- 	[ConfigureNotify] = configurenotify,
-_AT_@ -260,6 +266,7 @@
- 	[EnterNotify] = enternotify,
- 	[Expose] = expose,
- 	[FocusIn] = focusin,
-+	[KeyRelease] = keyrelease,
- 	[KeyPress] = keypress,
- 	[MappingNotify] = mappingnotify,
- 	[MapRequest] = maprequest,
-_AT_@ -282,6 +289,40 @@
- struct NumTags { char limitexceeded[LENGTH(tags) > 31 ? -1 : 1]; };
- 
- /* function implementations */
-+static int combo = 0;
-+
-+void
-+keyrelease(XEvent *e) {
-+	combo = 0;
-+}
-+
-+void
-+combotag(const Arg *arg) {
-+	if(selmon->sel && arg->ui & TAGMASK) {
-+		if (combo) {
-+			selmon->sel->tags |= arg->ui & TAGMASK;
-+		} else {
-+			combo = 1;
-+			selmon->sel->tags = arg->ui & TAGMASK;
-+		}
-+		arrange(selmon);
-+	}
-+}
-+
-+void
-+comboview(const Arg *arg) {
-+	unsigned newtags = arg->ui & TAGMASK;
-+	if (combo) {
-+		selmon->tagset[selmon->seltags] |= newtags;
-+	} else {
-+		selmon->seltags ^= 1;	/*toggle tagset*/
-+		combo = 1;
-+		if (newtags)
-+			selmon->tagset[selmon->seltags] = newtags;
-+	}
-+	arrange(selmon);
-+}
-+
- void
- applyrules(Client *c) {
- 	const char *class, *instance;
diff --git a/dwm.suckless.org/patches/dwm-5.9-pwkl.diff b/dwm.suckless.org/patches/dwm-5.9-pwkl.diff
deleted file mode 100644
index 3d16f0f..0000000
--- a/dwm.suckless.org/patches/dwm-5.9-pwkl.diff
+++ /dev/null
_AT_@ -1,61 +0,0 @@
-diff -r 406003e3a01f dwm.c
---- a/dwm.c	Mon Sep 27 07:53:44 2010 +0000
-+++ b/dwm.c	Wed Oct 13 21:16:04 2010 +0300
-_AT_@ -36,6 +36,7 @@
- #include <X11/Xlib.h>
- #include <X11/Xproto.h>
- #include <X11/Xutil.h>
-+#include <X11/XKBlib.h>
- #ifdef XINERAMA
- #include <X11/extensions/Xinerama.h>
- #endif /* XINERAMA */
-_AT_@ -93,6 +94,7 @@
- 	Client *snext;
- 	Monitor *mon;
- 	Window win;
-+	unsigned char kbdgrp;
- };
- 
- typedef struct {
-_AT_@ -821,6 +823,7 @@
- 			selmon = c->mon;
- 		if(c->isurgent)
- 			clearurgent(c);
-+		XkbLockGroup (dpy, XkbUseCoreKbd, c->kbdgrp);
- 		detachstack(c);
- 		attachstack(c);
- 		grabbuttons(c, True);
-_AT_@ -1092,6 +1095,7 @@
- 	Client *c, *t = NULL;
- 	Window trans = None;
- 	XWindowChanges wc;
-+	XkbStateRec kbd_state;
- 
- 	if(!(c = malloc(sizeof(Client))))
- 		die("fatal: could not malloc() %u bytes
", sizeof(Client));
-_AT_@ -1146,6 +1150,8 @@
- 	XMapWindow(dpy, c->win);
- 	setclientstate(c, NormalState);
- 	arrange(c->mon);
-+	XkbGetState (dpy, XkbUseCoreKbd, &kbd_state);
-+	c->kbdgrp = kbd_state.group;
- }
- 
- void
-_AT_@ -1700,12 +1706,16 @@
- 
- void
- unfocus(Client *c, Bool setfocus) {
-+	XkbStateRec kbd_state;
-+	
- 	if(!c)
- 		return;
- 	grabbuttons(c, False);
- 	XSetWindowBorder(dpy, c->win, dc.norm[ColBorder]);
- 	if(setfocus)
- 		XSetInputFocus(dpy, root, RevertToPointerRoot, CurrentTime);
-+	XkbGetState (dpy, XkbUseCoreKbd, &kbd_state);
-+	c->kbdgrp = kbd_state.group;
- }
- 
- void
diff --git a/dwm.suckless.org/patches/dwm-5.9-statuscolors.diff b/dwm.suckless.org/patches/dwm-5.9-statuscolors.diff
deleted file mode 100644
index 1c2c3b4..0000000
--- a/dwm.suckless.org/patches/dwm-5.9-statuscolors.diff
+++ /dev/null
_AT_@ -1,236 +0,0 @@
-diff -up dwm-5.9/config.def.h dwm-5.9-colors/config.def.h
---- dwm-5.9/config.def.h	2011-07-10 16:24:25.000000000 -0400
-+++ dwm-5.9-colors/config.def.h	2011-08-18 02:02:47.033830823 -0400
-_AT_@ -1,13 +1,16 @@
- /* See LICENSE file for copyright and license details. */
- 
- /* appearance */
-+#define NUMCOLORS         4             // need at least 3
-+static const char colors[NUMCOLORS][ColLast][8] = {
-+   // border   foreground  background
-+   { "#cccccc", "#000000", "#cccccc" },  // 0 = normal
-+   { "#0066ff", "#ffffff", "#0066ff" },  // 1 = selected
-+   { "#0066ff", "#0066ff", "#ffffff" },  // 2 = urgent/warning
-+   { "#ff0000", "#ffffff", "#ff0000" },  // 3 = error
-+   // add more here
-+};
- static const char font[]            = "-*-terminus-medium-r-*-*-16-*-*-*-*-*-*-*";
--static const char normbordercolor[] = "#cccccc";
--static const char normbgcolor[]     = "#cccccc";
--static const char normfgcolor[]     = "#000000";
--static const char selbordercolor[]  = "#0066ff";
--static const char selbgcolor[]      = "#0066ff";
--static const char selfgcolor[]      = "#ffffff";
- static const unsigned int borderpx  = 1;        /* border pixel of windows */
- static const unsigned int snap      = 32;       /* snap pixel */
- static const Bool showbar           = True;     /* False means no bar */
-_AT_@ -45,7 +48,7 @@ static const Layout layouts[] = {
- #define SHCMD(cmd) { .v = (const char*[]){ "/bin/sh", "-c", cmd, NULL } }
- 
- /* commands */
--static const char *dmenucmd[] = { "dmenu_run", "-fn", font, "-nb", normbgcolor, "-nf", normfgcolor, "-sb", selbgcolor, "-sf", selfgcolor, NULL };
-+static const char *dmenucmd[] = { "dmenu_run", "-fn", font, "-nb", colors[0][ColBG], "-nf", colors[0][ColFG],"-sb", colors[1][ColBG], "-sf", colors[1][ColFG], NULL };
- static const char *termcmd[]  = { "uxterm", NULL };
- 
- static Key keys[] = {
-Only in dwm-5.9: config.h
-Only in dwm-5.9: dwm
-diff -up dwm-5.9/dwm.c dwm-5.9-colors/dwm.c
---- dwm-5.9/dwm.c	2011-07-10 16:24:25.000000000 -0400
-+++ dwm-5.9-colors/dwm.c	2011-08-18 02:07:20.788935100 -0400
-_AT_@ -48,6 +48,7 @@
- #define LENGTH(X)               (sizeof X / sizeof X[0])
- #define MAX(A, B)               ((A) > (B) ? (A) : (B))
- #define MIN(A, B)               ((A) < (B) ? (A) : (B))
-+#define MAXCOLORS               8
- #define MOUSEMASK               (BUTTONMASK|PointerMotionMask)
- #define WIDTH(X)                ((X)->w + 2 * (X)->bw)
- #define HEIGHT(X)               ((X)->h + 2 * (X)->bw)
-_AT_@ -97,9 +98,8 @@ struct Client {
- 
- typedef struct {
- 	int x, y, w, h;
--	unsigned long norm[ColLast];
--	unsigned long sel[ColLast];
--	Drawable drawable;
-+	unsigned long colors[MAXCOLORS][ColLast];
-+ 	Drawable drawable;
- 	GC gc;
- 	struct {
- 		int ascent;
-_AT_@ -175,8 +175,9 @@ static void die(const char *errstr, ...)
- static Monitor *dirtomon(int dir);
- static void drawbar(Monitor *m);
- static void drawbars(void);
--static void drawsquare(Bool filled, Bool empty, Bool invert, unsigned long col[ColLast]);
--static void drawtext(const char *text, unsigned long col[ColLast], Bool invert);
-+static void drawcoloredtext(char *text);
-+static void drawsquare(Bool filled, Bool empty, unsigned long col[ColLast]);
-+static void drawtext(const char *text, unsigned long col[ColLast], Bool pad);
- static void enternotify(XEvent *e);
- static void expose(XEvent *e);
- static void focus(Client *c);
-_AT_@ -736,14 +737,13 @@ drawbar(Monitor *m) {
- 	dc.x = 0;
- 	for(i = 0; i < LENGTH(tags); i++) {
- 		dc.w = TEXTW(tags[i]);
--		col = m->tagset[m->seltags] & 1 << i ? dc.sel : dc.norm;
--		drawtext(tags[i], col, urg & 1 << i);
--		drawsquare(m == selmon && selmon->sel && selmon->sel->tags & 1 << i,
--		           occ & 1 << i, urg & 1 << i, col);
-+		col = dc.colors[ (m->tagset[m->seltags] & 1 << i ? 1:(urg & 1 << i ? 2:0))];
-+		drawtext(tags[i], col, True);
-+		drawsquare(m == selmon && selmon->sel && selmon->sel->tags & 1 << i, occ & 1 << i, col);
- 		dc.x += dc.w;
- 	}
- 	dc.w = blw = TEXTW(m->ltsymbol);
--	drawtext(m->ltsymbol, dc.norm, False);
-+	drawtext(m->ltsymbol, dc.colors[0], True);
- 	dc.x += dc.w;
- 	x = dc.x;
- 	if(m == selmon) { /* status is only drawn on selected monitor */
-_AT_@ -753,19 +753,19 @@ drawbar(Monitor *m) {
- 			dc.x = x;
- 			dc.w = m->ww - x;
- 		}
--		drawtext(stext, dc.norm, False);
-+		drawcoloredtext(stext);
- 	}
- 	else
- 		dc.x = m->ww;
- 	if((dc.w = dc.x - x) > bh) {
- 		dc.x = x;
- 		if(m->sel) {
--			col = m == selmon ? dc.sel : dc.norm;
--			drawtext(m->sel->name, col, False);
--			drawsquare(m->sel->isfixed, m->sel->isfloating, False, col);
-+			col = m == selmon ? dc.colors[1] : dc.colors[0];
-+			drawtext(m->sel->name, col, True);
-+			drawsquare(m->sel->isfixed, m->sel->isfloating, col);
- 		}
- 		else
--			drawtext(NULL, dc.norm, False);
-+			drawtext(NULL, dc.colors[0], False);
- 	}
- 	XCopyArea(dpy, dc.drawable, m->barwin, dc.gc, 0, 0, m->ww, bh, 0, 0);
- 	XSync(dpy, False);
-_AT_@ -780,10 +780,39 @@ drawbars(void) {
- }
- 
- void
--drawsquare(Bool filled, Bool empty, Bool invert, unsigned long col[ColLast]) {
--	int x;
-+drawcoloredtext(char *text) {
-+	Bool first=True;
-+	char *buf = text, *ptr = buf, c = 1;
-+	unsigned long *col = dc.colors[0];
-+	int i, ox = dc.x;
-+
-+	while( *ptr ) {
-+		for( i = 0; *ptr < 0 || *ptr > NUMCOLORS; i++, ptr++);
-+		if( !*ptr ) break;
-+		c=*ptr;
-+		*ptr=0;
-+		if( i ) {
-+			dc.w = selmon->ww - dc.x;
-+			drawtext(buf, col, first);
-+			dc.x += textnw(buf, i) + textnw(&c,1);
-+			if( first ) dc.x += ( dc.font.ascent + dc.font.descent ) / 2;
-+			first = False;
-+		} else if( first ) {
-+			ox = dc.x += textnw(&c,1);
-+		}
-+		*ptr = c;
-+		col = dc.colors[ c-1 ];
-+		buf = ++ptr;
-+	}
-+	if( !first ) dc.x-=(dc.font.ascent+dc.font.descent)/2;
-+	drawtext(buf, col, True);
-+	dc.x = ox;
-+}
- 
--	XSetForeground(dpy, dc.gc, col[invert ? ColBG : ColFG]);
-+void
-+drawsquare(Bool filled, Bool empty, unsigned long col[ColLast]) {
-+	int x;
-+	XSetForeground(dpy, dc.gc, col[ ColFG ]);
- 	x = (dc.font.ascent + dc.font.descent + 2) / 4;
- 	if(filled)
- 		XFillRectangle(dpy, dc.drawable, dc.gc, dc.x+1, dc.y+1, x+1, x+1);
-_AT_@ -792,17 +821,17 @@ drawsquare(Bool filled, Bool empty, Bool
- }
- 
- void
--drawtext(const char *text, unsigned long col[ColLast], Bool invert) {
-+drawtext(const char *text, unsigned long col[ColLast], Bool pad) {
- 	char buf[256];
- 	int i, x, y, h, len, olen;
- 
--	XSetForeground(dpy, dc.gc, col[invert ? ColFG : ColBG]);
-+	XSetForeground(dpy, dc.gc, col[ ColBG ]);
- 	XFillRectangle(dpy, dc.drawable, dc.gc, dc.x, dc.y, dc.w, dc.h);
- 	if(!text)
- 		return;
- 	olen = strlen(text);
--	h = dc.font.ascent + dc.font.descent;
--	y = dc.y + (dc.h / 2) - (h / 2) + dc.font.ascent;
-+	h = pad ? (dc.font.ascent + dc.font.descent) : 0;
-+	y = dc.y + ((dc.h + dc.font.ascent - dc.font.descent) / 2);
- 	x = dc.x + (h / 2);
- 	/* shorten text if necessary */
- 	for(len = MIN(olen, sizeof buf); len && textnw(text, len) > dc.w - h; len--);
-_AT_@ -811,7 +840,7 @@ drawtext(const char *text, unsigned long
- 	memcpy(buf, text, len);
- 	if(len < olen)
- 		for(i = len; i && i > len - 3; buf[--i] = '.');
--	XSetForeground(dpy, dc.gc, col[invert ? ColBG : ColFG]);
-+	XSetForeground(dpy, dc.gc, col[ ColFG ]);
- 	if(dc.font.set)
- 		XmbDrawString(dpy, dc.drawable, dc.font.set, dc.gc, x, y, buf, len);
- 	else
-_AT_@ -861,7 +890,7 @@ focus(Client *c) {
- 		detachstack(c);
- 		attachstack(c);
- 		grabbuttons(c, True);
--		XSetWindowBorder(dpy, c->win, dc.sel[ColBorder]);
-+		XSetWindowBorder(dpy, c->win, dc.colors[1][ColBorder]);
- 		setfocus(c);
- 	}
- 	else
-_AT_@ -1137,7 +1166,7 @@ manage(Window w, XWindowAttributes *wa)
- 	}
- 	wc.border_width = c->bw;
- 	XConfigureWindow(dpy, w, CWBorderWidth, &wc);
--	XSetWindowBorder(dpy, w, dc.norm[ColBorder]);
-+	XSetWindowBorder(dpy, w, dc.colors[0][ColBorder]);
- 	configure(c); /* propagates border_width, if size doesn't change */
- 	updatesizehints(c);
- 	updatewmhints(c);
-_AT_@ -1550,12 +1579,11 @@ setup(void) {
- 	cursor[CurResize] = XCreateFontCursor(dpy, XC_sizing);
- 	cursor[CurMove] = XCreateFontCursor(dpy, XC_fleur);
- 	/* init appearance */
--	dc.norm[ColBorder] = getcolor(normbordercolor);
--	dc.norm[ColBG] = getcolor(normbgcolor);
--	dc.norm[ColFG] = getcolor(normfgcolor);
--	dc.sel[ColBorder] = getcolor(selbordercolor);
--	dc.sel[ColBG] = getcolor(selbgcolor);
--	dc.sel[ColFG] = getcolor(selfgcolor);
-+	for(int i=0; i<NUMCOLORS; i++) {
-+		dc.colors[i][ColBorder] = getcolor( colors[i][ColBorder] );
-+		dc.colors[i][ColFG] = getcolor( colors[i][ColFG] );
-+		dc.colors[i][ColBG] = getcolor( colors[i][ColBG] );
-+	}
- 	dc.drawable = XCreatePixmap(dpy, root, DisplayWidth(dpy, screen), bh, DefaultDepth(dpy, screen));
- 	dc.gc = XCreateGC(dpy, root, 0, NULL);
- 	XSetLineAttributes(dpy, dc.gc, 1, LineSolid, CapButt, JoinMiter);
-_AT_@ -1716,7 +1744,7 @@ unfocus(Client *c, Bool setfocus) {
- 	if(!c)
- 		return;
- 	grabbuttons(c, False);
--	XSetWindowBorder(dpy, c->win, dc.norm[ColBorder]);
-+	XSetWindowBorder(dpy, c->win, dc.colors[0][ColBorder]);
- 	if(setfocus)
- 		XSetInputFocus(dpy, root, RevertToPointerRoot, CurrentTime);
- }
-Only in dwm-5.9: dwm.o
diff --git a/dwm.suckless.org/patches/dwm-5.9-uselessgap.diff b/dwm.suckless.org/patches/dwm-5.9-uselessgap.diff
deleted file mode 100644
index 5f2afa9..0000000
--- a/dwm.suckless.org/patches/dwm-5.9-uselessgap.diff
+++ /dev/null
_AT_@ -1,45 +0,0 @@
-diff -r 23b71491e149 config.def.h
---- a/config.def.h	Thu Dec 02 10:16:47 2010 +0000
-+++ b/config.def.h	Fri Jan 07 08:50:42 2011 +0100
-_AT_@ -9,6 +9,7 @@
- static const char selbgcolor[]      = "#0066ff";
- static const char selfgcolor[]      = "#ffffff";
- static const unsigned int borderpx  = 1;        /* border pixel of windows */
-+static const unsigned int gappx     = 6;        /* gap pixel between windows */
- static const unsigned int snap      = 32;       /* snap pixel */
- static const Bool showbar           = True;     /* False means no bar */
- static const Bool topbar            = True;     /* False means bottom bar */
-diff -r 23b71491e149 dwm.c
---- a/dwm.c	Thu Dec 02 10:16:47 2010 +0000
-+++ b/dwm.c	Fri Jan 07 08:50:42 2011 +0100
-_AT_@ -273,6 +273,8 @@
- static DC dc;
- static Monitor *mons = NULL, *selmon = NULL;
- static Window root;
-+static int globalborder ;
-+static int globalborder ;
- 
- /* configuration, allows nested code to access above variables */
- #include "config.h"
-_AT_@ -1329,11 +1331,17 @@
- void
- resizeclient(Client *c, int x, int y, int w, int h) {
- 	XWindowChanges wc;
-+	
-+	if(c->isfloating || selmon->lt[selmon->sellt]->arrange == NULL) { globalborder = 0 ; }
-+	else {
-+		if (selmon->lt[selmon->sellt]->arrange == monocle) { globalborder = 0 - borderpx ; }
-+		else { globalborder =  gappx ; }
-+	}
- 
--	c->oldx = c->x; c->x = wc.x = x;
--	c->oldy = c->y; c->y = wc.y = y;
--	c->oldw = c->w; c->w = wc.width = w;
--	c->oldh = c->h; c->h = wc.height = h;
-+	c->oldx = c->x; c->x = wc.x = x + globalborder ;
-+	c->oldy = c->y; c->y = wc.y = y + globalborder ;
-+	c->oldw = c->w; c->w = wc.width = w - 2 * globalborder ;
-+	c->oldh = c->h; c->h = wc.height = h - 2 * globalborder ;
- 	wc.border_width = c->bw;
- 	XConfigureWindow(dpy, c->win, CWX|CWY|CWWidth|CWHeight|CWBorderWidth, &wc);
- 	configure(c);
diff --git a/dwm.suckless.org/patches/dwm-5.9-warp.diff b/dwm.suckless.org/patches/dwm-5.9-warp.diff
deleted file mode 100644
index 085806b..0000000
--- a/dwm.suckless.org/patches/dwm-5.9-warp.diff
+++ /dev/null
_AT_@ -1,55 +0,0 @@
-diff -r cfcfa05033e3 dwm.c
---- a/dwm.c	Fri Oct 28 23:45:12 2011 +0100
-+++ b/dwm.c	Fri Oct 28 18:43:14 2011 -0700
-_AT_@ -240,6 +240,7 @@
- static void updatetitle(Client *c);
- static void updatewmhints(Client *c);
- static void view(const Arg *arg);
-+static void warp(const Client *c);
- static Client *wintoclient(Window w);
- static Monitor *wintomon(Window w);
- static int xerror(Display *dpy, XErrorEvent *ee);
-_AT_@ -898,6 +899,7 @@
- 	unfocus(selmon->sel, True);
- 	selmon = m;
- 	focus(NULL);
-+	warp(selmon->sel);
- }
- 
- void
-_AT_@ -1418,6 +1420,8 @@
- 	}
- 	XSync(dpy, False);
- 	while(XCheckMaskEvent(dpy, EnterWindowMask, &ev));
-+	if (m == selmon && (m->tagset[m->seltags] & m->sel->tags))
-+		warp(m->sel);
- }
- 
- void
-_AT_@ -1994,6 +1998,26 @@
- 	arrange(selmon);
- }
- 
-+void
-+warp(const Client *c) {
-+	Window dummy;
-+	int x, y, di;
-+	unsigned int dui;
-+
-+	if (!c) {
-+		XWarpPointer(dpy, None, root, 0, 0, 0, 0, selmon->wx + selmon->ww / 2, selmon->wy + selmon->wh/2);
-+		return;
-+	}
-+
-+	XQueryPointer(dpy, root, &dummy, &dummy, &x, &y, &di, &di, &dui);
-+
-+	if((x > c->x && y > c->y && x < c->x + c->w && y < c->y + c->h) ||
-+	   (y > c->mon->by && y < c->mon->by + bh))
-+		return;
-+
-+	XWarpPointer(dpy, None, c->win, 0, 0, 0, 0, c->w / 2, c->h / 2);
-+}
-+
- Client *
- wintoclient(Window w) {
- 	Client *c;
diff --git a/dwm.suckless.org/patches/dwm-6.0-attachabove.diff b/dwm.suckless.org/patches/dwm-6.0-attachabove.diff
deleted file mode 100644
index 7ee956d..0000000
--- a/dwm.suckless.org/patches/dwm-6.0-attachabove.diff
+++ /dev/null
_AT_@ -1,63 +0,0 @@
-Author: Jan Christoph Ebersbach <jceb_AT_e-jc.de>
-URL: http://dwm.suckless.org/patches/attachabove
-attachabove makes new clients attach above the selected client (instead of
-always becoming the new master) – basically how Xmonad does it.
-
-diff -r ec4baab78314 dwm.c
---- a/dwm.c	Mon Dec 19 15:38:30 2011 +0100
-+++ b/dwm.c	Fri Apr 06 08:23:34 2012 +0200
-_AT_@ -160,6 +160,7 @@
- static void arrange(Monitor *m);
- static void arrangemon(Monitor *m);
- static void attach(Client *c);
-+static void attachabove(Client *c);
- static void attachstack(Client *c);
- static void buttonpress(XEvent *e);
- static void checkotherwm(void);
-_AT_@ -418,6 +419,19 @@
- }
- 
- void
-+attachabove(Client *c) {
-+	if(c->mon->sel == NULL || c->mon->sel == c->mon->clients || c->mon->sel->isfloating) {
-+		attach(c);
-+		return;
-+	}
-+
-+	Client *at;
-+	for(at = c->mon->clients; at->next != c->mon->sel; at = at->next);
-+	c->next = at->next;
-+	at->next = c;
-+}
-+
-+void
- attachstack(Client *c) {
- 	c->snext = c->mon->stack;
- 	c->mon->stack = c;
-_AT_@ -1155,7 +1169,7 @@
- 		c->isfloating = c->oldstate = trans != None || c->isfixed;
- 	if(c->isfloating)
- 		XRaiseWindow(dpy, c->win);
--	attach(c);
-+	attachabove(c);
- 	attachstack(c);
- 	XMoveResizeWindow(dpy, c->win, c->x + 2 * sw, c->y, c->w, c->h); /* some windows require this */
- 	setclientstate(c, NormalState);
-_AT_@ -1480,7 +1494,7 @@
- 	detachstack(c);
- 	c->mon = m;
- 	c->tags = m->tagset[m->seltags]; /* assign tags of target monitor */
--	attach(c);
-+	attachabove(c);
- 	attachstack(c);
- 	focus(NULL);
- 	arrange(NULL);
-_AT_@ -1900,7 +1914,7 @@
- 					m->clients = c->next;
- 					detachstack(c);
- 					c->mon = mons;
--					attach(c);
-+					attachabove(c);
- 					attachstack(c);
- 				}
- 				if(m == selmon)
diff --git a/dwm.suckless.org/patches/dwm-6.0-attachaside.diff b/dwm.suckless.org/patches/dwm-6.0-attachaside.diff
deleted file mode 100644
index 352d5ec..0000000
--- a/dwm.suckless.org/patches/dwm-6.0-attachaside.diff
+++ /dev/null
_AT_@ -1,57 +0,0 @@
-diff --git a/dwm.c b/dwm.c
-index 1bbb4b3..b2aa1c8 100644
---- a/dwm.c
-+++ b/dwm.c
-_AT_@ -146,6 +146,7 @@ static Bool applysizehints(Client *c, int *x, int *y, int *w, int *h, Bool inter
- static void arrange(Monitor *m);
- static void arrangemon(Monitor *m);
- static void attach(Client *c);
-+static void attachaside(Client *c);
- static void attachstack(Client *c);
- static void buttonpress(XEvent *e);
- static void checkotherwm(void);
-_AT_@ -401,6 +402,17 @@ attach(Client *c) {
- }
- 
- void
-+attachaside(Client *c) {
-+	Client *at = nexttiled(c->mon->clients);
-+	if(c->mon->sel == NULL || c->mon->sel->isfloating || !at) {
-+		attach(c);
-+		return;
-+	}
-+	c->next = at->next;
-+	at->next = c;
-+}
-+
-+void
- attachstack(Client *c) {
- 	c->snext = c->mon->stack;
- 	c->mon->stack = c;
-_AT_@ -1051,7 +1063,7 @@ manage(Window w, XWindowAttributes *wa) {
- 		c->isfloating = c->oldstate = trans != None || c->isfixed;
- 	if(c->isfloating)
- 		XRaiseWindow(dpy, c->win);
--	attach(c);
-+	attachaside(c);
- 	attachstack(c);
- 	XChangeProperty(dpy, root, netatom[NetClientList], XA_WINDOW, 32, PropModeAppend,
- 	                (unsigned char *) &(c->win), 1);
-_AT_@ -1383,7 +1395,7 @@ sendmon(Client *c, Monitor *m) {
- 	detachstack(c);
- 	c->mon = m;
- 	c->tags = m->tagset[m->seltags]; /* assign tags of target monitor */
--	attach(c);
-+	attachaside(c);
- 	attachstack(c);
- 	focus(NULL);
- 	arrange(NULL);
-_AT_@ -1818,7 +1830,7 @@ updategeom(void) {
- 					m->clients = c->next;
- 					detachstack(c);
- 					c->mon = mons;
--					attach(c);
-+					attachaside(c);
- 					attachstack(c);
- 				}
- 				if(m == selmon)
diff --git a/dwm.suckless.org/patches/dwm-6.0-autoresize.diff b/dwm.suckless.org/patches/dwm-6.0-autoresize.diff
deleted file mode 100644
index 4bb3104..0000000
--- a/dwm.suckless.org/patches/dwm-6.0-autoresize.diff
+++ /dev/null
_AT_@ -1,35 +0,0 @@
-diff --git a/dwm.c b/dwm.c
-index e3bf6f4..8a2c646 100644
---- a/dwm.c
-+++ b/dwm.c
-_AT_@ -91,7 +91,7 @@ struct Client {
- 	int basew, baseh, incw, inch, maxw, maxh, minw, minh;
- 	int bw, oldbw;
- 	unsigned int tags;
--	Bool isfixed, isfloating, isurgent, neverfocus, oldstate, isfullscreen;
-+	Bool isfixed, isfloating, isurgent, neverfocus, oldstate, isfullscreen, needresize;
- 	Client *next;
- 	Client *snext;
- 	Monitor *mon;
-_AT_@ -633,6 +633,8 @@ configurerequest(XEvent *e) {
- 				configure(c);
- 			if(ISVISIBLE(c))
- 				XMoveResizeWindow(dpy, c->win, c->x, c->y, c->w, c->h);
-+			else
-+				c->needresize=1;
- 		}
- 		else
- 			configure(c);
-_AT_@ -1663,6 +1665,12 @@ showhide(Client *c) {
- 		return;
- 	if(ISVISIBLE(c)) { /* show clients top down */
- 		XMoveWindow(dpy, c->win, c->x, c->y);
-+                if(c->needresize) {
-+                        c->needresize=0;
-+                        XMoveResizeWindow(dpy, c->win, c->x, c->y, c->w, c->h);
-+                } else {
-+                        XMoveWindow(dpy, c->win, c->x, c->y);
-+                }
- 		if((!c->mon->lt[c->mon->sellt]->arrange || c->isfloating) && !c->isfullscreen)
- 			resize(c, c->x, c->y, c->w, c->h, False);
- 		showhide(c->snext);
diff --git a/dwm.suckless.org/patches/dwm-6.0-bottommargin.diff b/dwm.suckless.org/patches/dwm-6.0-bottommargin.diff
deleted file mode 100644
index 99ee0b0..0000000
--- a/dwm.suckless.org/patches/dwm-6.0-bottommargin.diff
+++ /dev/null
_AT_@ -1,26 +0,0 @@
-diff --git a/config.def.h b/config.def.h
-index 77ff358..203d354 100644
---- a/config.def.h
-+++ b/config.def.h
-_AT_@ -12,6 +12,7 @@ static const unsigned int borderpx  = 1;        /* border pixel of windows */
- static const unsigned int snap      = 32;       /* snap pixel */
- static const Bool showbar           = True;     /* False means no bar */
- static const Bool topbar            = True;     /* False means bottom bar */
-+static const unsigned int bottommargin = 20;    /* Margin at the bottom for another bar */
- 
- /* tagging */
- static const char *tags[] = { "1", "2", "3", "4", "5", "6", "7", "8", "9" };
-diff --git a/dwm.c b/dwm.c
-index 1d78655..cece290 100644
---- a/dwm.c
-+++ b/dwm.c
-_AT_@ -1841,6 +1841,9 @@ updatebarpos(Monitor *m) {
- 	m->wh = m->mh;
- 	if(m->showbar) {
- 		m->wh -= bh;
-+        m->wh -= marginbottom;
-+        if(!m->topbar)
-+            m->wy += marginbottom;
- 		m->by = m->topbar ? m->wy : m->wy + m->wh;
- 		m->wy = m->topbar ? m->wy + bh : m->wy;
- 	}
diff --git a/dwm.suckless.org/patches/dwm-6.0-combo.diff b/dwm.suckless.org/patches/dwm-6.0-combo.diff
deleted file mode 100644
index dfd8b4b..0000000
--- a/dwm.suckless.org/patches/dwm-6.0-combo.diff
+++ /dev/null
_AT_@ -1,74 +0,0 @@
-diff -r c361034c5a1c dwm.c
---- a/dwm.c	Sat Sep 11 19:00:18 2010 +0000
-+++ b/dwm.c	Thu Nov 25 22:54:04 2010 -0800
-_AT_@ -243,6 +243,11 @@
- static int xerrorstart(Display *dpy, XErrorEvent *ee);
- static void zoom(const Arg *arg);
- 
-+static void keyrelease(XEvent *e);
-+static void combotag(const Arg *arg);
-+static void comboview(const Arg *arg);
-+
-+
- /* variables */
- static const char broken[] = "broken";
- static char stext[256];
-_AT_@ -253,6 +258,7 @@
- static unsigned int numlockmask = 0;
- static void (*handler[LASTEvent]) (XEvent *) = {
- 	[ButtonPress] = buttonpress,
-+	[ButtonRelease] = keyrelease,
- 	[ClientMessage] = clientmessage,
- 	[ConfigureRequest] = configurerequest,
- 	[ConfigureNotify] = configurenotify,
-_AT_@ -260,6 +266,7 @@
- 	[EnterNotify] = enternotify,
- 	[Expose] = expose,
- 	[FocusIn] = focusin,
-+	[KeyRelease] = keyrelease,
- 	[KeyPress] = keypress,
- 	[MappingNotify] = mappingnotify,
- 	[MapRequest] = maprequest,
-_AT_@ -282,6 +289,42 @@
- struct NumTags { char limitexceeded[LENGTH(tags) > 31 ? -1 : 1]; };
- 
- /* function implementations */
-+static int combo = 0;
-+
-+void
-+keyrelease(XEvent *e) {
-+	combo = 0;
-+}
-+
-+void
-+combotag(const Arg *arg) {
-+	if(selmon->sel && arg->ui & TAGMASK) {
-+		if (combo) {
-+			selmon->sel->tags |= arg->ui & TAGMASK;
-+		} else {
-+			combo = 1;
-+			selmon->sel->tags = arg->ui & TAGMASK;
-+		}
-+		focus(NULL);
-+		arrange(selmon);
-+	}
-+}
-+
-+void
-+comboview(const Arg *arg) {
-+	unsigned newtags = arg->ui & TAGMASK;
-+	if (combo) {
-+		selmon->tagset[selmon->seltags] |= newtags;
-+	} else {
-+		selmon->seltags ^= 1;	/*toggle tagset*/
-+		combo = 1;
-+		if (newtags)
-+			selmon->tagset[selmon->seltags] = newtags;
-+	}
-+	focus(NULL);
-+	arrange(selmon);
-+}
-+
- void
- applyrules(Client *c) {
- 	const char *class, *instance;
diff --git a/dwm.suckless.org/patches/dwm-6.0-dualstatus.diff b/dwm.suckless.org/patches/dwm-6.0-dualstatus.diff
deleted file mode 100644
index bc140fe..0000000
--- a/dwm.suckless.org/patches/dwm-6.0-dualstatus.diff
+++ /dev/null
_AT_@ -1,158 +0,0 @@
-diff --git a/config.def.h b/config.def.h
-index 77ff358..ea9758d 100644
---- a/config.def.h
-+++ b/config.def.h
-_AT_@ -12,6 +12,7 @@ static const unsigned int borderpx  = 1;        /* border pixel of windows */
- static const unsigned int snap      = 32;       /* snap pixel */
- static const Bool showbar           = True;     /* False means no bar */
- static const Bool topbar            = True;     /* False means bottom bar */
-+static const Bool extrabar          = True;     /* False means no extra bar */
- 
- /* tagging */
- static const char *tags[] = { "1", "2", "3", "4", "5", "6", "7", "8", "9" };
-_AT_@ -54,6 +55,7 @@ static Key keys[] = {
- 	{ MODKEY,                       XK_p,      spawn,          {.v = dmenucmd } },
- 	{ MODKEY|ShiftMask,             XK_Return, spawn,          {.v = termcmd } },
- 	{ MODKEY,                       XK_b,      togglebar,      {0} },
-+	{ MODKEY,                       XK_b,      toggleextrabar, {0} },
- 	{ MODKEY,                       XK_j,      focusstack,     {.i = +1 } },
- 	{ MODKEY,                       XK_k,      focusstack,     {.i = -1 } },
- 	{ MODKEY,                       XK_i,      incnmaster,     {.i = +1 } },
-diff --git a/dwm.c b/dwm.c
-index 1d78655..b322ff5 100644
---- a/dwm.c
-+++ b/dwm.c
-_AT_@ -154,6 +154,13 @@ typedef struct {
- 	int monitor;
- } Rule;
- 
-+typedef struct {
-+	int y;
-+	Bool show;
-+	Window win;
-+	char text[256];
-+} Bar;
-+
- /* function declarations */
- static void applyrules(Client *c);
- static Bool applysizehints(Client *c, int *x, int *y, int *w, int *h, Bool interact);
-_AT_@ -229,6 +236,7 @@ static void tagmon(const Arg *arg);
- static int textnw(const char *text, unsigned int len);
- static void tile(Monitor *);
- static void togglebar(const Arg *arg);
-+static void toggleextrabar(const Arg *arg);
- static void togglefloating(const Arg *arg);
- static void toggletag(const Arg *arg);
- static void toggleview(const Arg *arg);
-_AT_@ -283,6 +291,7 @@ static Display *dpy;
- static DC dc;
- static Monitor *mons = NULL, *selmon = NULL;
- static Window root;
-+static Bar eb;
- 
- /* configuration, allows nested code to access above variables */
- #include "config.h"
-_AT_@ -495,6 +504,8 @@ cleanup(void) {
- 	XFreeCursor(dpy, cursor[CurNormal]);
- 	XFreeCursor(dpy, cursor[CurResize]);
- 	XFreeCursor(dpy, cursor[CurMove]);
-+	XUnmapWindow(dpy, eb.win);
-+	XDestroyWindow(dpy, eb.win);
- 	while(mons)
- 		cleanupmon(mons);
- 	XSync(dpy, False);
-_AT_@ -584,6 +595,7 @@ configurenotify(XEvent *e) {
- 			updatebars();
- 			for(m = mons; m; m = m->next)
- 				XMoveResizeWindow(dpy, m->barwin, m->wx, m->by, m->ww, bh);
-+			XMoveResizeWindow(dpy, eb.win, mons->wx, eb.y, mons->ww, bh);
- 			focus(NULL);
- 			arrange(NULL);
- 		}
-_AT_@ -762,6 +774,10 @@ drawbar(Monitor *m) {
- 			drawtext(NULL, dc.norm, False);
- 	}
- 	XCopyArea(dpy, dc.drawable, m->barwin, dc.gc, 0, 0, m->ww, bh, 0, 0);
-+	dc.x = 0;
-+	dc.w = m->ww;
-+	drawtext(eb.text, dc.norm, False);
-+	XCopyArea(dpy, dc.drawable, eb.win, dc.gc, 0, 0, m->ww, bh, 0, 0);
- 	XSync(dpy, False);
- }
- 
-_AT_@ -1594,6 +1610,7 @@ setup(void) {
- 	sw = DisplayWidth(dpy, screen);
- 	sh = DisplayHeight(dpy, screen);
- 	bh = dc.h = dc.font.height + 2;
-+	eb.show = extrabar;
- 	updategeom();
- 	/* init atoms */
- 	wmatom[WMProtocols] = XInternAtom(dpy, "WM_PROTOCOLS", False);
-_AT_@ -1736,6 +1753,16 @@ togglebar(const Arg *arg) {
- }
- 
- void
-+toggleextrabar(const Arg *arg) {
-+	if(selmon == mons) {
-+		eb.show = !eb.show;
-+		updatebarpos(selmon);
-+		XMoveResizeWindow(dpy, eb.win, selmon->wx, eb.y, selmon->ww, bh);
-+		arrange(selmon);
-+	}
-+}
-+
-+void
- togglefloating(const Arg *arg) {
- 	if(!selmon->sel)
- 		return;
-_AT_@ -1833,6 +1860,13 @@ updatebars(void) {
- 		XDefineCursor(dpy, m->barwin, cursor[CurNormal]);
- 		XMapRaised(dpy, m->barwin);
- 	}
-+	if(!eb.win) {
-+		eb.win = XCreateWindow(dpy, root, mons->wx, eb.y, mons->ww, bh, 0, DefaultDepth(dpy, screen),
-+		                       CopyFromParent, DefaultVisual(dpy, screen),
-+		                       CWOverrideRedirect|CWBackPixmap|CWEventMask, &wa);
-+		XDefineCursor(dpy, eb.win, cursor[CurNormal]);
-+		XMapRaised(dpy, eb.win);
-+	}
- }
- 
- void
-_AT_@ -1846,6 +1880,13 @@ updatebarpos(Monitor *m) {
- 	}
- 	else
- 		m->by = -bh;
-+	if(m == mons && eb.show) {
-+		m->wh -= bh;
-+		eb.y = topbar ? m->wy + m->wh : m->wy;
-+		m->wy = m->topbar ? m->wy : m->wy + bh;
-+	}
-+	else
-+		eb.y = -bh;
- }
- 
- Bool
-_AT_@ -2005,8 +2046,21 @@ updatetitle(Client *c) {
- 
- void
- updatestatus(void) {
--	if(!gettextprop(root, XA_WM_NAME, stext, sizeof(stext)))
-+	char text[512];
-+	if(!gettextprop(root, XA_WM_NAME, text, sizeof(text))) {
- 		strcpy(stext, "dwm-"VERSION);
-+		eb.text[0] = '
Received on Fri Jul 08 2016 - 22:59:49 CEST

This archive was generated by hypermail 2.3.0 : Fri Jul 08 2016 - 23:00:19 CEST