herbe

git clone git://mattcarlson.org/repos/herbe.git
Log | Files | Refs

commit cacf7a1fd7fe899b3144a26b200e734f7dd811f5
parent caf58caa5da948e97030121d3c4c24b95c338c48
Author: Matthew Carlson <matt@mcarlson.xyz>
Date:   Sat,  3 Jul 2021 02:11:51 +0000

xresources

Diffstat:
Mconfig.h | 14+++++++-------
Mherbe.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 +}