all repos — dmenu @ 5c0d28e4ff9909059ac1247aa71f9b1e906fea3a

my build of dmenu

removed config.h stuff, made dwm configurable due to command line options
arg@mmvi unknown
Tue, 26 Sep 2006 13:20:47 +0200
commit

5c0d28e4ff9909059ac1247aa71f9b1e906fea3a

parent

e0fe9f2fcac32f04f7fda5236f48d1a705cbdcce

7 files changed, 67 insertions(+), 48 deletions(-)

jump to
M MakefileMakefile

@@ -19,11 +19,7 @@ .c.o:

@echo CC $< @${CC} -c ${CFLAGS} $< -${OBJ}: dmenu.h config.h config.mk - -config.h: - @echo creating $@ from config.default.h - @cp config.default.h $@ +${OBJ}: dmenu.h config.mk dmenu: ${OBJ} @echo LD $@
D config.arg.h

@@ -1,11 +0,0 @@

-/* - * (C)opyright MMVI Anselm R. Garbe <garbeam at gmail dot com> - * See LICENSE file for license details. - */ - -#define FONT "-*-terminus-medium-*-*-*-12-*-*-*-*-*-iso10646-*" -#define SELBGCOLOR "#333366" -#define SELFGCOLOR "#eeeeee" -#define NORMBGCOLOR "#333333" -#define NORMFGCOLOR "#dddddd" -#define STDIN_TIMEOUT 3 /* seconds */
D config.default.h

@@ -1,11 +0,0 @@

-/* - * (C)opyright MMVI Anselm R. Garbe <garbeam at gmail dot com> - * See LICENSE file for license details. - */ - -#define FONT "fixed" -#define SELBGCOLOR "#666699" -#define SELFGCOLOR "#eeeeee" -#define NORMBGCOLOR "#333366" -#define NORMFGCOLOR "#cccccc" -#define STDIN_TIMEOUT 3 /* seconds */
M config.mkconfig.mk

@@ -1,5 +1,5 @@

# dmenu version -VERSION = 1.0 +VERSION = 1.1 # Customize below to fit your system
M dmenu.1dmenu.1

@@ -3,6 +3,12 @@ .SH NAME

dmenu \- dynamic menu .SH SYNOPSIS .B dmenu +.RB [ \-font <name> ] +.RB [ \-normbg <color> ] +.RB [ \-normfg <color> ] +.RB [ \-selbg <color> ] +.RB [ \-selfg <color> ] +.RB [ \-t <seconds> ] .RB [ \-v ] .SH DESCRIPTION .SS Overview

@@ -11,6 +17,24 @@ .BR dwm (1).

It manages huge amounts (up to 10.000 and more) of user defined menu items efficiently. .SS Options +.TP +.B \-font <name> +defines the font. +.TP +.B \-normbg <color> +defines the normal background color (#RGB, #RRGGBB, and color names are supported). +.TP +.B \-normfg <color> +defines the normal foreground color (#RGB, #RRGGBB, and color names are supported). +.TP +.B \-selbg <color> +defines the selected background color (#RGB, #RRGGBB, and color names are supported). +.TP +.B \-selfg <color> +defines the selected foreground color (#RGB, #RRGGBB, and color names are supported). +.TP +.B \-t <seconds> +defines the seconds to wait for standard input, before exiting (default is 3). .TP .B \-v prints version information to standard output, then exits.

@@ -52,8 +76,5 @@ Remove enough characters from the input field to change its filtering effect.

.TP .B Control-u Remove all characters from the input field. -.SH CUSTOMIZATION -dmenu is customized by creating a custom config.h and (re)compiling the source -code. This keeps it fast, secure and simple. .SH SEE ALSO .BR dwm (1)
M dmenu.hdmenu.h

@@ -3,10 +3,14 @@ * (C)opyright MMVI Anselm R. Garbe <garbeam at gmail dot com>

* See LICENSE file for license details. */ -#include "config.h" #include <X11/Xlib.h> #include <X11/Xlocale.h> +#define FONT "fixed" +#define NORMBGCOLOR "#333366" +#define NORMFGCOLOR "#cccccc" +#define SELBGCOLOR "#666699" +#define SELFGCOLOR "#eeeeee" #define SPACE 30 /* px */ /* color */
M main.cmain.c

@@ -283,19 +283,41 @@ DC dc = {0};

int main(int argc, char *argv[]) { + char *font = FONT; char *maxname; + char *normbg = NORMBGCOLOR; + char *normfg = NORMFGCOLOR; + char *selbg = SELBGCOLOR; + char *selfg = SELFGCOLOR; fd_set rd; + int i; struct timeval timeout; - Item *i; + Item *itm; XEvent ev; XSetWindowAttributes wa; - if(argc == 2 && !strncmp("-v", argv[1], 3)) { - fputs("dmenu-"VERSION", (C)opyright MMVI Anselm R. Garbe\n", stdout); - exit(EXIT_SUCCESS); - } - else if(argc != 1) - eprint("usage: dmenu [-v]\n"); + timeout.tv_usec = 0; + timeout.tv_sec = 3; + /* command line args */ + for(i = 1; i < argc; i++) + if(!strncmp(argv[i], "-font", 6)) + font = argv[++i]; + else if(!strncmp(argv[i], "-normbg", 8)) + normbg = argv[++i]; + else if(!strncmp(argv[i], "-normfg", 8)) + normfg = argv[++i]; + else if(!strncmp(argv[i], "-selbg", 7)) + selbg = argv[++i]; + else if(!strncmp(argv[i], "-selfg", 7)) + selfg = argv[++i]; + else if(!strncmp(argv[i], "-t", 3)) + timeout.tv_sec = atoi(argv[++i]); + else if(!strncmp(argv[i], "-v", 3)) { + fputs("dmenu-"VERSION", (C)opyright MMVI Anselm R. Garbe\n", stdout); + exit(EXIT_SUCCESS); + } + else + eprint("usage: dmenu [-font <name>] [-{norm,sel}{bg,fg} <color>] [-t <seconds>] [-v]\n", stdout); dpy = XOpenDisplay(0); if(!dpy)

@@ -312,8 +334,6 @@ while(XGrabKeyboard(dpy, root, True, GrabModeAsync,

GrabModeAsync, CurrentTime) != GrabSuccess) usleep(1000); - timeout.tv_usec = 0; - timeout.tv_sec = STDIN_TIMEOUT; FD_ZERO(&rd); FD_SET(STDIN_FILENO, &rd); if(select(ConnectionNumber(dpy) + 1, &rd, NULL, NULL, &timeout) < 1)

@@ -321,11 +341,11 @@ goto UninitializedEnd;

maxname = readstdin(); /* style */ - dc.sel[ColBG] = getcolor(SELBGCOLOR); - dc.sel[ColFG] = getcolor(SELFGCOLOR); - dc.norm[ColBG] = getcolor(NORMBGCOLOR); - dc.norm[ColFG] = getcolor(NORMFGCOLOR); - setfont(FONT); + dc.sel[ColBG] = getcolor(selbg); + dc.sel[ColFG] = getcolor(selfg); + dc.norm[ColBG] = getcolor(normbg); + dc.norm[ColFG] = getcolor(normfg); + setfont(font); wa.override_redirect = 1; wa.background_pixmap = ParentRelative;

@@ -373,10 +393,10 @@ }

} while(allitems) { - i = allitems->next; + itm = allitems->next; free(allitems->text); free(allitems); - allitems = i; + allitems = itm; } if(dc.font.set) XFreeFontSet(dpy, dc.font.set);