Remove colour variables in the configuration file, get rid of float border color patch and rewrite xrdb ref. #263

vertigo
bakkeby 2 years ago
parent 745143f930
commit 4830423f69

@ -154,101 +154,11 @@ static void (*bartabmonfns[])(Monitor *) = { NULL /* , customlayoutfn */ };
#endif // MONOCLE_LAYOUT
#endif // BAR_TABGROUPS_PATCH
#if BAR_PANGO_PATCH
static const char font[] = "monospace 10";
static const char font[] = "monospace 10";
#else
static const char *fonts[] = { "monospace:size=10" };
static const char *fonts[] = { "monospace:size=10" };
#endif // BAR_PANGO_PATCH
static const char dmenufont[] = "monospace:size=10";
static char c000000[] = "#000000"; // placeholder value
static char normfgcolor[] = "#bbbbbb";
static char normbgcolor[] = "#222222";
static char normbordercolor[] = "#444444";
static char normfloatcolor[] = "#db8fd9";
static char selfgcolor[] = "#eeeeee";
static char selbgcolor[] = "#005577";
static char selbordercolor[] = "#005577";
static char selfloatcolor[] = "#005577";
static char titlenormfgcolor[] = "#bbbbbb";
static char titlenormbgcolor[] = "#222222";
static char titlenormbordercolor[] = "#444444";
static char titlenormfloatcolor[] = "#db8fd9";
static char titleselfgcolor[] = "#eeeeee";
static char titleselbgcolor[] = "#005577";
static char titleselbordercolor[] = "#005577";
static char titleselfloatcolor[] = "#005577";
static char tagsnormfgcolor[] = "#bbbbbb";
static char tagsnormbgcolor[] = "#222222";
static char tagsnormbordercolor[] = "#444444";
static char tagsnormfloatcolor[] = "#db8fd9";
static char tagsselfgcolor[] = "#eeeeee";
static char tagsselbgcolor[] = "#005577";
static char tagsselbordercolor[] = "#005577";
static char tagsselfloatcolor[] = "#005577";
static char hidnormfgcolor[] = "#005577";
static char hidselfgcolor[] = "#227799";
static char hidnormbgcolor[] = "#222222";
static char hidselbgcolor[] = "#222222";
static char urgfgcolor[] = "#bbbbbb";
static char urgbgcolor[] = "#222222";
static char urgbordercolor[] = "#ff0000";
static char urgfloatcolor[] = "#db8fd9";
#if RENAMED_SCRATCHPADS_PATCH
static char scratchselfgcolor[] = "#FFF7D4";
static char scratchselbgcolor[] = "#77547E";
static char scratchselbordercolor[] = "#894B9F";
static char scratchselfloatcolor[] = "#894B9F";
static char scratchnormfgcolor[] = "#FFF7D4";
static char scratchnormbgcolor[] = "#664C67";
static char scratchnormbordercolor[] = "#77547E";
static char scratchnormfloatcolor[] = "#77547E";
#endif // RENAMED_SCRATCHPADS_PATCH
#if BAR_FLEXWINTITLE_PATCH
static char normTTBbgcolor[] = "#330000";
static char normLTRbgcolor[] = "#330033";
static char normMONObgcolor[] = "#000033";
static char normGRIDbgcolor[] = "#003300";
static char normGRD1bgcolor[] = "#003300";
static char normGRD2bgcolor[] = "#003300";
static char normGRDMbgcolor[] = "#506600";
static char normHGRDbgcolor[] = "#b96600";
static char normDWDLbgcolor[] = "#003333";
static char normSPRLbgcolor[] = "#333300";
static char normfloatbgcolor[] = "#115577";
static char actTTBbgcolor[] = "#440000";
static char actLTRbgcolor[] = "#440044";
static char actMONObgcolor[] = "#000044";
static char actGRIDbgcolor[] = "#004400";
static char actGRD1bgcolor[] = "#004400";
static char actGRD2bgcolor[] = "#004400";
static char actGRDMbgcolor[] = "#507711";
static char actHGRDbgcolor[] = "#b97711";
static char actDWDLbgcolor[] = "#004444";
static char actSPRLbgcolor[] = "#444400";
static char actfloatbgcolor[] = "#116688";
static char selTTBbgcolor[] = "#550000";
static char selLTRbgcolor[] = "#550055";
static char selMONObgcolor[] = "#212171";
static char selGRIDbgcolor[] = "#005500";
static char selGRD1bgcolor[] = "#005500";
static char selGRD2bgcolor[] = "#005500";
static char selGRDMbgcolor[] = "#508822";
static char selHGRDbgcolor[] = "#b98822";
static char selDWDLbgcolor[] = "#005555";
static char selSPRLbgcolor[] = "#555500";
static char selfloatbgcolor[] = "#117799";
#endif // BAR_FLEXWINTITLE_PATCH
static char dmenufont[] = "monospace:size=10";
#if BAR_ALPHA_PATCH
static const unsigned int baralpha = 0xd0;
@ -306,73 +216,89 @@ static const unsigned int alphas[][3] = {
};
#endif // BAR_ALPHA_PATCH
static char *colors[][ColCount] = {
/* fg bg border float */
[SchemeNorm] = { normfgcolor, normbgcolor, normbordercolor, normfloatcolor },
[SchemeSel] = { selfgcolor, selbgcolor, selbordercolor, selfloatcolor },
[SchemeTitleNorm] = { titlenormfgcolor, titlenormbgcolor, titlenormbordercolor, titlenormfloatcolor },
[SchemeTitleSel] = { titleselfgcolor, titleselbgcolor, titleselbordercolor, titleselfloatcolor },
[SchemeTagsNorm] = { tagsnormfgcolor, tagsnormbgcolor, tagsnormbordercolor, tagsnormfloatcolor },
[SchemeTagsSel] = { tagsselfgcolor, tagsselbgcolor, tagsselbordercolor, tagsselfloatcolor },
[SchemeHidNorm] = { hidnormfgcolor, hidnormbgcolor, c000000, c000000 },
[SchemeHidSel] = { hidselfgcolor, hidselbgcolor, c000000, c000000 },
[SchemeUrg] = { urgfgcolor, urgbgcolor, urgbordercolor, urgfloatcolor },
static char *colors[SchemeLast][5] = {
/* fg bg border resource prefix */
[SchemeNorm] = { "#bbbbbb", "#222222", "#444444", "norm" },
[SchemeSel] = { "#eeeeee", "#005577", "#005577", "sel" },
[SchemeTitleNorm] = { "#bbbbbb", "#222222", "#444444", "titlenorm" },
[SchemeTitleSel] = { "#eeeeee", "#005577", "#005577", "titlesel" },
[SchemeTagsNorm] = { "#bbbbbb", "#222222", "#444444", "tagsnorm" },
[SchemeTagsSel] = { "#eeeeee", "#005577", "#005577", "tagssel" },
[SchemeHidNorm] = { "#005577", "#222222", "#000000", "hidnorm" },
[SchemeHidSel] = { "#227799", "#222222", "#000000", "hidsel" },
[SchemeUrg] = { "#bbbbbb", "#222222", "#ff0000", "urg" },
#if RENAMED_SCRATCHPADS_PATCH
[SchemeScratchSel] = { scratchselfgcolor, scratchselbgcolor, scratchselbordercolor, scratchselfloatcolor },
[SchemeScratchNorm] = { scratchnormfgcolor, scratchnormbgcolor, scratchnormbordercolor, scratchnormfloatcolor },
[SchemeScratchSel] = { "#FFF7D4", "#77547E", "#894B9F", "scratchnorm" },
[SchemeScratchNorm] = { "#FFF7D4", "#664C67", "#77547E", "scratchsel" },
#endif // RENAMED_SCRATCHPADS_PATCH
#if BAR_FLEXWINTITLE_PATCH
[SchemeFlexActTTB] = { titleselfgcolor, actTTBbgcolor, actTTBbgcolor, c000000 },
[SchemeFlexActLTR] = { titleselfgcolor, actLTRbgcolor, actLTRbgcolor, c000000 },
[SchemeFlexActMONO] = { titleselfgcolor, actMONObgcolor, actMONObgcolor, c000000 },
[SchemeFlexActGRID] = { titleselfgcolor, actGRIDbgcolor, actGRIDbgcolor, c000000 },
[SchemeFlexActGRD1] = { titleselfgcolor, actGRD1bgcolor, actGRD1bgcolor, c000000 },
[SchemeFlexActGRD2] = { titleselfgcolor, actGRD2bgcolor, actGRD2bgcolor, c000000 },
[SchemeFlexActGRDM] = { titleselfgcolor, actGRDMbgcolor, actGRDMbgcolor, c000000 },
[SchemeFlexActHGRD] = { titleselfgcolor, actHGRDbgcolor, actHGRDbgcolor, c000000 },
[SchemeFlexActDWDL] = { titleselfgcolor, actDWDLbgcolor, actDWDLbgcolor, c000000 },
[SchemeFlexActSPRL] = { titleselfgcolor, actSPRLbgcolor, actSPRLbgcolor, c000000 },
[SchemeFlexActFloat] = { titleselfgcolor, actfloatbgcolor, actfloatbgcolor, c000000 },
[SchemeFlexInaTTB] = { titlenormfgcolor, normTTBbgcolor, normTTBbgcolor, c000000 },
[SchemeFlexInaLTR] = { titlenormfgcolor, normLTRbgcolor, normLTRbgcolor, c000000 },
[SchemeFlexInaMONO] = { titlenormfgcolor, normMONObgcolor, normMONObgcolor, c000000 },
[SchemeFlexInaGRID] = { titlenormfgcolor, normGRIDbgcolor, normGRIDbgcolor, c000000 },
[SchemeFlexInaGRD1] = { titlenormfgcolor, normGRD1bgcolor, normGRD1bgcolor, c000000 },
[SchemeFlexInaGRD2] = { titlenormfgcolor, normGRD2bgcolor, normGRD2bgcolor, c000000 },
[SchemeFlexInaGRDM] = { titlenormfgcolor, normGRDMbgcolor, normGRDMbgcolor, c000000 },
[SchemeFlexInaHGRD] = { titlenormfgcolor, normHGRDbgcolor, normHGRDbgcolor, c000000 },
[SchemeFlexInaDWDL] = { titlenormfgcolor, normDWDLbgcolor, normDWDLbgcolor, c000000 },
[SchemeFlexInaSPRL] = { titlenormfgcolor, normSPRLbgcolor, normSPRLbgcolor, c000000 },
[SchemeFlexInaFloat] = { titlenormfgcolor, normfloatbgcolor, normfloatbgcolor, c000000 },
[SchemeFlexSelTTB] = { titleselfgcolor, selTTBbgcolor, selTTBbgcolor, c000000 },
[SchemeFlexSelLTR] = { titleselfgcolor, selLTRbgcolor, selLTRbgcolor, c000000 },
[SchemeFlexSelMONO] = { titleselfgcolor, selMONObgcolor, selMONObgcolor, c000000 },
[SchemeFlexSelGRID] = { titleselfgcolor, selGRIDbgcolor, selGRIDbgcolor, c000000 },
[SchemeFlexSelGRD1] = { titleselfgcolor, selGRD1bgcolor, selGRD1bgcolor, c000000 },
[SchemeFlexSelGRD2] = { titleselfgcolor, selGRD2bgcolor, selGRD2bgcolor, c000000 },
[SchemeFlexSelGRDM] = { titleselfgcolor, selGRDMbgcolor, selGRDMbgcolor, c000000 },
[SchemeFlexSelHGRD] = { titleselfgcolor, selHGRDbgcolor, selHGRDbgcolor, c000000 },
[SchemeFlexSelDWDL] = { titleselfgcolor, selDWDLbgcolor, selDWDLbgcolor, c000000 },
[SchemeFlexSelSPRL] = { titleselfgcolor, selSPRLbgcolor, selSPRLbgcolor, c000000 },
[SchemeFlexSelFloat] = { titleselfgcolor, selfloatbgcolor, selfloatbgcolor, c000000 },
[SchemeFlexActTTB] = { "#eeeeee", "#440000", "#440000", "actTTB" },
[SchemeFlexActLTR] = { "#eeeeee", "#440044", "#440044", "actLTR" },
[SchemeFlexActMONO] = { "#eeeeee", "#000044", "#000044", "actMONO" },
[SchemeFlexActGRID] = { "#eeeeee", "#004400", "#004400", "actGRID" },
[SchemeFlexActGRD1] = { "#eeeeee", "#004400", "#004400", "actGRD1" },
[SchemeFlexActGRD2] = { "#eeeeee", "#004400", "#004400", "actGRD2" },
[SchemeFlexActGRDM] = { "#eeeeee", "#507711", "#507711", "actGRDM" },
[SchemeFlexActHGRD] = { "#eeeeee", "#b97711", "#b97711", "actHGRD" },
[SchemeFlexActDWDL] = { "#eeeeee", "#004444", "#004444", "actDWDL" },
[SchemeFlexActSPRL] = { "#eeeeee", "#444400", "#444400", "actSPRL" },
[SchemeFlexActFloat] = { "#eeeeee", "#116688", "#116688", "actfloat" },
[SchemeFlexInaTTB] = { "#bbbbbb", "#330000", "#330000", "normTTB" },
[SchemeFlexInaLTR] = { "#bbbbbb", "#330033", "#330033", "normLTR" },
[SchemeFlexInaMONO] = { "#bbbbbb", "#000033", "#000033", "normMONO" },
[SchemeFlexInaGRID] = { "#bbbbbb", "#003300", "#003300", "normGRID" },
[SchemeFlexInaGRD1] = { "#bbbbbb", "#003300", "#003300", "normGRD1" },
[SchemeFlexInaGRD2] = { "#bbbbbb", "#003300", "#003300", "normGRD2" },
[SchemeFlexInaGRDM] = { "#bbbbbb", "#506600", "#506600", "normGRDM" },
[SchemeFlexInaHGRD] = { "#bbbbbb", "#b96600", "#b96600", "normHGRD" },
[SchemeFlexInaDWDL] = { "#bbbbbb", "#003333", "#003333", "normDWDL" },
[SchemeFlexInaSPRL] = { "#bbbbbb", "#333300", "#333300", "normSPRL" },
[SchemeFlexInaFloat] = { "#bbbbbb", "#115577", "#115577", "normfloat" },
[SchemeFlexSelTTB] = { "#eeeeee", "#550000", "#550000", "selTTB" },
[SchemeFlexSelLTR] = { "#eeeeee", "#550055", "#550055", "selLTR" },
[SchemeFlexSelMONO] = { "#eeeeee", "#212171", "#212171", "selMONO" },
[SchemeFlexSelGRID] = { "#eeeeee", "#005500", "#005500", "selGRID" },
[SchemeFlexSelGRD1] = { "#eeeeee", "#005500", "#005500", "selGRD1" },
[SchemeFlexSelGRD2] = { "#eeeeee", "#005500", "#005500", "selGRD2" },
[SchemeFlexSelGRDM] = { "#eeeeee", "#508822", "#508822", "selGRDM" },
[SchemeFlexSelHGRD] = { "#eeeeee", "#b98822", "#b98822", "selHGRD" },
[SchemeFlexSelDWDL] = { "#eeeeee", "#005555", "#005555", "selDWDL" },
[SchemeFlexSelSPRL] = { "#eeeeee", "#555500", "#555500", "selSPRL" },
[SchemeFlexSelFloat] = { "#eeeeee", "#117799", "#117799", "selfloat" },
#endif // BAR_FLEXWINTITLE_PATCH
};
#if BAR_POWERLINE_STATUS_PATCH
static char *statuscolors[][ColCount] = {
/* fg bg border float */
[SchemeNorm] = { normfgcolor, normbgcolor, normbordercolor, normfloatcolor },
[SchemeSel] = { selfgcolor, selbgcolor, selbordercolor, selfloatcolor },
[SchemeTitleNorm] = { titlenormfgcolor, titlenormbgcolor, titlenormbordercolor, titlenormfloatcolor },
[SchemeTitleSel] = { titleselfgcolor, titleselbgcolor, titleselbordercolor, titleselfloatcolor },
[SchemeTagsNorm] = { tagsnormfgcolor, tagsnormbgcolor, tagsnormbordercolor, tagsnormfloatcolor },
[SchemeTagsSel] = { tagsselfgcolor, tagsselbgcolor, tagsselbordercolor, tagsselfloatcolor },
[SchemeHidNorm] = { hidnormfgcolor, hidnormbgcolor, c000000, c000000 },
[SchemeHidSel] = { hidselfgcolor, hidselbgcolor, c000000, c000000 },
[SchemeUrg] = { urgfgcolor, urgbgcolor, urgbordercolor, urgfloatcolor },
/* fg bg border */
[SchemeNorm] = { "#bbbbbb", "#222222", "#444444" },
[SchemeSel] = { "#eeeeee", "#005577", "#005577" },
[SchemeTitleNorm] = { "#bbbbbb", "#222222", "#444444" },
[SchemeTitleSel] = { "#eeeeee", "#005577", "#005577" },
[SchemeTagsNorm] = { "#bbbbbb", "#222222", "#444444" },
[SchemeTagsSel] = { "#eeeeee", "#005577", "#005577" },
[SchemeHidNorm] = { "#005577", "#222222", "#000000" },
[SchemeHidSel] = { "#227799", "#222222", "#000000" },
[SchemeUrg] = { "#bbbbbb", "#222222", "#ff0000" },
};
#endif // BAR_POWERLINE_STATUS_PATCH
static char dmenunormfgcolor[] = "#bbbbbb";
static char dmenunormbgcolor[] = "#222222";
static char dmenuselfgcolor[] = "#eeeeee";
static char dmenuselbgcolor[] = "#005577";
#if XRDB_PATCH
/* Xresources preferences to load at startup. */
static const ResourcePref resources[] = {
{ "dmenunormfgcolor", STRING, &dmenunormfgcolor },
{ "dmenunormbgcolor", STRING, &dmenunormbgcolor },
{ "dmenuselfgcolor", STRING, &dmenuselfgcolor },
{ "dmenuselbgcolor", STRING, &dmenuselbgcolor },
{ "dmenufont", STRING, &dmenufont },
};
#endif // XRDB_PATCH
#if BAR_LAYOUTMENU_PATCH
static const char *layoutmenu_cmd = "layoutmenu.sh";
#endif
@ -385,7 +311,7 @@ static const char *const autostart[] = {
#endif // COOL_AUTOSTART_PATCH
#if RENAMED_SCRATCHPADS_PATCH
static const char *scratchpadcmd[] = {"s", "st", "-n", "spterm", NULL};
static const char *spcmd_s[] = {"s", "st", "-n", "spterm", NULL};
#endif // RENAMED_SCRATCHPADS_PATCH
/* Tags
@ -830,10 +756,10 @@ static const char *dmenucmd[] = {
"-m", dmenumon,
#endif // NODMENU_PATCH
"-fn", dmenufont,
"-nb", normbgcolor,
"-nf", normfgcolor,
"-sb", selbgcolor,
"-sf", selfgcolor,
"-nb", dmenunormfgcolor,
"-nf", dmenunormbgcolor,
"-sb", dmenuselfgcolor,
"-sf", dmenuselbgcolor,
#if BAR_DMENUMATCHTOP_PATCH
topbar ? NULL : "-b",
#endif // BAR_DMENUMATCHTOP_PATCH
@ -1034,7 +960,7 @@ static const Key keys[] = {
#if WINVIEW_PATCH
{ MODKEY, XK_o, winview, {0} },
#endif // WINVIEW_PATCH
#if XRDB_PATCH && !BAR_VTCOLORS_PATCH
#if XRDB_PATCH
{ MODKEY|ShiftMask, XK_F5, xrdb, {.v = NULL } },
#endif // XRDB_PATCH
{ MODKEY, XK_t, setlayout, {.v = &layouts[0]} },
@ -1067,9 +993,9 @@ static const Key keys[] = {
{ MODKEY|ShiftMask, XK_Escape, togglenomodbuttons, {0} },
#endif // NO_MOD_BUTTONS_PATCH
#if RENAMED_SCRATCHPADS_PATCH
{ MODKEY, XK_grave, togglescratch, {.v = scratchpadcmd } },
{ MODKEY|ControlMask, XK_grave, setscratch, {.v = scratchpadcmd } },
{ MODKEY|ShiftMask, XK_grave, removescratch, {.v = scratchpadcmd } },
{ MODKEY, XK_grave, togglescratch, {.v = spcmd_s } },
{ MODKEY|ControlMask, XK_grave, setscratch, {.v = spcmd_s } },
{ MODKEY|ShiftMask, XK_grave, removescratch, {.v = spcmd_s } },
#endif // RENAMED_SCRATCHPADS_PATCH
#if UNFLOATVISIBLE_PATCH
{ MODKEY|Mod4Mask, XK_space, unfloatvisible, {0} },
@ -1523,7 +1449,7 @@ static const Signal signals[] = {
#if WINVIEW_PATCH
{ "winview", winview },
#endif // WINVIEW_PATCH
#if XRDB_PATCH && !BAR_VTCOLORS_PATCH
#if XRDB_PATCH
{ "xrdb", xrdb },
#endif // XRDB_PATCH
#if TAGOTHERMONITOR_PATCH
@ -1717,7 +1643,7 @@ static IPCCommand ipccommands[] = {
#if WINVIEW_PATCH
IPCCOMMAND( winview, 1, {ARG_TYPE_NONE} ),
#endif // WINVIEW_PATCH
#if XRDB_PATCH && !BAR_VTCOLORS_PATCH
#if XRDB_PATCH
IPCCOMMAND( xrdb, 1, {ARG_TYPE_NONE} ),
#endif // XRDB_PATCH
};

@ -742,4 +742,3 @@ drw_cur_free(Drw *drw, Cur *cursor)
XFreeCursor(drw->dpy, cursor->cursor);
free(cursor);
}

@ -21,7 +21,7 @@ typedef struct Fnt {
#endif // BAR_PANGO_PATCH
} Fnt;
enum { ColFg, ColBg, ColBorder, ColFloat, ColCount }; /* Clr scheme index */
enum { ColFg, ColBg, ColBorder, ColCount }; /* Clr scheme index */
typedef XftColor Clr;
typedef struct {

122
dwm.c

@ -181,6 +181,7 @@ enum {
SchemeFlexInaFloat,
SchemeFlexSelFloat,
#endif // BAR_FLEXWINTITLE_PATCH
SchemeLast
}; /* color schemes */
enum {
@ -2040,19 +2041,12 @@ focus(Client *c)
grabbuttons(c, 1);
#if !BAR_FLEXWINTITLE_PATCH
#if RENAMED_SCRATCHPADS_PATCH
if (c->scratchkey != 0 && c->isfloating)
XSetWindowBorder(dpy, c->win, scheme[SchemeScratchSel][ColFloat].pixel);
else if (c->scratchkey != 0)
if (c->scratchkey != 0)
XSetWindowBorder(dpy, c->win, scheme[SchemeScratchSel][ColBorder].pixel);
else if (c->isfloating)
XSetWindowBorder(dpy, c->win, scheme[SchemeSel][ColFloat].pixel);
else
XSetWindowBorder(dpy, c->win, scheme[SchemeSel][ColBorder].pixel);
#else
if (c->isfloating)
XSetWindowBorder(dpy, c->win, scheme[SchemeSel][ColFloat].pixel);
else
XSetWindowBorder(dpy, c->win, scheme[SchemeSel][ColBorder].pixel);
XSetWindowBorder(dpy, c->win, scheme[SchemeSel][ColBorder].pixel);
#endif // RENAMED_SCRATCHPADS_PATCH
#endif // BAR_FLEXWINTITLE_PATCH
setfocus(c);
@ -2497,10 +2491,7 @@ manage(Window w, XWindowAttributes *wa)
wc.border_width = c->bw;
XConfigureWindow(dpy, w, CWBorderWidth, &wc);
#if !BAR_FLEXWINTITLE_PATCH
if (c->isfloating)
XSetWindowBorder(dpy, w, scheme[SchemeNorm][ColFloat].pixel);
else
XSetWindowBorder(dpy, w, scheme[SchemeNorm][ColBorder].pixel);
XSetWindowBorder(dpy, w, scheme[SchemeNorm][ColBorder].pixel);
#endif // BAR_FLEXWINTITLE_PATCH
configure(c); /* propagates border_width, if size doesn't change */
updatesizehints(c);
@ -2547,10 +2538,8 @@ manage(Window w, XWindowAttributes *wa)
if (!c->isfloating)
c->isfloating = c->oldstate = trans != None || c->isfixed;
if (c->isfloating) {
if (c->isfloating)
XRaiseWindow(dpy, c->win);
XSetWindowBorder(dpy, w, scheme[SchemeNorm][ColFloat].pixel);
}
#if ATTACHABOVE_PATCH || ATTACHASIDE_PATCH || ATTACHBELOW_PATCH || ATTACHBOTTOM_PATCH || SEAMLESS_RESTART_PATCH
attachx(c);
#else
@ -3660,6 +3649,40 @@ setup(void)
if (!drw_fontset_create(drw, fonts, LENGTH(fonts)))
#endif // BAR_PANGO_PATCH
die("no fonts could be loaded.");
/* init appearance */
#if BAR_STATUS2D_PATCH && !BAR_STATUSCOLORS_PATCH
scheme = ecalloc(LENGTH(colors) + 1, sizeof(Clr *));
#if BAR_ALPHA_PATCH
scheme[LENGTH(colors)] = drw_scm_create(drw, colors[0], alphas[0], ColCount);
#else
scheme[LENGTH(colors)] = drw_scm_create(drw, colors[0], ColCount);
#endif // BAR_ALPHA_PATCH
#else
scheme = ecalloc(LENGTH(colors), sizeof(Clr *));
#endif // BAR_STATUS2D_PATCH
for (i = 0; i < LENGTH(colors); i++)
#if BAR_ALPHA_PATCH
scheme[i] = drw_scm_create(drw, colors[i], alphas[i], ColCount);
#else
scheme[i] = drw_scm_create(drw, colors[i], ColCount);
#endif // BAR_ALPHA_PATCH
#if BAR_POWERLINE_STATUS_PATCH
statusscheme = ecalloc(LENGTH(statuscolors), sizeof(Clr *));
for (i = 0; i < LENGTH(statuscolors); i++)
#if BAR_ALPHA_PATCH
statusscheme[i] = drw_scm_create(drw, statuscolors[i], alphas[0], ColCount);
#else
statusscheme[i] = drw_scm_create(drw, statuscolors[i], ColCount);
#endif // BAR_ALPHA_PATCH
#endif // BAR_POWERLINE_STATUS_PATCH
#if XRDB_PATCH
XrmInitialize();
loadxrdb();
#endif // XRDB_PATCH
#if BAR_STATUSPADDING_PATCH
lrpad = drw->fonts->h + horizpadbar;
bh = drw->fonts->h + vertpadbar;
@ -3739,42 +3762,6 @@ setup(void)
cursor[CurIronCross] = drw_cur_create(drw, XC_iron_cross);
#endif // DRAGCFACT_PATCH
cursor[CurMove] = drw_cur_create(drw, XC_fleur);
/* init appearance */
#if BAR_VTCOLORS_PATCH
get_vt_colors();
if (get_luminance(colors[SchemeTagsNorm][ColBg]) > 50) {
strcpy(colors[SchemeTitleNorm][ColBg], title_bg_light);
strcpy(colors[SchemeTitleSel][ColBg], title_bg_light);
} else {
strcpy(colors[SchemeTitleNorm][ColBg], title_bg_dark);
strcpy(colors[SchemeTitleSel][ColBg], title_bg_dark);
}
#endif // BAR_VTCOLORS_PATCH
#if BAR_STATUS2D_PATCH && !BAR_STATUSCOLORS_PATCH
scheme = ecalloc(LENGTH(colors) + 1, sizeof(Clr *));
#if BAR_ALPHA_PATCH
scheme[LENGTH(colors)] = drw_scm_create(drw, colors[0], alphas[0], ColCount);
#else
scheme[LENGTH(colors)] = drw_scm_create(drw, colors[0], ColCount);
#endif // BAR_ALPHA_PATCH
#else
scheme = ecalloc(LENGTH(colors), sizeof(Clr *));
#endif // BAR_STATUS2D_PATCH
for (i = 0; i < LENGTH(colors); i++)
#if BAR_ALPHA_PATCH
scheme[i] = drw_scm_create(drw, colors[i], alphas[i], ColCount);
#else
scheme[i] = drw_scm_create(drw, colors[i], ColCount);
#endif // BAR_ALPHA_PATCH
#if BAR_POWERLINE_STATUS_PATCH
statusscheme = ecalloc(LENGTH(statuscolors), sizeof(Clr *));
for (i = 0; i < LENGTH(statuscolors); i++)
#if BAR_ALPHA_PATCH
statusscheme[i] = drw_scm_create(drw, statuscolors[i], alphas[0], ColCount);
#else
statusscheme[i] = drw_scm_create(drw, statuscolors[i], ColCount);
#endif // BAR_ALPHA_PATCH
#endif // BAR_POWERLINE_STATUS_PATCH
updatebars();
updatestatus();
@ -4122,12 +4109,6 @@ togglefloating(const Arg *arg)
#endif // FAKEFULLSCREEN_CLIENT_PATCH
#endif // !FAKEFULLSCREEN_PATCH
c->isfloating = !c->isfloating || c->isfixed;
#if !BAR_FLEXWINTITLE_PATCH
if (c->isfloating)
XSetWindowBorder(dpy, c->win, scheme[SchemeSel][ColFloat].pixel);
else
XSetWindowBorder(dpy, c->win, scheme[SchemeSel][ColBorder].pixel);
#endif // BAR_FLEXWINTITLE_PATCH
if (c->isfloating) {
#if SAVEFLOATS_PATCH || EXRESIZE_PATCH
if (c->sfx != -9999) {
@ -4297,19 +4278,12 @@ unfocus(Client *c, int setfocus, Client *nextfocus)
grabbuttons(c, 0);
#if !BAR_FLEXWINTITLE_PATCH
#if RENAMED_SCRATCHPADS_PATCH
if (c->scratchkey != 0 && c->isfloating)
XSetWindowBorder(dpy, c->win, scheme[SchemeScratchNorm][ColFloat].pixel);
else if (c->scratchkey != 0)
if (c->scratchkey != 0)
XSetWindowBorder(dpy, c->win, scheme[SchemeScratchNorm][ColBorder].pixel);
else if (c->isfloating)
XSetWindowBorder(dpy, c->win, scheme[SchemeNorm][ColFloat].pixel);
else
XSetWindowBorder(dpy, c->win, scheme[SchemeNorm][ColBorder].pixel);
#else
if (c->isfloating)
XSetWindowBorder(dpy, c->win, scheme[SchemeNorm][ColFloat].pixel);
else
XSetWindowBorder(dpy, c->win, scheme[SchemeNorm][ColBorder].pixel);
XSetWindowBorder(dpy, c->win, scheme[SchemeNorm][ColBorder].pixel);
#endif // RENAMED_SCRATCHPADS_PATCH
#endif // BAR_FLEXWINTITLE_PATCH
if (setfocus) {
@ -4843,12 +4817,8 @@ updatewmhints(Client *c)
XSetWMHints(dpy, c->win, wmh);
} else
c->isurgent = (wmh->flags & XUrgencyHint) ? 1 : 0;
if (c->isurgent) {
if (c->isfloating)
XSetWindowBorder(dpy, c->win, scheme[SchemeUrg][ColFloat].pixel);
else
XSetWindowBorder(dpy, c->win, scheme[SchemeUrg][ColBorder].pixel);
}
if (c->isurgent)
XSetWindowBorder(dpy, c->win, scheme[SchemeUrg][ColBorder].pixel);
if (wmh->flags & InputHint)
c->neverfocus = !wmh->input;
else
@ -5080,7 +5050,6 @@ main(int argc, char *argv[])
#else
fonts[0] = argv[++i];
#endif // BAR_PANGO_PATCH
#if !BAR_VTCOLORS_PATCH
else if (!strcmp("-nb", argv[i])) /* normal background color */
colors[SchemeNorm][1] = argv[++i];
else if (!strcmp("-nf", argv[i])) /* normal foreground color */
@ -5089,7 +5058,6 @@ main(int argc, char *argv[])
colors[SchemeSel][1] = argv[++i];
else if (!strcmp("-sf", argv[i])) /* selected foreground color */
colors[SchemeSel][0] = argv[++i];
#endif // !BAR_VTCOLORS_PATCH
#if NODMENU_PATCH
else if (!strcmp("-df", argv[i])) /* dmenu font */
dmenucmd[2] = argv[++i];
@ -5129,10 +5097,6 @@ main(int argc, char *argv[])
die("dwm: cannot get xcb connection\n");
#endif // SWALLOW_PATCH
checkotherwm();
#if XRDB_PATCH && !BAR_VTCOLORS_PATCH
XrmInitialize();
loadxrdb();
#endif // XRDB_PATCH && !BAR_VTCOLORS_PATCH
#if COOL_AUTOSTART_PATCH
autostart_exec();
#endif // COOL_AUTOSTART_PATCH

@ -329,7 +329,7 @@
#if XKB_PATCH
#include "xkb.c"
#endif
#if XRDB_PATCH && !BAR_VTCOLORS_PATCH
#if XRDB_PATCH
#include "xrdb.c"
#endif
#if DRAGMFACT_PATCH

@ -331,7 +331,7 @@
#if XKB_PATCH
#include "xkb.h"
#endif
#if XRDB_PATCH && !BAR_VTCOLORS_PATCH
#if XRDB_PATCH
#include "xrdb.h"
#endif
/* Layouts */

@ -1,11 +1,77 @@
int
loadxrdbcolor(XrmDatabase xrdb, char **dest, char *resource)
{
XrmValue value;
char *type;
if (XrmGetResource(xrdb, resource, NULL, &type, &value) == True) {
if (value.addr != NULL && strnlen(value.addr, 8) == 7 && value.addr[0] == '#') {
int i = 1;
for (; i <= 6; i++) {
if (value.addr[i] < 48) break;
if (value.addr[i] > 57 && value.addr[i] < 65) break;
if (value.addr[i] > 70 && value.addr[i] < 97) break;
if (value.addr[i] > 102) break;
}
if (i == 7) {
strncpy(*dest, value.addr, 7);
return 1;
}
}
}
return 0;
}
void
loadxrdbconfig(XrmDatabase xrdb, char *name, enum resource_type rtype, void *dst)
{
char *sdst = NULL;
int *idst = NULL;
float *fdst = NULL;
sdst = dst;
idst = dst;
fdst = dst;
char fullname[256];
char *type;
XrmValue ret;
snprintf(fullname, sizeof(fullname), "%s.%s", "dwm", name);
fullname[sizeof(fullname) - 1] = '\0';
XrmGetResource(xrdb, fullname, "*", &type, &ret);
if (!(ret.addr == NULL || strncmp("String", type, 64)))
{
switch (rtype) {
case STRING:
strcpy(sdst, ret.addr);
break;
case INTEGER:
*idst = strtoul(ret.addr, NULL, 10);
break;
case FLOAT:
*fdst = strtof(ret.addr, NULL);
break;
}
}
}
void
loadxrdb()
{
Display *display;
char * resm;
XrmDatabase xrdb;
char *type;
XrmValue value;
const ResourcePref *p;
int s;
char resource[40];
char *pattern = "dwm.%s%scolor";
char fg[] = "#000000";
char bg[] = "#000000";
char bd[] = "#000000";
char *clrnames[] = { fg, bg, bd };
display = XOpenDisplay(NULL);
@ -16,102 +82,45 @@ loadxrdb()
xrdb = XrmGetStringDatabase(resm);
if (xrdb != NULL) {
XRDB_LOAD_COLOR("dwm.normfgcolor", normfgcolor);
XRDB_LOAD_COLOR("dwm.normbgcolor", normbgcolor);
XRDB_LOAD_COLOR("dwm.normbordercolor", normbordercolor);
XRDB_LOAD_COLOR("dwm.normfloatcolor", normfloatcolor);
XRDB_LOAD_COLOR("dwm.selfgcolor", selfgcolor);
XRDB_LOAD_COLOR("dwm.selbgcolor", selbgcolor);
XRDB_LOAD_COLOR("dwm.selbordercolor", selbordercolor);
XRDB_LOAD_COLOR("dwm.selfloatcolor", selfloatcolor);
XRDB_LOAD_COLOR("dwm.titlenormfgcolor", titlenormfgcolor);
XRDB_LOAD_COLOR("dwm.titlenormbgcolor", titlenormbgcolor);
XRDB_LOAD_COLOR("dwm.titlenormbordercolor", titlenormbordercolor);
XRDB_LOAD_COLOR("dwm.titlenormfloatcolor", titlenormfloatcolor);
XRDB_LOAD_COLOR("dwm.titleselfgcolor", titleselfgcolor);
XRDB_LOAD_COLOR("dwm.titleselbgcolor", titleselbgcolor);
XRDB_LOAD_COLOR("dwm.titleselbordercolor", titleselbordercolor);
XRDB_LOAD_COLOR("dwm.titleselfloatcolor", titleselfloatcolor);
XRDB_LOAD_COLOR("dwm.tagsnormfgcolor", tagsnormfgcolor);
XRDB_LOAD_COLOR("dwm.tagsnormbgcolor", tagsnormbgcolor);
XRDB_LOAD_COLOR("dwm.tagsnormbordercolor", tagsnormbordercolor);
XRDB_LOAD_COLOR("dwm.tagsnormfloatcolor", tagsnormfloatcolor);
XRDB_LOAD_COLOR("dwm.tagsselfgcolor", tagsselfgcolor);
XRDB_LOAD_COLOR("dwm.tagsselbgcolor", tagsselbgcolor);
XRDB_LOAD_COLOR("dwm.tagsselbordercolor", tagsselbordercolor);
XRDB_LOAD_COLOR("dwm.tagsselfloatcolor", tagsselfloatcolor);
XRDB_LOAD_COLOR("dwm.hidnormfgcolor", hidnormfgcolor);
XRDB_LOAD_COLOR("dwm.hidnormbgcolor", hidnormbgcolor);
XRDB_LOAD_COLOR("dwm.hidselfgcolor", hidselfgcolor);
XRDB_LOAD_COLOR("dwm.hidselbgcolor", hidselbgcolor);
XRDB_LOAD_COLOR("dwm.urgfgcolor", urgfgcolor);
XRDB_LOAD_COLOR("dwm.urgbgcolor", urgbgcolor);
XRDB_LOAD_COLOR("dwm.urgbordercolor", urgbordercolor);
XRDB_LOAD_COLOR("dwm.urgfloatcolor", urgfloatcolor);
#if RENAMED_SCRATCHPADS_PATCH
XRDB_LOAD_COLOR("dwm.scratchselfgcolor", scratchselfgcolor);
XRDB_LOAD_COLOR("dwm.scratchselbgcolor", scratchselbgcolor);
XRDB_LOAD_COLOR("dwm.scratchselbordercolor", scratchselbordercolor);
XRDB_LOAD_COLOR("dwm.scratchselfloatcolor", scratchselfloatcolor);
XRDB_LOAD_COLOR("dwm.scratchnormfgcolor", scratchnormfgcolor);
XRDB_LOAD_COLOR("dwm.scratchnormbgcolor", scratchnormbgcolor);
XRDB_LOAD_COLOR("dwm.scratchnormbordercolor", scratchnormbordercolor);
XRDB_LOAD_COLOR("dwm.scratchnormfloatcolor", scratchnormfloatcolor);
#endif // RENAMED_SCRATCHPADS_PATCH
#if BAR_FLEXWINTITLE_PATCH
XRDB_LOAD_COLOR("dwm.normTTBbgcolor", normTTBbgcolor);
XRDB_LOAD_COLOR("dwm.normLTRbgcolor", normLTRbgcolor);
XRDB_LOAD_COLOR("dwm.normMONObgcolor", normMONObgcolor);
XRDB_LOAD_COLOR("dwm.normGRIDbgcolor", normGRIDbgcolor);
XRDB_LOAD_COLOR("dwm.normGRD1bgcolor", normGRD1bgcolor);
XRDB_LOAD_COLOR("dwm.normGRD2bgcolor", normGRD2bgcolor);
XRDB_LOAD_COLOR("dwm.normGRDMbgcolor", normGRDMbgcolor);
XRDB_LOAD_COLOR("dwm.normHGRDbgcolor", normHGRDbgcolor);
XRDB_LOAD_COLOR("dwm.normDWDLbgcolor", normDWDLbgcolor);
XRDB_LOAD_COLOR("dwm.normSPRLbgcolor", normSPRLbgcolor);
XRDB_LOAD_COLOR("dwm.normfloatbgcolor", normfloatbgcolor);
XRDB_LOAD_COLOR("dwm.actTTBbgcolor", actTTBbgcolor);
XRDB_LOAD_COLOR("dwm.actLTRbgcolor", actLTRbgcolor);
XRDB_LOAD_COLOR("dwm.actMONObgcolor", actMONObgcolor);
XRDB_LOAD_COLOR("dwm.actGRIDbgcolor", actGRIDbgcolor);
XRDB_LOAD_COLOR("dwm.actGRD1bgcolor", actGRD1bgcolor);
XRDB_LOAD_COLOR("dwm.actGRD2bgcolor", actGRD2bgcolor);
XRDB_LOAD_COLOR("dwm.actGRDMbgcolor", actGRDMbgcolor);
XRDB_LOAD_COLOR("dwm.actHGRDbgcolor", actHGRDbgcolor);
XRDB_LOAD_COLOR("dwm.actDWDLbgcolor", actDWDLbgcolor);
XRDB_LOAD_COLOR("dwm.actSPRLbgcolor", actSPRLbgcolor);
XRDB_LOAD_COLOR("dwm.actfloatbgcolor", actfloatbgcolor);
XRDB_LOAD_COLOR("dwm.selTTBbgcolor", selTTBbgcolor);
XRDB_LOAD_COLOR("dwm.selLTRbgcolor", selLTRbgcolor);
XRDB_LOAD_COLOR("dwm.selMONObgcolor", selMONObgcolor);
XRDB_LOAD_COLOR("dwm.selGRIDbgcolor", selGRIDbgcolor);
XRDB_LOAD_COLOR("dwm.selGRD1bgcolor", selGRD1bgcolor);
XRDB_LOAD_COLOR("dwm.selGRD2bgcolor", selGRD2bgcolor);
XRDB_LOAD_COLOR("dwm.selGRDMbgcolor", selGRDMbgcolor);
XRDB_LOAD_COLOR("dwm.selHGRDbgcolor", selHGRDbgcolor);
XRDB_LOAD_COLOR("dwm.selDWDLbgcolor", selDWDLbgcolor);
XRDB_LOAD_COLOR("dwm.selSPRLbgcolor", selSPRLbgcolor);
XRDB_LOAD_COLOR("dwm.selfloatbgcolor", selfloatbgcolor);
#endif // BAR_FLEXWINTITLE_PATCH
for (s = 0; s < SchemeLast; s++) {
/* Skip schemes that do not specify a resource string */
if (colors[s][ColCount][0] == '\0')
continue;
sprintf(resource, pattern, colors[s][ColCount], "fg");
if (!loadxrdbcolor(xrdb, &clrnames[ColFg], resource))
strcpy(clrnames[ColFg], colors[s][ColFg]);
sprintf(resource, pattern, colors[s][ColCount], "bg");
if (!loadxrdbcolor(xrdb, &clrnames[ColBg], resource))
strcpy(clrnames[ColBg], colors[s][ColBg]);
sprintf(resource, pattern, colors[s][ColCount], "border");
if (!loadxrdbcolor(xrdb, &clrnames[ColBorder], resource))
strcpy(clrnames[ColBorder], colors[s][ColBorder]);
free(scheme[s]);
#if BAR_ALPHA_PATCH
scheme[s] = drw_scm_create(drw, clrnames, alphas[s], ColCount);
#else
scheme[s] = drw_scm_create(drw, clrnames, ColCount);
#endif // BAR_ALPHA_PATCH
}
#if BAR_STATUS2D_XRDB_TERMCOLORS_PATCH && BAR_STATUS2D_PATCH
XRDB_LOAD_COLOR("color0", termcol0);
XRDB_LOAD_COLOR("color1", termcol1);
XRDB_LOAD_COLOR("color2", termcol2);
XRDB_LOAD_COLOR("color3", termcol3);
XRDB_LOAD_COLOR("color4", termcol4);
XRDB_LOAD_COLOR("color5", termcol5);
XRDB_LOAD_COLOR("color6", termcol6);
XRDB_LOAD_COLOR("color7", termcol7);
XRDB_LOAD_COLOR("color8", termcol8);
XRDB_LOAD_COLOR("color9", termcol9);
XRDB_LOAD_COLOR("color10", termcol10);
XRDB_LOAD_COLOR("color11", termcol11);
XRDB_LOAD_COLOR("color12", termcol12);
XRDB_LOAD_COLOR("color13", termcol13);
XRDB_LOAD_COLOR("color14", termcol14);
XRDB_LOAD_COLOR("color15", termcol15);
/* status2d terminal colours */
for (s = 0; s < 16; s++) {
sprintf(resource, "color%d", s);
loadxrdbcolor(xrdb, &termcolor[s], resource);
}
#endif // BAR_STATUS2D_XRDB_TERMCOLORS_PATCH
/* other preferences */
for (p = resources; p < resources + LENGTH(resources); p++)
loadxrdbconfig(xrdb, p->name, p->type, p->dst);
XrmDestroyDatabase(xrdb);
}
}
@ -124,15 +133,6 @@ void
xrdb(const Arg *arg)
{
loadxrdb();
int i;
for (i = 0; i < LENGTH(colors); i++)
scheme[i] = drw_scm_create(drw, colors[i],
#if BAR_ALPHA_PATCH
alphas[i],
#endif // BAR_ALPHA_PATCH
ColCount
);
focus(NULL);
arrange(NULL);
}

@ -1,22 +1,19 @@
#include <X11/Xresource.h>
#define XRDB_LOAD_COLOR(R,V) if (XrmGetResource(xrdb, R, NULL, &type, &value) == True) { \
if (value.addr != NULL && strnlen(value.addr, 8) == 7 && value.addr[0] == '#') { \
int i = 1; \
for (; i <= 6; i++) { \
if (value.addr[i] < 48) break; \
if (value.addr[i] > 57 && value.addr[i] < 65) break; \
if (value.addr[i] > 70 && value.addr[i] < 97) break; \
if (value.addr[i] > 102) break; \
} \
if (i == 7) { \
strncpy(V, value.addr, 7); \
V[7] = '\0'; \
} \
} \
}
/* Xresources preferences */
enum resource_type {
STRING = 0,
INTEGER = 1,
FLOAT = 2
};
typedef struct {
char *name;
enum resource_type type;
void *dst;
} ResourcePref;
static void loadxrdb(void);
static int loadxrdbcolor(XrmDatabase xrdb, char **dest, char *resource);
static void loadxrdbconfig(XrmDatabase xrdb, char *name, enum resource_type rtype, void *dst);
static void xrdb(const Arg *arg);

Loading…
Cancel
Save