diff options
| -rw-r--r-- | config.def.h | 8 | ||||
| -rw-r--r-- | dwm.c | 27 | 
2 files changed, 9 insertions, 26 deletions
| diff --git a/config.def.h b/config.def.h index af8f70f..6a6f7be 100644 --- a/config.def.h +++ b/config.def.h @@ -10,8 +10,8 @@  #define SELFGCOLOR      "#ffffff"  static uint borderpx  = 1;        /* border pixel of windows */  static uint snap      = 32;       /* snap pixel */ -static Bool showbar           = True;     /* False means no bar */ -static Bool topbar            = True;     /* False means bottom bar */ +static Bool showbar   = True;     /* False means no bar */ +static Bool topbar    = True;     /* False means bottom bar */  /* tagging */  static const char tags[][MAXTAGLEN] = { "1", "2", "3", "4", "5", "6", "7", "8", "9" }; @@ -42,8 +42,8 @@ static Layout layouts[] = {  static Key keys[] = {  	/* modifier                     key        function        argument */ -	{ MODKEY,                       XK_p,      spawn,          {.c = "exec dmenu_run -fn '"FONT"' -nb '"NORMBGCOLOR"' -nf '"NORMFGCOLOR"' -sb '"SELBGCOLOR"' -sf '"SELFGCOLOR"'" }}, -	{ MODKEY|ShiftMask,             XK_Return, spawn,          {.c = "exec uxterm" }}, +	{ MODKEY,                       XK_p,      spawn,          {.v = (char *[]){"dmenu_run", "-fn", FONT, "-nb", NORMBGCOLOR, "-nf", NORMFGCOLOR, "-sb", SELBGCOLOR, "-sf", SELFGCOLOR, NULL}} }, +	{ MODKEY|ShiftMask,             XK_Return, spawn,          {.v = (char *[]){"uxterm", NULL}} },  	{ MODKEY,                       XK_b,      togglebar,      {0}},  	{ MODKEY,                       XK_j,      focusstack,     {.i = +1  }},  	{ MODKEY,                       XK_k,      focusstack,     {.i = -1  }}, @@ -93,11 +93,10 @@ typedef struct {  } DC; /* draw context */  typedef union { -	const char *c;  	int i;  	uint ui;  	float f; -	void *aux; +	void *v;  } Arg;  typedef struct { @@ -1388,10 +1387,6 @@ setup(void) {  void  spawn(const Arg *arg) { -	static char *shell = NULL; - -	if(!shell && !(shell = getenv("SHELL"))) -		shell = "/bin/sh";  	/* The double-fork construct avoids zombie processes and keeps the code  	 * clean from stupid signal handlers. */  	if(fork() == 0) { @@ -1399,8 +1394,8 @@ spawn(const Arg *arg) {  			if(dpy)  				close(ConnectionNumber(dpy));  			setsid(); -			execl(shell, shell, "-c", arg->c, (char *)NULL); -			fprintf(stderr, "dwm: execl '%s -c %s'", shell, arg->c); +			execvp(((char **)arg->v)[0], (char **)arg->v); +			fprintf(stderr, "dwm: execvp %s", ((char **)arg->v)[0]);  			perror(" failed");  		}  		exit(0); @@ -1481,20 +1476,8 @@ togglefloating(const Arg *arg) {  void  togglelayout(const Arg *arg) { -	uint i; - -	if(!arg->c) { -		if(++lt == &layouts[LENGTH(layouts)]) -			lt = &layouts[0]; -	} -	else { -		for(i = 0; i < LENGTH(layouts); i++) -			if(!strcmp(arg->c, layouts[i].symbol)) -				break; -		if(i == LENGTH(layouts)) -			return; -		lt = &layouts[i]; -	} +	if(++lt == &layouts[LENGTH(layouts)]) +		lt = &layouts[0];  	if(sel)  		arrange();  	else | 
