From 8934744c60a3ef34eb65a6082d59da8ad2234d6c Mon Sep 17 00:00:00 2001 From: Arthur Williams Date: Sat, 9 Oct 2021 12:04:08 -0700 Subject: [PATCH] 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> --- config.def.h | 10 +++++++++- window.c | 12 ++++++------ 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/config.def.h b/config.def.h index 1085a39..75c5eed 100644 --- a/config.def.h +++ b/config.def.h @@ -4,9 +4,17 @@ static const int WIN_WIDTH = 800; 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. */ +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 #ifdef _TITLE_CONFIG diff --git a/window.c b/window.c index 97e424f..c8c3455 100644 --- a/window.c +++ b/window.c @@ -133,20 +133,20 @@ void win_init(win_t *win) res_man = XResourceManagerString(e->dpy); db = res_man == NULL ? NULL : XrmGetStringDatabase(res_man); - win_bg = win_res(db, RES_CLASS ".window.background", "white"); - win_fg = win_res(db, RES_CLASS ".window.foreground", "black"); - mrk_fg = win_res(db, RES_CLASS ".mark.foreground", win_fg); + win_bg = win_res(db, RES_CLASS ".window.background", DEFAULT_WIN_BG); + win_fg = win_res(db, RES_CLASS ".window.foreground", DEFAULT_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_fg, &win->win_fg); win_alloc_color(e, mrk_fg, &win->mrk_fg); #if HAVE_LIBFONTS - bar_bg = win_res(db, RES_CLASS ".bar.background", win_bg); - bar_fg = win_res(db, RES_CLASS ".bar.foreground", win_fg); + 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", DEFAULT_BAR_FG ? DEFAULT_BAR_FG : win_fg); xft_alloc_color(e, bar_bg, &win->bar_bg); 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->bar.l.size = BAR_L_LEN;