From 1e0d10fe28de394ad30986cc3a939387a5a1c8ad Mon Sep 17 00:00:00 2001 From: "arg@mmvi" Date: Tue, 26 Sep 2006 13:20:47 +0200 Subject: [PATCH] removed config.h stuff, made dwm configurable due to command line options --- dmenubar/Makefile | 6 +---- dmenubar/config.arg.h | 11 --------- dmenubar/config.default.h | 11 --------- dmenubar/config.mk | 2 +- dmenubar/dmenu.1 | 27 +++++++++++++++++--- dmenubar/dmenu.h | 6 ++++- dmenubar/main.c | 52 +++++++++++++++++++++++++++------------ 7 files changed, 67 insertions(+), 48 deletions(-) delete mode 100644 dmenubar/config.arg.h delete mode 100644 dmenubar/config.default.h diff --git a/dmenubar/Makefile b/dmenubar/Makefile index 2fa60d4..5a8f21a 100644 --- a/dmenubar/Makefile +++ b/dmenubar/Makefile @@ -19,11 +19,7 @@ options: @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 $@ diff --git a/dmenubar/config.arg.h b/dmenubar/config.arg.h deleted file mode 100644 index 5b99a2c..0000000 --- a/dmenubar/config.arg.h +++ /dev/null @@ -1,11 +0,0 @@ -/* - * (C)opyright MMVI Anselm R. Garbe - * 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 */ diff --git a/dmenubar/config.default.h b/dmenubar/config.default.h deleted file mode 100644 index 0bae3a1..0000000 --- a/dmenubar/config.default.h +++ /dev/null @@ -1,11 +0,0 @@ -/* - * (C)opyright MMVI Anselm R. Garbe - * 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 */ diff --git a/dmenubar/config.mk b/dmenubar/config.mk index 3af05bd..8440322 100644 --- a/dmenubar/config.mk +++ b/dmenubar/config.mk @@ -1,5 +1,5 @@ # dmenu version -VERSION = 1.0 +VERSION = 1.1 # Customize below to fit your system diff --git a/dmenubar/dmenu.1 b/dmenubar/dmenu.1 index 7495ef3..cfe16b4 100644 --- a/dmenubar/dmenu.1 +++ b/dmenubar/dmenu.1 @@ -3,6 +3,12 @@ dmenu \- dynamic menu .SH SYNOPSIS .B dmenu +.RB [ \-font ] +.RB [ \-normbg ] +.RB [ \-normfg ] +.RB [ \-selbg ] +.RB [ \-selfg ] +.RB [ \-t ] .RB [ \-v ] .SH DESCRIPTION .SS Overview @@ -12,6 +18,24 @@ It manages huge amounts (up to 10.000 and more) of user defined menu items efficiently. .SS Options .TP +.B \-font +defines the font. +.TP +.B \-normbg +defines the normal background color (#RGB, #RRGGBB, and color names are supported). +.TP +.B \-normfg +defines the normal foreground color (#RGB, #RRGGBB, and color names are supported). +.TP +.B \-selbg +defines the selected background color (#RGB, #RRGGBB, and color names are supported). +.TP +.B \-selfg +defines the selected foreground color (#RGB, #RRGGBB, and color names are supported). +.TP +.B \-t +defines the seconds to wait for standard input, before exiting (default is 3). +.TP .B \-v prints version information to standard output, then exits. .SH USAGE @@ -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) diff --git a/dmenubar/dmenu.h b/dmenubar/dmenu.h index eed5689..d4065d2 100644 --- a/dmenubar/dmenu.h +++ b/dmenubar/dmenu.h @@ -3,10 +3,14 @@ * See LICENSE file for license details. */ -#include "config.h" #include #include +#define FONT "fixed" +#define NORMBGCOLOR "#333366" +#define NORMFGCOLOR "#cccccc" +#define SELBGCOLOR "#666699" +#define SELFGCOLOR "#eeeeee" #define SPACE 30 /* px */ /* color */ diff --git a/dmenubar/main.c b/dmenubar/main.c index 170a3e0..27b28af 100644 --- a/dmenubar/main.c +++ b/dmenubar/main.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 ] [-{norm,sel}{bg,fg} ] [-t ] [-v]\n", stdout); dpy = XOpenDisplay(0); if(!dpy) @@ -312,8 +334,6 @@ main(int argc, char *argv[]) { 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 @@ main(int argc, char *argv[]) { 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 @@ main(int argc, char *argv[]) { } 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);