diff options
Diffstat (limited to 'patches')
| -rw-r--r-- | patches/dwm-xrdb-6.4.diff | 111 |
1 files changed, 55 insertions, 56 deletions
diff --git a/patches/dwm-xrdb-6.4.diff b/patches/dwm-xrdb-6.4.diff index 929b4e6..7852afb 100644 --- a/patches/dwm-xrdb-6.4.diff +++ b/patches/dwm-xrdb-6.4.diff @@ -34,20 +34,20 @@ index 061ad66..686b947 100644 +static char selbordercolor[] = "#005577"; +static char selbgcolor[] = "#005577"; +static char *colors[][3] = { -+ /* fg bg border */ -+ [SchemeNorm] = { normfgcolor, normbgcolor, normbordercolor }, -+ [SchemeSel] = { selfgcolor, selbgcolor, selbordercolor }, ++ /* fg bg border */ ++ [SchemeNorm] = { normfgcolor, normbgcolor, normbordercolor }, ++ [SchemeSel] = { selfgcolor, selbgcolor, selbordercolor }, }; - + /* tagging */ @@ -56,7 +57,7 @@ static const Layout layouts[] = { #define SHCMD(cmd) { .v = (const char*[]){ "/bin/sh", "-c", cmd, NULL } } - + /* commands */ -static const char *dmenucmd[] = { "dmenu_run", "-fn", dmenufont, "-nb", col_gray1, "-nf", col_gray3, "-sb", col_cyan, "-sf", col_gray4, NULL }; +static const char *dmenucmd[] = { "dmenu_run", "-fn", dmenufont, "-nb", normbgcolor, "-nf", normfgcolor, "-sb", selbordercolor, "-sf", selfgcolor, NULL }; static const char *termcmd[] = { "st", NULL }; - + static const Key keys[] = { @@ -84,6 +85,7 @@ static const Key keys[] = { { MODKEY, XK_period, focusmon, {.i = +1 } }, @@ -75,12 +75,12 @@ index 6471431..bdbf950 100644 --- a/drw.h +++ b/drw.h @@ -40,7 +40,7 @@ void drw_font_getexts(Fnt *font, const char *text, unsigned int len, unsigned in - + /* Colorscheme abstraction */ void drw_clr_create(Drw *drw, Clr *dest, const char *clrname); -Clr *drw_scm_create(Drw *drw, const char *clrnames[], size_t clrcount); +Clr *drw_scm_create(Drw *drw, char *clrnames[], size_t clrcount); - + /* Cursor abstraction */ Cur *drw_cur_create(Drw *drw, int shape); diff --git a/dwm.c b/dwm.c @@ -100,21 +100,21 @@ index e5efb6a..3fe76be 100644 #define TAGMASK ((1 << LENGTH(tags)) - 1) #define TEXTW(X) (drw_fontset_getwidth(drw, (X)) + lrpad) +#define XRDB_LOAD_COLOR(R,V) if (XrmGetResource(xrdb, R, NULL, &type, &value) == True) { \ -+ if (value.addr != NULL && strnlen(value.addr, 8) == 7 && value.addr[0] == '#') { \ -+ int i = 1; \ -+ for (; i <= 6; i++) { \ -+ if (value.addr[i] < 48) break; \ -+ if (value.addr[i] > 57 && value.addr[i] < 65) break; \ -+ if (value.addr[i] > 70 && value.addr[i] < 97) break; \ -+ if (value.addr[i] > 102) break; \ -+ } \ -+ if (i == 7) { \ -+ strncpy(V, value.addr, 7); \ -+ V[7] = '\0'; \ -+ } \ -+ } \ ++ if (value.addr != NULL && strnlen(value.addr, 8) == 7 && value.addr[0] == '#') { \ ++ int i = 1; \ ++ for (; i <= 6; i++) { \ ++ if (value.addr[i] < 48) break; \ ++ if (value.addr[i] > 57 && value.addr[i] < 65) break; \ ++ if (value.addr[i] > 70 && value.addr[i] < 97) break; \ ++ if (value.addr[i] > 102) break; \ ++ } \ ++ if (i == 7) { \ ++ strncpy(V, value.addr, 7); \ ++ V[7] = '\0'; \ ++ } \ ++ } \ + } - + /* enums */ enum { CurNormal, CurResize, CurMove, CurLast }; /* cursor */ @@ -178,6 +194,7 @@ static void grabkeys(void); @@ -131,41 +131,41 @@ index e5efb6a..3fe76be 100644 static int xerrorstart(Display *dpy, XErrorEvent *ee); +static void xrdb(const Arg *arg); static void zoom(const Arg *arg); - + /* variables */ @@ -1019,6 +1037,37 @@ killclient(const Arg *arg) } } - + +void +loadxrdb() +{ -+ Display *display; -+ char * resm; -+ XrmDatabase xrdb; -+ char *type; -+ XrmValue value; ++ Display *display; ++ char * resm; ++ XrmDatabase xrdb; ++ char *type; ++ XrmValue value; + -+ display = XOpenDisplay(NULL); ++ display = XOpenDisplay(NULL); + -+ if (display != NULL) { -+ resm = XResourceManagerString(display); ++ if (display != NULL) { ++ resm = XResourceManagerString(display); + -+ if (resm != NULL) { -+ xrdb = XrmGetStringDatabase(resm); ++ if (resm != NULL) { ++ xrdb = XrmGetStringDatabase(resm); + -+ if (xrdb != NULL) { -+ XRDB_LOAD_COLOR("dwm.normbordercolor", normbordercolor); -+ XRDB_LOAD_COLOR("dwm.normbgcolor", normbgcolor); -+ XRDB_LOAD_COLOR("dwm.normfgcolor", normfgcolor); -+ XRDB_LOAD_COLOR("dwm.selbordercolor", selbordercolor); -+ XRDB_LOAD_COLOR("dwm.selbgcolor", selbgcolor); -+ XRDB_LOAD_COLOR("dwm.selfgcolor", selfgcolor); -+ } -+ } -+ } ++ if (xrdb != NULL) { ++ XRDB_LOAD_COLOR("dwm.normbordercolor", normbordercolor); ++ XRDB_LOAD_COLOR("dwm.normbgcolor", normbgcolor); ++ XRDB_LOAD_COLOR("dwm.normfgcolor", normfgcolor); ++ XRDB_LOAD_COLOR("dwm.selbordercolor", selbordercolor); ++ XRDB_LOAD_COLOR("dwm.selbgcolor", selbgcolor); ++ XRDB_LOAD_COLOR("dwm.selfgcolor", selfgcolor); ++ } ++ } ++ } + -+ XCloseDisplay(display); ++ XCloseDisplay(display); +} + void @@ -174,16 +174,16 @@ index e5efb6a..3fe76be 100644 @@ -2110,6 +2159,17 @@ xerrorstart(Display *dpy, XErrorEvent *ee) return -1; } - + +void +xrdb(const Arg *arg) +{ -+ loadxrdb(); -+ int i; -+ for (i = 0; i < LENGTH(colors); i++) -+ scheme[i] = drw_scm_create(drw, colors[i], 3); -+ focus(NULL); -+ arrange(NULL); ++ loadxrdb(); ++ int i; ++ for (i = 0; i < LENGTH(colors); i++) ++ scheme[i] = drw_scm_create(drw, colors[i], 3); ++ focus(NULL); ++ arrange(NULL); +} + void @@ -193,11 +193,10 @@ index e5efb6a..3fe76be 100644 if (!(dpy = XOpenDisplay(NULL))) die("dwm: cannot open display"); checkotherwm(); -+ XrmInitialize(); -+ loadxrdb(); ++ XrmInitialize(); ++ loadxrdb(); setup(); #ifdef __OpenBSD__ if (pledge("stdio rpath proc exec", NULL) == -1) --- +-- 2.38.2 - |
