changeset: 389:d0f5c7885a5a
tag: tip
user: Connor Lane Smith <cls_AT_lubutu.com>
date: Sun May 08 15:15:24 2011 +0100
files: dmenu.1 dmenu.c
description:
fast grab patch (thanks Rob)
diff -r 1bdb44c8ac89 -r d0f5c7885a5a dmenu.1
--- a/dmenu.1 Fri May 06 21:13:02 2011 +0100
+++ b/dmenu.1 Sun May 08 15:15:24 2011 +0100
@@ -4,6 +4,7 @@
.SH SYNOPSIS
.B dmenu
.RB [ \-b ]
+.RB [ \-f ]
.RB [ \-i ]
.RB [ \-l
.IR lines ]
@@ -32,9 +33,9 @@
.BR dwm (1).
It manages huge numbers of user-defined menu items efficiently.
.P
-dmenu reads a list of newline-separated items from standard input and creates a
-menu. When the user selects an item or enters any text and presses Return,
-their choice is printed to standard output and dmenu terminates.
+dmenu reads a list of newline-separated items from stdin and creates a menu.
+When the user selects an item or enters any text and presses Return, their
+choice is printed to stdout and dmenu terminates.
.P
.B dmenu_run
is a dmenu script used by dwm which lists programs in the user's PATH and
@@ -47,6 +48,10 @@
.B \-b
dmenu appears at the bottom of the screen.
.TP
+.B \-f
+dmenu grabs the keyboard before reading stdin. This is faster, but may lock up
+X if stdin is from a terminal.
+.TP
.B \-i
dmenu matches menu items case insensitively.
.TP
@@ -66,7 +71,7 @@
defines the normal background color.
.IR #RGB ,
.IR #RRGGBB ,
-and color names are supported.
+and X color names are supported.
.TP
.BI \-nf " color"
defines the normal foreground color.
@@ -78,7 +83,7 @@
defines the selected foreground color.
.TP
.B \-v
-prints version information to standard output, then exits.
+prints version information to stdout, then exits.
.SH USAGE
dmenu is completely controlled by the keyboard. Besides standard Unix line
editing and item selection (Up/Down/Left/Right, PageUp/PageDown, Home/End), the
@@ -88,12 +93,11 @@
Copy the selected item to the input field.
.TP
.B Return (Control\-j)
-Confirm selection. Prints the selected item to standard output and exits,
-returning success.
+Confirm selection. Prints the selected item to stdout and exits, returning
+success.
.TP
.B Shift\-Return (Control\-Shift\-j)
-Confirm input. Prints the input text to standard output and exits, returning
-success.
+Confirm input. Prints the input text to stdout and exits, returning success.
.TP
.B Escape (Control\-c)
Exit without selecting an item, returning failure.
diff -r 1bdb44c8ac89 -r d0f5c7885a5a dmenu.c
--- a/dmenu.c Fri May 06 21:13:02 2011 +0100
+++ b/dmenu.c Sun May 08 15:15:24 2011 +0100
@@ -64,6 +64,7 @@
int
main(int argc, char *argv[]) {
+ Bool fast = False;
int i;
progname = "dmenu";
@@ -77,6 +78,8 @@
topbar = False;
else if(!strcmp(argv[i], "-i"))
fstrncmp = strncasecmp;
+ else if(!strcmp(argv[i], "-f"))
+ fast = True;
else if(i == argc-1)
goto usage;
/* double flags */
@@ -101,13 +104,21 @@
dc = initdc();
initfont(dc, font);
- readstdin();
- setup();
+
+ if(fast) {
+ setup();
+ readstdin();
+ }
+ else {
+ readstdin();
+ setup();
+ }
+ match();
run();
return EXIT_FAILURE;
usage:
- fputs("usage: dmenu [-b] [-i] [-l lines] [-m monitor] [-p prompt] [-fn font]\n"
+ fputs("usage: dmenu [-b] [-f] [-i] [-l lines] [-m monitor] [-p prompt] [-fn font]\n"
" [-nb color] [-nf color] [-sb color] [-sf color] [-v]\n", stderr);
return EXIT_FAILURE;
}
@@ -530,5 +541,4 @@
inputw = MIN(inputw, mw/3);
promptw = prompt ? textw(dc, prompt) : 0;
XMapRaised(dc->dpy, win);
- match();
}
Received on Sun May 08 2011 - 16:15:33 CEST
This archive was generated by hypermail 2.2.0 : Sun May 08 2011 - 16:24:06 CEST