monocle goes mainstream
authorAnselm R Garbe <garbeam@gmail.com>
Tue, 04 Mar 2008 18:58:23 +0000
changeset 1116 73ef516a4a88
parent 1115 61f7a3e134e9
child 1117 fac7660be3de
monocle goes mainstream
config.def.h
dwm.c
--- a/config.def.h	Tue Mar 04 18:13:07 2008 +0000
+++ b/config.def.h	Tue Mar 04 18:58:23 2008 +0000
@@ -12,7 +12,7 @@
 #define SELFGCOLOR		"#ffffff"
 
 /* old */
-const char tags[][MAXTAGLEN]     = { "1", "2", "3", "4", "5", "6", "7", "8", "9" };
+const char tags[][MAXTAGLEN] = { "1", "2", "3", "4", "5", "6", "7", "8", "9" };
 
 Rule rules[] = {
 	/* class:instance:title substr	tags ref	isfloating */
@@ -30,6 +30,7 @@
 	/* symbol		function */
 	{ "[]=",		tile }, /* first entry is default */
 	{ "><>",		floating },
+	{ "[M]",		monocle },
 };
 
 /* key definitions */
@@ -46,6 +47,7 @@
 	{ MODKEY,			XK_h,		setmwfact,	"-0.05" },
 	{ MODKEY,			XK_l,		setmwfact,	"+0.05" },
 	{ MODKEY,			XK_r,		reapply,	NULL },
+	{ MODKEY,			XK_m,		setlayout,	"[M]" },
 	{ MODKEY,			XK_Return,	zoom,		NULL },
 	{ MODKEY,			XK_Tab,		viewprevtag,	NULL },
 	{ MODKEY|ShiftMask,		XK_space,	togglefloating,	NULL },
--- a/dwm.c	Tue Mar 04 18:13:07 2008 +0000
+++ b/dwm.c	Tue Mar 04 18:58:23 2008 +0000
@@ -153,6 +153,7 @@
 void manage(Window w, XWindowAttributes *wa);
 void mappingnotify(XEvent *e);
 void maprequest(XEvent *e);
+void monocle(void);
 void movemouse(Client *c);
 Client *nexttiled(Client *c);
 void propertynotify(XEvent *e);
@@ -1072,6 +1073,16 @@
 }
 
 void
+monocle(void) {
+	Client *c;
+
+	domwfact = dozoom = False;
+	for(c = clients; c; c = c->next)
+		if(isvisible(c))
+			resize(c, wax, way, waw - 2 * c->border, wah - 2 * c->border, RESIZEHINTS);
+}
+
+void
 movemouse(Client *c) {
 	int x1, y1, ocx, ocy, di, nx, ny;
 	unsigned int dui;
@@ -1412,7 +1423,7 @@
 	}
 	else {
 		for(i = 0; i < LENGTH(layouts); i++)
-			if(arg == layouts[i].symbol)
+			if(!strcmp(arg, layouts[i].symbol))
 				break;
 		if(i == LENGTH(layouts))
 			return;