diff --git a/colors.h b/colors.h index 8bebaab..47f1555 100644 --- a/colors.h +++ b/colors.h @@ -8,6 +8,7 @@ static const unsigned int alphas[][3] = { [SchemeItemNorm] = { fgalpha, bgalpha, borderalpha }, [SchemeItemSel] = { fgalpha, bgalpha, borderalpha }, [SchemeMenu] = { fgalpha, bgalpha, borderalpha }, + [SchemeInput] = { fgalpha, bgalpha, borderalpha }, [SchemePrompt] = { fgalpha, bgalpha, borderalpha }, [SchemeNormHighlight] = { fgalpha, bgalpha, borderalpha }, [SchemeSelHighlight] = { fgalpha, bgalpha, borderalpha }, @@ -23,8 +24,9 @@ static const char *colors[SchemeLast][2] = { [SchemeRArrow] = { col_rarrowfg, col_rarrowbg }, [SchemeItemNorm] = { col_itemnormfg, col_itemnormbg }, [SchemeItemSel] = { col_itemselfg, col_itemselbg }, + [SchemeInput] = { col_inputfg, col_inputbg, }, [SchemeMenu] = { NULL, col_menubgcolor }, - [SchemePrompt] = { col_promptfg, col_promptbg }, /* this one is left */ + [SchemePrompt] = { col_promptfg, col_promptbg }, [SchemeNormHighlight] = { col_normhlfgcolor, col_normhlbgcolor }, [SchemeSelHighlight] = { col_selhlfgcolor, col_selhlbgcolor }, [SchemeCaret] = { col_caretfgcolor, NULL }, diff --git a/docs/example.Xresources b/docs/example.Xresources index 9a791c8..2819b5e 100644 --- a/docs/example.Xresources +++ b/docs/example.Xresources @@ -10,6 +10,8 @@ spmenu.col_larrowfg: #bbbbbb spmenu.col_rarrowfg: #bbbbbb spmenu.col_larrowbg: #222222 spmenu.col_rarrowbg: #222222 +spmenu.col_inputfg: #eeeeee +spmenu.col_inputbg: #222222 spmenu.col_numfgcolor: #ffffff spmenu.col_numbgcolor: #000000 spmenu.col_normhlfgcolor: #ffffff diff --git a/options.h b/options.h index 9ec08fb..b335219 100644 --- a/options.h +++ b/options.h @@ -60,6 +60,10 @@ static char col_itemnormbg[] = "#222222"; /* Normal background item co static char col_itemselfg[] = "#eeeeee"; /* Selected foreground item color */ static char col_itemselbg[] = "#005577"; /* Selected background item color */ +/* Input colors */ +static char col_inputbg[] = "#222222"; /* Input field background color */ +static char col_inputfg[] = "#eeeeee"; /* Input field foreground color */ + /* Menu colors */ static char col_menubgcolor[] = "#222222"; /* Menu background color */ diff --git a/spmenu.c b/spmenu.c index 05b79c5..ecd2dbd 100644 --- a/spmenu.c +++ b/spmenu.c @@ -63,6 +63,7 @@ enum { SchemeLArrow, SchemeItemNorm, SchemeItemSel, SchemeMenu, + SchemeInput, SchemePrompt, SchemeNormHighlight, SchemeSelHighlight, @@ -443,7 +444,7 @@ drawmenu(void) } /* draw input field */ w = (lines > 0 || !matches) ? mw - x : inputw; - drw_setscheme(drw, scheme[SchemeMenu]); + drw_setscheme(drw, scheme[SchemeInput]); if (passwd) { censort = ecalloc(1, sizeof(text)); memset(censort, '.', strlen(text)); @@ -1758,6 +1759,8 @@ usage(void) "spmenu -sib Set the selected item background color\n" "spmenu -pfg Set the prompt foreground color\n" "spmenu -pbg Set the prompt background color\n" + "spmenu -ifg Set input foreground color\n" + "spmenu -ibg Set input background color\n" "spmenu -mbg Set the menu background color\n" "spmenu -nhf Set the normal highlight foreground color\n" "spmenu -nhb Set the normal highlight background color\n" @@ -1921,18 +1924,22 @@ main(int argc, char *argv[]) } else if (!strcmp(argv[i], "-nb")) { /* normal background color */ colors[SchemeItemNorm][ColBg] = argv[++i]; colors[SchemeMenu][ColBg] = argv[++i]; + colors[SchemeInput][ColBg] = argv[++i]; colors[SchemePrompt][ColBg] = argv[++i]; } else if (!strcmp(argv[i], "-nf")) { /* normal foreground color */ colors[SchemeItemNorm][ColFg] = argv[++i]; colors[SchemeMenu][ColFg] = argv[++i]; + colors[SchemeInput][ColFg] = argv[++i]; colors[SchemePrompt][ColFg] = argv[++i]; } else if (!strcmp(argv[i], "-sb")) { /* selected background color */ colors[SchemeItemSel][ColBg] = argv[++i]; colors[SchemeMenu][ColBg] = argv[++i]; + colors[SchemeInput][ColBg] = argv[++i]; colors[SchemePrompt][ColBg] = argv[++i]; } else if (!strcmp(argv[i], "-sf")) { /* selected foreground color */ colors[SchemeItemSel][ColFg] = argv[++i]; colors[SchemeMenu][ColFg] = argv[++i]; + colors[SchemeInput][ColBg] = argv[++i]; colors[SchemePrompt][ColFg] = argv[++i]; /* spmenu colors */ @@ -1950,6 +1957,10 @@ main(int argc, char *argv[]) colors[SchemePrompt][ColFg] = argv[++i]; } else if (!strcmp(argv[i], "-pbg")) { /* prompt bg color */ colors[SchemePrompt][ColBg] = argv[++i]; + } else if (!strcmp(argv[i], "-ifg")) { /* input fg color */ + colors[SchemeInput][ColFg] = argv[++i]; + } else if (!strcmp(argv[i], "-pfg")) { /* input bg color */ + colors[SchemeInput][ColBg] = argv[++i]; } else if (!strcmp(argv[i], "-shf")) { /* selected highlight foreground color */ colors[SchemeSelHighlight][ColBg] = argv[++i]; } else if (!strcmp(argv[i], "-shf")) { /* selected highlight foreground color */ diff --git a/xresources.h b/xresources.h index 1c81451..30ca9a4 100644 --- a/xresources.h +++ b/xresources.h @@ -13,6 +13,8 @@ ResourcePref resources[] = { { "col_itemnormbg", STRING, &col_itemnormbg }, { "col_itemselfg", STRING, &col_itemselfg }, { "col_itemselbg", STRING, &col_itemselbg }, + { "col_inputbg", STRING, &col_inputbg }, + { "col_inputfg", STRING, &col_inputfg }, { "col_menubgcolor", STRING, &col_menubgcolor }, { "col_numfgcolor", STRING, &col_numfgcolor }, { "col_numbgcolor", STRING, &col_numbgcolor }, @@ -29,11 +31,13 @@ ResourcePref resources[] = { { "color10", STRING, &col_larrowfg }, { "color10", STRING, &col_rarrowfg }, { "color10", STRING, &col_itemnormfg }, + { "color10", STRING, &col_inputfg }, { "color0", STRING, &col_itemnormbg }, { "color0", STRING, &col_menubgcolor }, { "color0", STRING, &col_larrowbg }, { "color0", STRING, &col_rarrowbg }, { "color0", STRING, &col_itemselfg }, + { "color0", STRING, &col_inputbg }, { "color6", STRING, &col_promptbg }, { "color0", STRING, &col_promptfg }, { "color6", STRING, &col_itemselbg },