commit cacf7a1fd7fe899b3144a26b200e734f7dd811f5
parent caf58caa5da948e97030121d3c4c24b95c338c48
Author: Matthew Carlson <matt@mcarlson.xyz>
Date: Sat, 3 Jul 2021 02:11:51 +0000
xresources
Diffstat:
M | config.h | | | 14 | +++++++------- |
M | herbe.c | | | 34 | ++++++++++++++++++++++++++++++++-- |
2 files changed, 39 insertions(+), 9 deletions(-)
diff --git a/config.h b/config.h
@@ -2,18 +2,18 @@ static const char *background_color = "#3e3e3e";
static const char *border_color = "#ececec";
static const char *font_color = "#ececec";
static const char *font_pattern = "monospace:size=10";
-static const unsigned line_spacing = 5;
-static const unsigned int padding = 15;
+static unsigned line_spacing = 5;
+static unsigned int padding = 15;
-static const unsigned int width = 450;
-static const unsigned int border_size = 2;
-static const unsigned int pos_x = 30;
-static const unsigned int pos_y = 60;
+static unsigned int width = 450;
+static unsigned int border_size = 2;
+static unsigned int pos_x = 30;
+static unsigned int pos_y = 60;
enum corners { TOP_LEFT, TOP_RIGHT, BOTTOM_LEFT, BOTTOM_RIGHT };
enum corners corner = TOP_RIGHT;
-static const unsigned int duration = 5; /* in seconds */
+static unsigned int duration = 5; /* in seconds */
#define DISMISS_BUTTON Button1
#define ACTION_BUTTON Button3
diff --git a/herbe.c b/herbe.c
@@ -1,5 +1,6 @@
#include <X11/Xlib.h>
#include <X11/Xft/Xft.h>
+#include <X11/Xresource.h>
#include <stdio.h>
#include <stdlib.h>
#include <signal.h>
@@ -15,6 +16,13 @@
#define EXIT_FAIL 1
#define EXIT_DISMISS 2
+#define XRES_STR(name) \
+ if (XrmGetResource(db, "herbe." #name, "*", &type, &val)) \
+ name = val.addr
+#define XRES_INT(name) \
+ if (XrmGetResource(db, "herbe." #name, "*", &type, &val)) \
+ name = strtoul(val.addr, 0, 10)
+
Display *display;
Window window;
int exit_code = EXIT_DISMISS;
@@ -107,6 +115,28 @@ int main(int argc, char *argv[])
if (!(display = XOpenDisplay(0)))
die("Cannot open display");
+ XrmInitialize();
+
+ char *res_man = XResourceManagerString(display);
+ XrmDatabase db = XrmGetStringDatabase(res_man);
+
+ char *type;
+ XrmValue val;
+
+ XRES_STR(background_color);
+ XRES_STR(border_color);
+ XRES_STR(font_color);
+ XRES_STR(font_pattern);
+
+ XRES_INT(line_spacing);
+ XRES_INT(padding);
+ XRES_INT(width);
+ XRES_INT(border_size);
+ XRES_INT(pos_x);
+ XRES_INT(pos_y);
+ XRES_INT(corner);
+ XRES_INT(duration);
+
int screen = DefaultScreen(display);
Visual *visual = DefaultVisual(display, screen);
Colormap colormap = DefaultColormap(display, screen);
@@ -214,7 +244,8 @@ int main(int argc, char *argv[])
XftDrawDestroy(draw);
XftColorFree(display, visual, colormap, &color);
XftFontClose(display, font);
+ XrmDestroyDatabase(db);
XCloseDisplay(display);
return exit_code;
-}
-\ No newline at end of file
+}