Only in dmenu-3.4.gap: dmenu diff -ur dmenu-3.4/dmenu.1 dmenu-3.4.gap/dmenu.1 --- dmenu-3.4/dmenu.1 2007-10-25 20:26:14.000000000 +0200 +++ dmenu-3.4.gap/dmenu.1 2008-01-11 16:25:31.000000000 +0100 @@ -1,98 +1,109 @@ -.TH DMENU 1 dmenu\-VERSION -.SH NAME -dmenu \- dynamic menu -.SH SYNOPSIS -.B dmenu -.RB [ \-b ] -.RB [ \-i ] -.RB [ \-fn " "] -.RB [ \-nb " "] -.RB [ \-nf " "] -.RB [ \-p " "] -.RB [ \-sb " "] -.RB [ \-sf " "] -.RB [ \-v ] -.SH DESCRIPTION -.SS Overview +.Dd 2008 +.Os Suckless +.Dt DMENU \&1 "Suckless Xlib Tools Manual" +.Sh NAME +.Nm dmenu +.Nd dynamic menu +.Sh SYNOPSIS +.Nm +.Op Fl b +.Op Fl i +.Op Fl fn Ar +.Op Fl g Ar +.Op Fl nb Ar +.Op Fl nf Ar +.Op Fl p Ar +.Op Fl sb Ar +.Op Fl sf Ar +.Op Fl v +.Sh DESCRIPTION +.Ss Overview dmenu is a generic menu for X, originally designed for -.BR dwm (1). +.Xr dwm 1 . +.Pp It manages huge amounts (up to 10.000 and more) of user defined menu items efficiently. -.SS Options -.TP -.B \-b +.Ss Options +.Bl -tag -width "1234567890123" -compact +.Pp +.It Fl b makes dmenu appear at the screen bottom (by default it appears at the screen top). -.TP -.B \-i +.Pp +.It Fl i makes dmenu match menu entries with ignoring intermediate characters. -.TP -.B \-fn +.Pp +.It Fl fn Ar defines the font. -.TP -.B \-nb +.Pp +.It Fl g Ar +places the menu pixels from the screen edge. +.Pp +.It Fl nb Ar defines the normal background color (#RGB, #RRGGBB, and color names are supported). -.TP -.B \-nf +.Pp +.It Fl nf Ar defines the normal foreground color (#RGB, #RRGGBB, and color names are supported). -.TP -.B \-p +.Pp +.It Fl p Ar defines a prompt to be displayed before the input area. -.TP -.B \-sb +.Pp +.It Fl sb Ar defines the selected background color (#RGB, #RRGGBB, and color names are supported). -.TP -.B \-sf +.Pp +.It Fl sf Ar defines the selected foreground color (#RGB, #RRGGBB, and color names are supported). -.TP -.B \-v +.Pp +.It Fl v prints version information to standard output, then exits. -.SH USAGE +.Sh USAGE 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, his/her choice is printed to standard output and dmenu terminates. -.P +.Pp dmenu is completely controlled by the keyboard. The following keys are recognized: -.TP -.B Any printable character +.Bl -tag -width "1234567890123" -compact +.Pp +.It Sy Any printable character Appends the character to the text in the input field. This works as a filter: only items containing this text will be displayed. -.TP -.B Left/Right (Mod1\-h/Mod1\-l) +.Pp +.It Sy Left/Right (Mod1\-h/Mod1\-l) Select the previous/next item. -.TP -.B PageUp/PageDown (Mod1\-k/Mod1\-j) +.Pp +.It Sy PageUp/PageDown (Mod1\-k/Mod1\-j) Select the first item of the previous/next 'page' of items. -.TP -.B Home/End (Mod1\-g/Mod1\-G) +.Pp +.It Sy Home/End (Mod1\-g/Mod1\-G) Select the first/last item. -.TP -.B Tab (Control\-i) +.Pp +.It Sy Tab (Control\-i) Copy the selected item to the input field. -.TP -.B Return (Control\-j) +.Pp +.It Sy Return (Control\-j) Confirm selection and quit (print the selected item to standard output). Returns -.B 0 +.Sy 0 on termination. -.TP -.B Shift\-Return (Control\-Shift\-j) -Confirm selection and quit (print the text in the input field to standard output). -Returns -.B 0 +.Pp +.It Sy Shift\-Return (Control\-Shift\-j) +Confirm selection and quit (print the text in the input field to standard +output). Returns +.Sy 0 on termination. -.TP -.B Escape (Control\-bracketleft) +.Pp +.It Sy Escape (Control\-bracketleft) Quit without selecting an item. Returns -.B 1 +.Sy 1 on termination. -.TP -.B Backspace (Control\-h) +.Pp +.It Sy Backspace (Control\-h) Remove a character from the input field. -.TP -.B Control\-u +.Pp +.It Sy Control\-u Remove all characters from the input field. -.TP -.B Control\-w +.Pp +.It Sy Control\-w Remove all characters of current word from the input field. -.SH SEE ALSO -.BR dwm (1), -.BR wmii (1) . +.Sh SEE ALSO +.Xr dwm 1 , +.Xr wmii 1 , +http://www.suckless.org/wiki/tools/xlib Only in dmenu-3.4.gap: dmenu.1~ diff -ur dmenu-3.4/dmenu.c dmenu-3.4.gap/dmenu.c --- dmenu-3.4/dmenu.c 2007-10-25 20:26:14.000000000 +0200 +++ dmenu-3.4.gap/dmenu.c 2008-01-11 16:34:23.000000000 +0100 @@ -56,7 +56,7 @@ void match(char *pattern); void readstdin(void); void run(void); -void setup(Bool bottom); +void setup(Bool bottom, long gap); int strcaseido(const char *text, const char *pattern); char *cistrstr(const char *s, const char *sub); unsigned int textnw(const char *text, unsigned int len); @@ -569,7 +569,7 @@ } void -setup(Bool bottom) { +setup(Bool bottom, long gap) { unsigned int i, j; XModifierKeymap *modmap; XSetWindowAttributes wa; @@ -598,7 +598,7 @@ mw = DisplayWidth(dpy, screen); mh = dc.font.height + 2; win = XCreateWindow(dpy, root, 0, - bottom ? DisplayHeight(dpy, screen) - mh : 0, mw, mh, 0, + bottom ? DisplayHeight(dpy, screen) - mh - gap : gap, mw, mh, 0, DefaultDepth(dpy, screen), CopyFromParent, DefaultVisual(dpy, screen), CWOverrideRedirect | CWBackPixmap | CWEventMask, &wa); @@ -672,6 +672,7 @@ int main(int argc, char *argv[]) { Bool bottom = False; + long gap = 0; unsigned int i; /* command line args */ @@ -684,6 +685,9 @@ else if(!strcmp(argv[i], "-fn")) { if(++i < argc) font = argv[i]; } + else if(!strcmp(argv[i], "-g")) { + if(++i < argc) gap = atol(argv[i]); + } else if(!strcmp(argv[i], "-nb")) { if(++i < argc) normbg = argv[i]; } @@ -702,8 +706,8 @@ else if(!strcmp(argv[i], "-v")) eprint("dmenu-"VERSION", © 2006-2007 Anselm R. Garbe, Sander van Dijk, Michał Janeczek\n"); else - eprint("usage: dmenu [-b] [-i] [-fn ] [-nb ] [-nf ]\n" - " [-p ] [-sb ] [-sf ] [-v]\n"); + eprint("usage: dmenu [-b] [-i] [-fn ] [-g ] [-nb ]\n" + " [-nf ] [-p ] [-sb ] [-sf ] [-v]\n"); setlocale(LC_CTYPE, ""); dpy = XOpenDisplay(0); if(!dpy) @@ -720,7 +724,7 @@ readstdin(); } - setup(bottom); + setup(bottom, gap); drawmenu(); XSync(dpy, False); run(); Only in dmenu-3.4.gap: dmenu.c~ Only in dmenu-3.4.gap: dmenu.o