Hi All, Eager to avoid the excessive recompiling of dwm on a 433mhz proc(takes ~25seconds), I sought to patch dwm to support "-fn" and other appearance changes. I've attached two patches, one for dwm.c and one for config.def.h. The code I put together is based heavily off dmenu's arg processing and adds a little less than thirty SLOCs. The patch for config.def.h adds no SLOCs. Best, -- Ian Daniher
4,10c4,10 < static const char *font = "-*-terminus-medium-r-normal-*-14-*-*-*-*-*-*-*"; < 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 char font[] = "-*-terminus-medium-r-normal-*-14-*-*-*-*-*-*-*"; > 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"; 48c48,52 < #define BASHCMD(cmd) { .v = (const char*[]){ "/bin/bash", "-c", cmd, NULL } } --- > #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 *termcmd[] = { "uxterm", NULL }; 52,53c56,57 < { MODKEY, XK_p, spawn, BASHCMD("launcher dmenu") }, < { MODKEY|ShiftMask, XK_Return, spawn, BASHCMD("launcher uxterm") }, --- > { MODKEY, XK_p, spawn, {.v = dmenucmd } }, > { MODKEY|ShiftMask, XK_Return, spawn, {.v = termcmd } }, 88a93 > { ClkStatusText, 0, Button2, spawn, {.v = termcmd } },
1710,1713c1710,1737 < if(argc == 2 && !strcmp("-v", argv[1])) < die("dwm-"VERSION", © 2006-2009 dwm engineers, see LICENSE for details\n"); < else if(argc != 1) < die("usage: dwm [-v]\n"); --- > unsigned int i; > for(i = 1; i < argc; i++) > if(!strcmp(argv[i], "-fn")) { > if(++i < argc) font = argv[i]; > } > else if(!strcmp(argv[i], "-nb")) { > if(++i < argc) normbgcolor = argv[i]; > } > else if(!strcmp(argv[i], "-nf")) { > if(++i < argc) normfgcolor = argv[i]; > } > else if(!strcmp(argv[i], "-sb")) { > if(++i < argc) selbgcolor = argv[i]; > } > else if(!strcmp(argv[i], "-sf")) { > if(++i < argc) selfgcolor = argv[i]; > } > else if(!strcmp(argv[i], "-nd")) { > if(++i < argc) normbordercolor = argv[i]; > } > else if(!strcmp(argv[i], "-sd")) { > if(++i < argc) selbordercolor = argv[i]; > } > else if(!strcmp(argv[i], "-v")) > die("dwm-"VERSION", © 2006-2008 dwm engineers, see LICENSE for details\n"); > else > die("usage: dwm [-fn <font>] [-nb <color>] [-nf <color>]\n" > "[-v] [-sb <color>] [-sf <color>] [-nd <color>] [-sd <color>]\n");