Add colors and fonts to config.h (#115)

Adds a set of config vars to control window fg/bg, bar fg/bg, mark
color and bar font. This allows everything that can be done from
.Xresources to be configurable from config.h.

Co-authored-by: N-R-K <79544946+N-R-K@users.noreply.github.com>
This commit is contained in:
Arthur Williams 2021-10-09 12:04:08 -07:00 committed by NRK
parent 850bc788c3
commit 8934744c60
2 changed files with 15 additions and 7 deletions

View file

@ -4,9 +4,17 @@
static const int WIN_WIDTH = 800; static const int WIN_WIDTH = 800;
static const int WIN_HEIGHT = 600; static const int WIN_HEIGHT = 600;
/* colors and font are configured via X resource properties. /* colors and font can be overwritten via X resource properties.
* See nsxiv(1), X(7) section Resources and xrdb(1) for more information. * See nsxiv(1), X(7) section Resources and xrdb(1) for more information.
*/ */
static const char *DEFAULT_WIN_BG = "white";
static const char *DEFAULT_WIN_FG = "black";
static const char *DEFAULT_MARK_COLOR = NULL; /* NULL means it will default to window foreground */
#if HAVE_LIBFONTS
static const char *DEFAULT_BAR_BG = NULL; /* NULL means it will default to window background */
static const char *DEFAULT_BAR_FG = NULL; /* NULL means it will default to window foreground */
static const char *DEFAULT_FONT = "monospace-8";
#endif
#endif #endif
#ifdef _TITLE_CONFIG #ifdef _TITLE_CONFIG

View file

@ -133,20 +133,20 @@ void win_init(win_t *win)
res_man = XResourceManagerString(e->dpy); res_man = XResourceManagerString(e->dpy);
db = res_man == NULL ? NULL : XrmGetStringDatabase(res_man); db = res_man == NULL ? NULL : XrmGetStringDatabase(res_man);
win_bg = win_res(db, RES_CLASS ".window.background", "white"); win_bg = win_res(db, RES_CLASS ".window.background", DEFAULT_WIN_BG);
win_fg = win_res(db, RES_CLASS ".window.foreground", "black"); win_fg = win_res(db, RES_CLASS ".window.foreground", DEFAULT_WIN_FG);
mrk_fg = win_res(db, RES_CLASS ".mark.foreground", win_fg); mrk_fg = win_res(db, RES_CLASS ".mark.foreground", DEFAULT_MARK_COLOR ? DEFAULT_MARK_COLOR : win_fg);
win_alloc_color(e, win_bg, &win->win_bg); win_alloc_color(e, win_bg, &win->win_bg);
win_alloc_color(e, win_fg, &win->win_fg); win_alloc_color(e, win_fg, &win->win_fg);
win_alloc_color(e, mrk_fg, &win->mrk_fg); win_alloc_color(e, mrk_fg, &win->mrk_fg);
#if HAVE_LIBFONTS #if HAVE_LIBFONTS
bar_bg = win_res(db, RES_CLASS ".bar.background", win_bg); bar_bg = win_res(db, RES_CLASS ".bar.background", DEFAULT_BAR_BG ? DEFAULT_BAR_BG : win_bg);
bar_fg = win_res(db, RES_CLASS ".bar.foreground", win_fg); bar_fg = win_res(db, RES_CLASS ".bar.foreground", DEFAULT_BAR_FG ? DEFAULT_BAR_FG : win_fg);
xft_alloc_color(e, bar_bg, &win->bar_bg); xft_alloc_color(e, bar_bg, &win->bar_bg);
xft_alloc_color(e, bar_fg, &win->bar_fg); xft_alloc_color(e, bar_fg, &win->bar_fg);
f = win_res(db, RES_CLASS ".bar.font", "monospace-8"); f = win_res(db, RES_CLASS ".bar.font", DEFAULT_FONT);
win_init_font(e, f); win_init_font(e, f);
win->bar.l.size = BAR_L_LEN; win->bar.l.size = BAR_L_LEN;