add option to ignore global

This commit is contained in:
speedie 2023-03-30 19:06:04 +02:00
parent 0607f9f607
commit e7daa3ef6a
7 changed files with 79 additions and 47 deletions

View file

@ -214,6 +214,12 @@ You may use long, descriptive arguments or the shorter arguments.
`-nxrdb, --no-xrdb ` `-nxrdb, --no-xrdb `
: Don't load .Xresources on runtime : Don't load .Xresources on runtime
`-gbc, --global-colors `
: Recognize global colors (such as *.color1) on runtime
`-ngbc, --no-global-colors `
: Don't recognize global colors (such as *.color1) on runtime
`-m, --monitor monitor ` `-m, --monitor monitor `
: Specify a monitor to run spmenu on : Specify a monitor to run spmenu on

View file

@ -53,6 +53,7 @@ spmenu.col_sgrcolor14: #00ffff
spmenu.col_sgrcolor15: #ffffff spmenu.col_sgrcolor15: #ffffff
!! Misc color !! Misc color
spmenu.globalcolors: 1
spmenu.alpha: 1 spmenu.alpha: 1
!! Width !! Width

View file

@ -16,6 +16,10 @@ readargs(int argc, char *argv[])
loadconfig = 1; loadconfig = 1;
} else if (!strcmp(argv[j], "-ncfg") || (!strcmp(argv[j], "--no-load-config"))) { } else if (!strcmp(argv[j], "-ncfg") || (!strcmp(argv[j], "--no-load-config"))) {
loadconfig = 0; loadconfig = 0;
} else if (!strcmp(argv[j], "-gbc") || (!strcmp(argv[j], "--global-colors"))) {
globalcolors = 1;
} else if (!strcmp(argv[j], "-ngbc") || (!strcmp(argv[j], "--no-global-colors"))) {
globalcolors = 0;
} }
} }
@ -150,6 +154,10 @@ readargs(int argc, char *argv[])
|| !strcmp(argv[i], "-ncfg") || !strcmp(argv[i], "-ncfg")
|| !strcmp(argv[i], "--load-config") || !strcmp(argv[i], "--load-config")
|| !strcmp(argv[i], "--no-load-config") || !strcmp(argv[i], "--no-load-config")
|| !strcmp(argv[i], "-gbc")
|| !strcmp(argv[i], "-ngbc")
|| !strcmp(argv[i], "--global-colors")
|| !strcmp(argv[i], "--no-global-colors")
)) ))
continue; continue;
else else
@ -412,6 +420,8 @@ usage(void)
"spmenu -si, --show-image Show image\n" "spmenu -si, --show-image Show image\n"
"spmenu -xrdb, --xrdb Load .Xresources on runtime\n" "spmenu -xrdb, --xrdb Load .Xresources on runtime\n"
"spmenu -nxrdb, --no-xrdb Don't load .Xresources on runtime\n" "spmenu -nxrdb, --no-xrdb Don't load .Xresources on runtime\n"
"spmenu -gbc, --global-colors Recognize global colors (such as *.color1) on runtime\n"
"spmenu -ngbc, --no-global-colors Don't recognize global colors (such as *.color1) on runtime\n"
"spmenu -m, --monitor <monitor> Specify a monitor to run spmenu on\n" "spmenu -m, --monitor <monitor> Specify a monitor to run spmenu on\n"
"spmenu -w, --embed <window id> Embed spmenu inside <window id>\n" "spmenu -w, --embed <window id> Embed spmenu inside <window id>\n"
"spmenu -H, --hist-file <hist file> Specify a path to save the history to\n" "spmenu -H, --hist-file <hist file> Specify a path to save the history to\n"

View file

@ -41,7 +41,15 @@ load_xresources(void)
if (!resm) if (!resm)
return; return;
db = XrmGetStringDatabase(resm); db = XrmGetStringDatabase(resm);
for (p = resources; p < resources + LENGTH(resources); p++) for (p = resources; p < resources + LENGTH(resources); p++)
resource_load(db, p->name, p->type, p->dst); resource_load(db, p->name, p->type, p->dst);
// recognize global colors
if (globalcolors) {
for (p = cols; p < cols + LENGTH(cols); p++)
resource_load(db, p->name, p->type, p->dst);
}
XCloseDisplay(display); XCloseDisplay(display);
} }

