aboutsummaryrefslogtreecommitdiff
path: root/dwm.c
diff options
context:
space:
mode:
Diffstat (limited to 'dwm.c')
-rw-r--r--dwm.c72
1 files changed, 13 insertions, 59 deletions
diff --git a/dwm.c b/dwm.c
index 3c0afbf..1ce854c 100644
--- a/dwm.c
+++ b/dwm.c
@@ -68,21 +68,6 @@
#define SPTAG(i) ((1 << LENGTH(tags)) << (i))
#define SPTAGMASK (((1 << LENGTH(scratchpads))-1) << LENGTH(tags))
#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'; \
- } \
- } \
- }
#define TRUNC(X,A,B) (MAX((A), MIN((X), (B))))
/* enums */
@@ -228,7 +213,6 @@ static void grabkeys(void);
static void incnmaster(const Arg *arg);
static void keypress(XEvent *e);
static void killclient(const Arg *arg);
-static void loadxrdb(void);
static void manage(Window w, XWindowAttributes *wa);
static void mappingnotify(XEvent *e);
static void maprequest(XEvent *e);
@@ -296,8 +280,8 @@ static Monitor *wintomon(Window w);
static int xerror(Display *dpy, XErrorEvent *ee);
static int xerrordummy(Display *dpy, XErrorEvent *ee);
static int xerrorstart(Display *dpy, XErrorEvent *ee);
-static void xrdb(const Arg *arg);
static void zoom(const Arg *arg);
+static void xrdb(const Arg *arg);
static void load_xresources(void);
static void resource_load(XrmDatabase db, char *name, enum resource_type rtype, void *dst);
@@ -1224,37 +1208,6 @@ killclient(const Arg *arg)
}
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.color0", normbordercolor);
- XRDB_LOAD_COLOR("dwm.color0", normbgcolor);
- XRDB_LOAD_COLOR("dwm.color4", normfgcolor);
- XRDB_LOAD_COLOR("dwm.color8", selbordercolor);
- XRDB_LOAD_COLOR("dwm.color4", selbgcolor);
- XRDB_LOAD_COLOR("dwm.color0", selfgcolor);
- }
- }
- }
-
- XCloseDisplay(display);
-}
-
-void
manage(Window w, XWindowAttributes *wa)
{
Client *c, *t = NULL, *term = NULL;
@@ -2624,17 +2577,6 @@ xerrorstart(Display *dpy, XErrorEvent *ee)
}
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);
-}
-
-void
zoom(const Arg *arg)
{
Client *c = selmon->sel;
@@ -2647,6 +2589,18 @@ zoom(const Arg *arg)
}
void
+xrdb(const Arg *arg)
+{
+ load_xresources();
+
+ for (int i = 0; i < LENGTH(colors); i++)
+ scheme[i] = drw_scm_create(drw, colors[i], 3);
+
+ focus(NULL);
+ arrange(NULL);
+}
+
+void
resource_load(XrmDatabase db, char *name, enum resource_type rtype, void *dst)
{
char *sdst = NULL;