diff options
| -rw-r--r-- | client.c | 17 | ||||
| -rw-r--r-- | dwm.h | 22 | ||||
| -rw-r--r-- | event.c | 23 | ||||
| -rw-r--r-- | tag.c | 26 | 
4 files changed, 40 insertions, 48 deletions
| @@ -476,7 +476,7 @@ unmanage(Client *c)  void  zoom(Arg *arg)  { -	Client *c; +	Client *c, **l;  	if(!sel)  		return; @@ -486,6 +486,19 @@ zoom(Arg *arg)  			sel = c;  	} -	pop(sel); +	/* pop */ +	for(l = &clients; *l && *l != sel; l = &(*l)->next); +	if(sel->prev) +		sel->prev->next = sel->next; +	if(sel->next) +		sel->next->prev = sel->prev; +	*l = sel->next; + +	sel->prev = NULL; +	if(clients) +		clients->prev = sel; +	sel->next = clients; +	clients = sel; +	arrange(NULL);  	focus(sel);  } @@ -7,21 +7,21 @@  /* CUSTOMIZE */ -#define FONT				"-*-terminus-medium-*-*-*-13-*-*-*-*-*-iso10646-*" -#define BGCOLOR				"#0a2c2d" -#define FGCOLOR				"#ddeeee" -#define BORDERCOLOR			"#176164" -#define MODKEY				 Mod1Mask /* Mod4Mask */ +#define FONT			"-*-terminus-medium-*-*-*-13-*-*-*-*-*-iso10646-*" +#define BGCOLOR			"#0a2c2d" +#define FGCOLOR			"#ddeeee" +#define BORDERCOLOR		"#176164" +#define MODKEY			Mod1Mask /* Mod4Mask */  /* -#define BGCOLOR				"#666699" -#define FGCOLOR				"#eeeeee" -#define BORDERCOLOR			"#9999CC" +#define BGCOLOR			"#666699" +#define FGCOLOR			"#eeeeee" +#define BORDERCOLOR		"#9999CC"  */ -#define MASTERW				52 /* percent */ +#define MASTERW			52 /* percent */  #define WM_PROTOCOL_DELWIN	1  /* tags */ -enum { Tscratch, Tdev, Twww, Twork, TLast }; +enum { Tfnord, Tdev, Tnet, Twork, Tmisc, TLast };  /* END CUSTOMIZE */ @@ -105,7 +105,6 @@ extern void higher(Client *c);  extern void killclient(Arg *arg);  extern void lower(Client *c);  extern void manage(Window w, XWindowAttributes *wa); -extern void pop(Client *c);  extern void resize(Client *c, Bool sizehints, Corner sticky);  extern void setsize(Client *c);  extern void settitle(Client *c); @@ -136,7 +135,6 @@ extern void dofloat(Arg *arg);  extern void dotile(Arg *arg);  extern Client *getnext(Client *c, unsigned int t);  extern Client *getprev(Client *c); -extern void heretag(Arg *arg);  extern void replacetag(Arg *arg);  extern void settags(Client *c);  extern void togglemode(Arg *arg); @@ -30,27 +30,26 @@ const char *xlock[] = { "xlock", NULL };  static Key key[] = {  	/* modifier		key		function	arguments */ -	{ ControlMask,		XK_0,		appendtag,	{ .i = Tscratch } },  -	{ ControlMask,		XK_1,		appendtag,	{ .i = Tdev } },  -	{ ControlMask,		XK_2,		appendtag,	{ .i = Twww } },  -	{ ControlMask,		XK_3,		appendtag,	{ .i = Twork } },  -	{ MODKEY,		XK_0,		view,		{ .i = Tscratch } },  +	{ MODKEY,		XK_0,		view,		{ .i = Tfnord } },   	{ MODKEY,		XK_1,		view,		{ .i = Tdev } },  -	{ MODKEY,		XK_2,		view,		{ .i = Twww } },  +	{ MODKEY,		XK_2,		view,		{ .i = Tnet } },   	{ MODKEY,		XK_3,		view,		{ .i = Twork } },  +	{ MODKEY,		XK_4,		view,		{ .i = Tmisc} },   	{ MODKEY,		XK_j,		focusnext,	{ 0 } },   	{ MODKEY,		XK_k,		focusprev,	{ 0 } },  	{ MODKEY,		XK_m,		togglemax,	{ 0 } },   	{ MODKEY,		XK_space,	togglemode,	{ 0 } },   	{ MODKEY,		XK_Return,	zoom,		{ 0 } }, -	{ ControlMask|ShiftMask,XK_0,		heretag,	{ .i = Tscratch } },  -	{ ControlMask|ShiftMask,XK_1,		heretag,	{ .i = Tdev } },  -	{ ControlMask|ShiftMask,XK_2,		heretag,	{ .i = Twww } },  -	{ ControlMask|ShiftMask,XK_3,		heretag,	{ .i = Twork } },  -	{ MODKEY|ShiftMask,	XK_0,		replacetag,	{ .i = Tscratch } },  +	{ MODKEY|ControlMask,	XK_0,		appendtag,	{ .i = Tfnord } },  +	{ MODKEY|ControlMask,	XK_1,		appendtag,	{ .i = Tdev } },  +	{ MODKEY|ControlMask,	XK_2,		appendtag,	{ .i = Tnet } },  +	{ MODKEY|ControlMask,	XK_3,		appendtag,	{ .i = Twork } },  +	{ MODKEY|ControlMask,	XK_4,		appendtag,	{ .i = Tmisc } },  +	{ MODKEY|ShiftMask,	XK_0,		replacetag,	{ .i = Tfnord } },   	{ MODKEY|ShiftMask,	XK_1,		replacetag,	{ .i = Tdev } },  -	{ MODKEY|ShiftMask,	XK_2,		replacetag,	{ .i = Twww } },  +	{ MODKEY|ShiftMask,	XK_2,		replacetag,	{ .i = Tnet } },   	{ MODKEY|ShiftMask,	XK_3,		replacetag,	{ .i = Twork } },  +	{ MODKEY|ShiftMask,	XK_4,		replacetag,	{ .i = Tmisc } },   	{ MODKEY|ShiftMask,	XK_c,		killclient,	{ 0 } },   	{ MODKEY|ShiftMask,	XK_g,		spawn,		{ .argv = gimp } },  	{ MODKEY|ShiftMask,	XK_l,		spawn,		{ .argv = xlock } }, @@ -21,15 +21,16 @@ typedef struct {  /* CUSTOMIZE */   static Rule rule[] = {  	/* class:instance	tags				isfloat */ -	{ "Firefox.*",		{ [Twww] = "www" },		False }, +	{ "Firefox.*",		{ [Tnet] = "net" },		False },  	{ "Gimp.*",		{ 0 },				True},  };  char *tags[TLast] = { -	[Tscratch] = "scratch", +	[Tfnord] = "fnord",  	[Tdev] = "dev", -	[Twww] = "www", +	[Tnet] = "net",  	[Twork] = "work", +	[Tmisc] = "misc",  };  void (*arrange)(Arg *) = dotile; @@ -148,25 +149,6 @@ getprev(Client *c)  }  void -heretag(Arg *arg) -{ -	int i; -	Client *c; - -	if(arg->i == tsel) -		return; - -	if(!(c = getnext(clients, arg->i))) -		return; - -	for(i = 0; i < TLast; i++) -		c->tags[i] = NULL; -	c->tags[tsel] = tags[tsel]; -	pop(c); -	focus(c); -} - -void  replacetag(Arg *arg)  {  	int i; | 