View file

@ -29,35 +29,6 @@ ResourcePref resources[] = {
{ "col_promptfg", STRING, &col_promptfg }, { "col_promptfg", STRING, &col_promptfg },
{ "col_promptbg", STRING, &col_promptbg }, { "col_promptbg", STRING, &col_promptbg },
// Universal colors
{ "color10", STRING, &col_caretfgcolor },
{ "color4", STRING, &col_larrowfg },
{ "color4", STRING, &col_rarrowfg },
{ "color10", STRING, &col_itemnormfg },
{ "color10", STRING, &col_itemnormprifg },
{ "color10", STRING, &col_inputfg },
{ "color0", STRING, &col_itemnormbg },
{ "color0", STRING, &col_itemnormpribg },
{ "color0", STRING, &col_menubgcolor },
{ "color0", STRING, &col_larrowbg },
{ "color0", STRING, &col_rarrowbg },
{ "color0", STRING, &col_itemselfg },
{ "color0", STRING, &col_itemselprifg },
{ "color0", STRING, &col_inputbg },
{ "color12", STRING, &col_promptbg },
{ "color0", STRING, &col_promptfg },
{ "color6", STRING, &col_itemselbg },
{ "color6", STRING, &col_itemselpribg },
{ "color6", STRING, &col_bordercolor },
{ "color0", STRING, &col_numfgcolor },
{ "color5", STRING, &col_numbgcolor },
{ "color0", STRING, &col_modefgcolor },
{ "color7", STRING, &col_modebgcolor },
{ "color2", STRING, &col_normhlbgcolor },
{ "color3", STRING, &col_selhlbgcolor },
{ "color0", STRING, &col_normhlfgcolor },
{ "color0", STRING, &col_selhlfgcolor },
// SGR sequence colors // SGR sequence colors
{ "col_sgrcolor0", STRING, &col_sgrcolor0 }, { "col_sgrcolor0", STRING, &col_sgrcolor0 },
{ "col_sgrcolor1", STRING, &col_sgrcolor1 }, { "col_sgrcolor1", STRING, &col_sgrcolor1 },
@ -76,24 +47,7 @@ ResourcePref resources[] = {
{ "col_sgrcolor14", STRING, &col_sgrcolor14 }, { "col_sgrcolor14", STRING, &col_sgrcolor14 },
{ "col_sgrcolor15", STRING, &col_sgrcolor15 }, { "col_sgrcolor15", STRING, &col_sgrcolor15 },
// SGR sequence colors (universal) { "globalcolors", INTEGER, &globalcolors },
{ "color0", STRING, &col_sgrcolor0 },
{ "color1", STRING, &col_sgrcolor1 },
{ "color2", STRING, &col_sgrcolor2 },
{ "color3", STRING, &col_sgrcolor3 },
{ "color4", STRING, &col_sgrcolor4 },
{ "color5", STRING, &col_sgrcolor5 },
{ "color6", STRING, &col_sgrcolor6 },
{ "color7", STRING, &col_sgrcolor7 },
{ "color8", STRING, &col_sgrcolor8 },
{ "color9", STRING, &col_sgrcolor9 },
{ "color10", STRING, &col_sgrcolor10 },
{ "color11", STRING, &col_sgrcolor11 },
{ "color12", STRING, &col_sgrcolor12 },
{ "color13", STRING, &col_sgrcolor13 },
{ "color14", STRING, &col_sgrcolor14 },
{ "color15", STRING, &col_sgrcolor15 },
{ "coloritems", INTEGER, &coloritems }, { "coloritems", INTEGER, &coloritems },
{ "menuposition", INTEGER, &menuposition }, { "menuposition", INTEGER, &menuposition },
{ "menupaddingv", INTEGER, &menupaddingv }, { "menupaddingv", INTEGER, &menupaddingv },
@ -149,3 +103,49 @@ ResourcePref resources[] = {
{ "pango_password", INTEGER, &pango_password }, { "pango_password", INTEGER, &pango_password },
{ "pango_highlight", INTEGER, &pango_highlight }, { "pango_highlight", INTEGER, &pango_highlight },
}; };
ResourcePref cols[] = {
{ "color10", STRING, &col_caretfgcolor },
{ "color4", STRING, &col_larrowfg },
{ "color4", STRING, &col_rarrowfg },
{ "color10", STRING, &col_itemnormfg },
{ "color10", STRING, &col_itemnormprifg },
{ "color10", STRING, &col_inputfg },
{ "color0", STRING, &col_itemnormbg },
{ "color0", STRING, &col_itemnormpribg },
{ "color0", STRING, &col_menubgcolor },
{ "color0", STRING, &col_larrowbg },
{ "color0", STRING, &col_rarrowbg },
{ "color0", STRING, &col_itemselfg },
{ "color0", STRING, &col_itemselprifg },
{ "color0", STRING, &col_inputbg },
{ "color12", STRING, &col_promptbg },
{ "color0", STRING, &col_promptfg },
{ "color6", STRING, &col_itemselbg },
{ "color6", STRING, &col_itemselpribg },
{ "color6", STRING, &col_bordercolor },
{ "color0", STRING, &col_numfgcolor },
{ "color5", STRING, &col_numbgcolor },
{ "color0", STRING, &col_modefgcolor },
{ "color7", STRING, &col_modebgcolor },
{ "color2", STRING, &col_normhlbgcolor },
{ "color3", STRING, &col_selhlbgcolor },
{ "color0", STRING, &col_normhlfgcolor },
{ "color0", STRING, &col_selhlfgcolor },
{ "color0", STRING, &col_sgrcolor0 },
{ "color1", STRING, &col_sgrcolor1 },
{ "color2", STRING, &col_sgrcolor2 },
{ "color3", STRING, &col_sgrcolor3 },
{ "color4", STRING, &col_sgrcolor4 },
{ "color5", STRING, &col_sgrcolor5 },
{ "color6", STRING, &col_sgrcolor6 },
{ "color7", STRING, &col_sgrcolor7 },
{ "color8", STRING, &col_sgrcolor8 },
{ "color9", STRING, &col_sgrcolor9 },
{ "color10", STRING, &col_sgrcolor10 },
{ "color11", STRING, &col_sgrcolor11 },
{ "color12", STRING, &col_sgrcolor12 },
{ "color13", STRING, &col_sgrcolor13 },
{ "color14", STRING, &col_sgrcolor14 },
{ "color15", STRING, &col_sgrcolor15 },
};

View file

@ -7,6 +7,7 @@
static char class[] = "spmenu"; /* Class for spmenu */ static char class[] = "spmenu"; /* Class for spmenu */
static int fast = 0; /* Grab keyboard first */ static int fast = 0; /* Grab keyboard first */
static int xresources = 1; /* Enable .Xresources support */ static int xresources = 1; /* Enable .Xresources support */
static int globalcolors = 1; /* Recognize global colors (such as colors generated by Pywal) */
static int loadconfig = 1; /* Load configuration (~/.spmenurc or ~/.config/spmenu/spmenurc) on runtime */ static int loadconfig = 1; /* Load configuration (~/.spmenurc or ~/.config/spmenu/spmenurc) on runtime */
static int mon = -1; /* Monitor to run spmenu on */ static int mon = -1; /* Monitor to run spmenu on */

View file

@ -231,6 +231,12 @@ Load .Xresources on runtime
\f[V]-nxrdb, --no-xrdb\f[R] \f[V]-nxrdb, --no-xrdb\f[R]
Don\[cq]t load .Xresources on runtime Don\[cq]t load .Xresources on runtime
.TP .TP
\f[V]-gbc, --global-colors\f[R]
Recognize global colors (such as *.color1) on runtime
.TP
\f[V]-ngbc, --no-global-colors\f[R]
Don\[cq]t recognize global colors (such as *.color1) on runtime
.TP
\f[V]-m, --monitor monitor\f[R] \f[V]-m, --monitor monitor\f[R]
Specify a monitor to run spmenu on Specify a monitor to run spmenu on
.TP .TP