forked from speedie/spmenu
Add --min-lines option
This commit is contained in:
parent
bfc6c12a86
commit
6b20fe939e
|
@ -43,9 +43,15 @@ in the config files.
|
||||||
`-cw, --center-width width`
|
`-cw, --center-width width`
|
||||||
: Set width to width when centered
|
: Set width to width when centered
|
||||||
|
|
||||||
|
`-l, --lines lines`
|
||||||
|
: Set the number of lines to lines
|
||||||
|
|
||||||
`-g, --columns grid`
|
`-g, --columns grid`
|
||||||
: Set the number of grids to grid
|
: Set the number of grids to grid
|
||||||
|
|
||||||
|
`-ml, --min-lines`
|
||||||
|
: Set minimum number of lines allowed to lines
|
||||||
|
|
||||||
`-gc, --generate-cache`
|
`-gc, --generate-cache`
|
||||||
: Generate image cache
|
: Generate image cache
|
||||||
|
|
||||||
|
|
|
@ -247,6 +247,7 @@ spmenu = {
|
||||||
columns = 10; // Number of columns (number)
|
columns = 10; // Number of columns (number)
|
||||||
overridelines = 1; // Allow overriding lines using keybinds (0/1)
|
overridelines = 1; // Allow overriding lines using keybinds (0/1)
|
||||||
overridecolumns = 1; // Allow overriding columns using keybinds (0/1)
|
overridecolumns = 1; // Allow overriding columns using keybinds (0/1)
|
||||||
|
minlines = 0; // Minimum number of lines (number)
|
||||||
indentitems = 0; // Indent items to prompt width (0/1)
|
indentitems = 0; // Indent items to prompt width (0/1)
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
@ -353,7 +354,7 @@ spmenu = {
|
||||||
{ click = "None"; button = "Scroll Down"; function = "movenext"; argument = "0"; }, // Scroll Down: Move to the next page
|
{ click = "None"; button = "Scroll Down"; function = "movenext"; argument = "0"; }, // Scroll Down: Move to the next page
|
||||||
|
|
||||||
{
|
{
|
||||||
scrolldistance = 512; // Distance to scroll for a scroll action to count. Wayland only (num)
|
scrolldistance = 512; // Distance to scroll for a scroll action to count. Wayland only (number)
|
||||||
ignoreglobalmouse = 1; // Ignore hardcoded mouse binds (0/1)
|
ignoreglobalmouse = 1; // Ignore hardcoded mouse binds (0/1)
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
|
@ -567,7 +567,9 @@ void setlines(Arg *arg) {
|
||||||
insert(NULL, 0 - sp.cursor);
|
insert(NULL, 0 - sp.cursor);
|
||||||
selecteditem = currentitem = matches;
|
selecteditem = currentitem = matches;
|
||||||
|
|
||||||
lines += arg->i;
|
if (lines + arg->i >= minlines) {
|
||||||
|
lines += arg->i;
|
||||||
|
}
|
||||||
|
|
||||||
if (lines < 0) {
|
if (lines < 0) {
|
||||||
lines = 0;
|
lines = 0;
|
||||||
|
|
|
@ -321,8 +321,10 @@ void readargs(int argc, char *argv[]) {
|
||||||
} else if (!strcmp(argv[i], "-l") || (!strcmp(argv[i], "--lines"))) { // number of lines in grid
|
} else if (!strcmp(argv[i], "-l") || (!strcmp(argv[i], "--lines"))) { // number of lines in grid
|
||||||
lines = atoi(argv[++i]);
|
lines = atoi(argv[++i]);
|
||||||
} else if (!strcmp(argv[i], "-mh") || (!strcmp(argv[i], "--lineheight")) || (!strcmp(argv[i], "--line-height"))) { // line height
|
} else if (!strcmp(argv[i], "-mh") || (!strcmp(argv[i], "--lineheight")) || (!strcmp(argv[i], "--line-height"))) { // line height
|
||||||
lineheight += atoi(argv[++i]);
|
lineheight = atoi(argv[++i]);
|
||||||
if (columns == 0) columns = 1;
|
if (columns == 0) columns = 1;
|
||||||
|
} else if (!strcmp(argv[i], "-ml") || (!strcmp(argv[i], "--min-lines"))) {
|
||||||
|
minlines = atoi(argv[++i]);
|
||||||
} else if (!strcmp(argv[i], "-cw") || (!strcmp(argv[i], "--center-width")) || (!strcmp(argv[i], "-mw") || (!strcmp(argv[i], "--min-width")))) { // center width
|
} else if (!strcmp(argv[i], "-cw") || (!strcmp(argv[i], "--center-width")) || (!strcmp(argv[i], "-mw") || (!strcmp(argv[i], "--min-width")))) { // center width
|
||||||
centerwidth = atoi(argv[++i]);
|
centerwidth = atoi(argv[++i]);
|
||||||
} else if (!strcmp(argv[i], "-txp") || (!strcmp(argv[i], "--text-padding"))) { // text padding
|
} else if (!strcmp(argv[i], "-txp") || (!strcmp(argv[i], "--text-padding"))) { // text padding
|
||||||
|
@ -612,10 +614,11 @@ void usage(int status) {
|
||||||
fputs(VERSION, status ? stderr : stdout);
|
fputs(VERSION, status ? stderr : stdout);
|
||||||
fputs(": fancy dynamic menu\n\n"
|
fputs(": fancy dynamic menu\n\n"
|
||||||
"- Arguments -\n"
|
"- Arguments -\n"
|
||||||
"spmenu -l, --lines <line> Set line count to stdin\n"
|
|
||||||
"spmenu -mh, --line-height <height> Set spmenu line height to <height>\n"
|
"spmenu -mh, --line-height <height> Set spmenu line height to <height>\n"
|
||||||
"spmenu -cw, --center-width <width> Set width to <width> when centered\n"
|
"spmenu -cw, --center-width <width> Set width to <width> when centered\n"
|
||||||
|
"spmenu -l, --lines <line> Set line count to stdin\n"
|
||||||
"spmenu -g, --columns <grid> Set the number of grids to <grid>\n"
|
"spmenu -g, --columns <grid> Set the number of grids to <grid>\n"
|
||||||
|
"spmenu -ml, --min-lines <lines> Minimum number of lines allowed\n"
|
||||||
"spmenu -gc, --generate-cache Generate image cache\n"
|
"spmenu -gc, --generate-cache Generate image cache\n"
|
||||||
"spmenu -ngc, --no-generate-cache Don't generate image cache\n"
|
"spmenu -ngc, --no-generate-cache Don't generate image cache\n"
|
||||||
"spmenu -mc, --max-cache <size> Set max image cache size to <size>\n"
|
"spmenu -mc, --max-cache <size> Set max image cache size to <size>\n"
|
||||||
|
|
|
@ -788,6 +788,7 @@ void conf_init(void) {
|
||||||
config_setting_lookup_int(conf, "columns", &columns); // spmenu.line.columns
|
config_setting_lookup_int(conf, "columns", &columns); // spmenu.line.columns
|
||||||
config_setting_lookup_int(conf, "overridelines", &overridelines); // spmenu.line.overridelines
|
config_setting_lookup_int(conf, "overridelines", &overridelines); // spmenu.line.overridelines
|
||||||
config_setting_lookup_int(conf, "overridecolumns", &overridecolumns); // spmenu.line.overridecolumns
|
config_setting_lookup_int(conf, "overridecolumns", &overridecolumns); // spmenu.line.overridecolumns
|
||||||
|
config_setting_lookup_int(conf, "minlines", &minlines); // spmenu.line.minlines
|
||||||
config_setting_lookup_int(conf, "indentitems", &indentitems); // spmenu.line.indentitems
|
config_setting_lookup_int(conf, "indentitems", &indentitems); // spmenu.line.indentitems
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -115,6 +115,7 @@ static int lines = 0; /* Default number of lines */
|
||||||
static int columns = 10; /* Default number of columns */
|
static int columns = 10; /* Default number of columns */
|
||||||
static int overridelines = 1; /* Allow overriding lines using keybinds */
|
static int overridelines = 1; /* Allow overriding lines using keybinds */
|
||||||
static int overridecolumns = 1; /* Allow overriding columns using keybinds */
|
static int overridecolumns = 1; /* Allow overriding columns using keybinds */
|
||||||
|
static int minlines = 0; /* Minimum number of lines allowed */
|
||||||
|
|
||||||
/* History options */
|
/* History options */
|
||||||
static char *histfile = NULL; /* History file, NULL means no history file */
|
static char *histfile = NULL; /* History file, NULL means no history file */
|
||||||
|
|
|
@ -63,7 +63,7 @@ void readstdin(void) {
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
lines = MIN(lines, i);
|
lines = MAX(MIN(lines, i), minlines);
|
||||||
}
|
}
|
||||||
|
|
||||||
void readfile(void) {
|
void readfile(void) {
|
||||||
|
@ -130,7 +130,7 @@ void readfile(void) {
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
lines = columns == 1 ? i : MIN(i, lines); // i = number of items
|
lines = MAX(columns == 1 ? i : MIN(i, lines), minlines);
|
||||||
|
|
||||||
#if IMAGE
|
#if IMAGE
|
||||||
if (!o) img.longestedge = img.imagegaps = 0;
|
if (!o) img.longestedge = img.imagegaps = 0;
|
||||||
|
|
|
@ -633,7 +633,7 @@ void resizeclient_wl(struct state *state) {
|
||||||
for (item = items; item && item->text; item++)
|
for (item = items; item && item->text; item++)
|
||||||
ic++;
|
ic++;
|
||||||
|
|
||||||
lines = MIN(ic, MAX(lines, 0));
|
lines = MAX(MIN(ic, MAX(lines, 0)), minlines);
|
||||||
#if IMAGE
|
#if IMAGE
|
||||||
img.setlines = lines;
|
img.setlines = lines;
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -78,7 +78,7 @@ void resizeclient_x11(void) {
|
||||||
for (item = items; item && item->text; item++)
|
for (item = items; item && item->text; item++)
|
||||||
ic++;
|
ic++;
|
||||||
|
|
||||||
lines = MIN(ic, MAX(lines, 0));
|
lines = MAX(MIN(ic, MAX(lines, 0)), minlines);
|
||||||
#if IMAGE
|
#if IMAGE
|
||||||
img.setlines = lines;
|
img.setlines = lines;
|
||||||
|
|
||||||
|
|
8
spmenu.1
8
spmenu.1
|
@ -1,5 +1,5 @@
|
||||||
'\" t
|
'\" t
|
||||||
.\" Automatically generated by Pandoc 3.1.3
|
.\" Automatically generated by Pandoc 3.1.2
|
||||||
.\"
|
.\"
|
||||||
.\" Define V font for inline verbatim, using C font in formats
|
.\" Define V font for inline verbatim, using C font in formats
|
||||||
.\" that render this, and otherwise B font.
|
.\" that render this, and otherwise B font.
|
||||||
|
@ -70,9 +70,15 @@ Set spmenu line height to height
|
||||||
\f[V]-cw, --center-width width\f[R]
|
\f[V]-cw, --center-width width\f[R]
|
||||||
Set width to width when centered
|
Set width to width when centered
|
||||||
.TP
|
.TP
|
||||||
|
\f[V]-l, --lines lines\f[R]
|
||||||
|
Set the number of lines to lines
|
||||||
|
.TP
|
||||||
\f[V]-g, --columns grid\f[R]
|
\f[V]-g, --columns grid\f[R]
|
||||||
Set the number of grids to grid
|
Set the number of grids to grid
|
||||||
.TP
|
.TP
|
||||||
|
\f[V]-ml, --min-lines\f[R]
|
||||||
|
Set minimum number of lines allowed to lines
|
||||||
|
.TP
|
||||||
\f[V]-gc, --generate-cache\f[R]
|
\f[V]-gc, --generate-cache\f[R]
|
||||||
Generate image cache
|
Generate image cache
|
||||||
.TP
|
.TP
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
.\" Automatically generated by Pandoc 3.1.3
|
.\" Automatically generated by Pandoc 3.1.2
|
||||||
.\"
|
.\"
|
||||||
.\" Define V font for inline verbatim, using C font in formats
|
.\" Define V font for inline verbatim, using C font in formats
|
||||||
.\" that render this, and otherwise B font.
|
.\" that render this, and otherwise B font.
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
.\" Automatically generated by Pandoc 3.1.3
|
.\" Automatically generated by Pandoc 3.1.2
|
||||||
.\"
|
.\"
|
||||||
.\" Define V font for inline verbatim, using C font in formats
|
.\" Define V font for inline verbatim, using C font in formats
|
||||||
.\" that render this, and otherwise B font.
|
.\" that render this, and otherwise B font.
|
||||||
|
|
Loading…
Reference in a new issue