diff options
| author | bakkeby <[email protected]> | 2019-09-15 22:45:22 +0200 |
|---|---|---|
| committer | bakkeby <[email protected]> | 2019-09-15 22:45:22 +0200 |
| commit | f8f67508d811e3ad92f159d5101e2da89e269e37 (patch) | |
| tree | 59865bc5db00d57f9d0e09bae4625e8b0b8b2dc5 /patch | |
| parent | 30e0a3b5e42185836bd4cf4d591351dacc6b723c (diff) | |
| download | dwm-flexipatch-f8f67508d811e3ad92f159d5101e2da89e269e37.tar.gz dwm-flexipatch-f8f67508d811e3ad92f159d5101e2da89e269e37.zip | |
Adding xrdb patch
Diffstat (limited to 'patch')
| -rw-r--r-- | patch/include.c | 4 | ||||
| -rw-r--r-- | patch/include.h | 8 | ||||
| -rw-r--r-- | patch/xrdb.c | 75 | ||||
| -rw-r--r-- | patch/xrdb.h | 21 |
4 files changed, 108 insertions, 0 deletions
diff --git a/patch/include.c b/patch/include.c index cc528bc..4597d51 100644 --- a/patch/include.c +++ b/patch/include.c @@ -90,6 +90,10 @@ #include "zoomswap.c" #endif +#if XRDB_PATCH +#include "xrdb.c" +#endif + /* Layouts */ #if BSTACK_LAYOUT diff --git a/patch/include.h b/patch/include.h index 4957e09..2a6001b 100644 --- a/patch/include.h +++ b/patch/include.h @@ -78,10 +78,18 @@ #include "vanitygaps.h" #endif +#if WARP_PATCH +#include "warp.h" +#endif + #if ZOOMSWAP_PATCH #include "zoomswap.h" #endif +#if XRDB_PATCH +#include "xrdb.h" +#endif + /* Layouts */ #if BSTACK_LAYOUT diff --git a/patch/xrdb.c b/patch/xrdb.c new file mode 100644 index 0000000..07c6d96 --- /dev/null +++ b/patch/xrdb.c @@ -0,0 +1,75 @@ +void +loadxrdb() +{ + Display *display; + char * resm; + XrmDatabase xrdb; + char *type; + XrmValue value; + + display = XOpenDisplay(NULL); + + if (display != NULL) { + resm = XResourceManagerString(display); + + if (resm != NULL) { + xrdb = XrmGetStringDatabase(resm); + + if (xrdb != NULL) { + XRDB_LOAD_COLOR("dwm.normfgcolor", normfgcolor); + XRDB_LOAD_COLOR("dwm.normbgcolor", normbgcolor); + XRDB_LOAD_COLOR("dwm.normbordercolor", normbordercolor); + #if FLOAT_BORDER_COLOR_PATCH + XRDB_LOAD_COLOR("dwm.normflcolor", normflcolor); + #endif // FLOAT_BORDER_COLOR_PATCH + + XRDB_LOAD_COLOR("dwm.selfgcolor", selfgcolor); + XRDB_LOAD_COLOR("dwm.selbgcolor", selbgcolor); + XRDB_LOAD_COLOR("dwm.selbordercolor", selbordercolor); + #if FLOAT_BORDER_COLOR_PATCH + XRDB_LOAD_COLOR("dwm.selflcolor", selflcolor); + #endif // FLOAT_BORDER_COLOR_PATCH + + #if AWESOMEBAR_PATCH + XRDB_LOAD_COLOR("dwm.hidfgcolor", hidfgcolor); + XRDB_LOAD_COLOR("dwm.hidbgcolor", hidbgcolor); + XRDB_LOAD_COLOR("dwm.hidbordercolor", hidbordercolor); + #if FLOAT_BORDER_COLOR_PATCH + XRDB_LOAD_COLOR("dwm.hidflcolor", hidflcolor); + #endif // FLOAT_BORDER_COLOR_PATCH + #endif // AWESOMEBAR_PATCH + + #if TITLECOLOR_PATCH + XRDB_LOAD_COLOR("dwm.titlefgcolor", titlefgcolor); + XRDB_LOAD_COLOR("dwm.titlebgcolor", titlebgcolor); + XRDB_LOAD_COLOR("dwm.titlebordercolor", titlebordercolor); + #if FLOAT_BORDER_COLOR_PATCH + XRDB_LOAD_COLOR("dwm.titleflcolor", titleflcolor); + #endif // FLOAT_BORDER_COLOR_PATCH + #endif // TITLECOLOR_PATCH + } + } + } + + XCloseDisplay(display); +} + +void +xrdb(const Arg *arg) +{ + loadxrdb(); + int i; + for (i = 0; i < LENGTH(colors); i++) + scheme[i] = drw_scm_create(drw, colors[i], + #if ALPHA_PATCH + alphas[i], + #endif // ALPHA_PATCH + #if FLOAT_BORDER_COLOR_PATCH + 4 + #else + 3 + #endif // FLOAT_BORDER_COLOR_PATCH + ); + focus(NULL); + arrange(NULL); +}
\ No newline at end of file diff --git a/patch/xrdb.h b/patch/xrdb.h new file mode 100644 index 0000000..304f2e2 --- /dev/null +++ b/patch/xrdb.h @@ -0,0 +1,21 @@ +#include <X11/Xresource.h> + +#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'; \ + } \ + } \ + } + +static void loadxrdb(void); +static void xrdb(const Arg *arg); + |
