[CONTACT]

[ABOUT]

[POLICY]

git clone dmenu dmenu Log gph

Found at: gopher.r-36.net:70/scm/dmenu/commit/e0e6b071c63f960c398b43b2fbf0dec66a9b3ab6.gph

tfast grab patch (thanks Rob) - dmenu - Dmenu fork with xft fonts.

git clone git://r-36.net/dmenu

Log

Files

Refs

README

LICENSE

---

commit e0e6b071c63f960c398b43b2fbf0dec66a9b3ab6

parent cd3b4915c3358b93f8dbff531bff82c0cd833c0b

Author: Connor Lane Smith

Date:   Sun,  8 May 2011 15:15:24 +0100
fast grab patch (thanks Rob)
Diffstat:
  dmenu.1                             |      22 +++++++++++++---------
  dmenu.c                             |      18 ++++++++++++++----
2 files changed, 27 insertions(+), 13 deletions(-)
---

diff --git a/dmenu.1 b/dmenu.1

t@@ -4,6 +4,7 @@ dmenu \- dynamic menu
 .SH SYNOPSIS
 .B dmenu
 .RB [ \-b ]
+.RB [ \-f ]
 .RB [ \-i ]
 .RB [ \-l
 .IR lines ]
t@@ -32,9 +33,9 @@ is a dynamic menu for X, originally designed for
 .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
t@@ -47,6 +48,10 @@ is a program used by dmenu_run to find and cache a list of executables.
 .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
t@@ -66,7 +71,7 @@ defines the font or font set used.
 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.
t@@ -78,7 +83,7 @@ defines the selected background color.
 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
t@@ -88,12 +93,11 @@ following keys are recognized:
 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 --git a/dmenu.c b/dmenu.c

t@@ -64,6 +64,7 @@ static int (*fstrncmp)(const char *, const char *, size_t) = strncmp;
 int
 main(int argc, char *argv[]) {
+        Bool fast = False;
         int i;
         progname = "dmenu";
t@@ -77,6 +78,8 @@ main(int argc, char *argv[]) {
                         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 */
t@@ -101,13 +104,21 @@ main(int argc, char *argv[]) {
         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;
 }
t@@ -530,5 +541,4 @@ setup(void) {
         inputw = MIN(inputw, mw/3);
         promptw = prompt ? textw(dc, prompt) : 0;
         XMapRaised(dc->dpy, win);
-        match();
 }
.


AD: