herbe

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

commit 38fbe5c3119f9d1e85e95e60704675677b7db8a7
parent 84ece65ca21977477f1563498447274278c3e8b7
Author: Matthew Carlson <matt@mcarlson.xyz>
Date:   Sat,  3 Jul 2021 02:14:27 +0000

Merge branch 'xresources' into herbe

Diffstat:
Mconfig.h | 14+++++++-------
Mherbe.c | 31+++++++++++++++++++++++++++++++
2 files changed, 38 insertions(+), 7 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 @@ -6,6 +6,7 @@ #include <mqueue.h> #include <signal.h> #include <stdarg.h> +#include <X11/Xresource.h> #include <stdio.h> #include <stdlib.h> #include <string.h> @@ -20,6 +21,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; XftFont *font; Window window; @@ -251,6 +259,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); @@ -337,6 +367,7 @@ int main(int argc, char *argv[]) XftDrawDestroy(draw); XftColorFree(display, visual, colormap, &color); XftFontClose(display, font); + XrmDestroyDatabase(db); XCloseDisplay(display); if(id) {