removed config.h stuff, made dwm configurable due to command line options
This commit is contained in:
		
							
								
								
									
										6
									
								
								Makefile
									
									
									
									
									
								
							
							
						
						
									
										6
									
								
								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 $@
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										11
									
								
								config.arg.h
									
									
									
									
									
								
							
							
						
						
									
										11
									
								
								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 */
 | 
			
		||||
@@ -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 */
 | 
			
		||||
@@ -1,5 +1,5 @@
 | 
			
		||||
# dmenu version
 | 
			
		||||
VERSION = 1.0
 | 
			
		||||
VERSION = 1.1
 | 
			
		||||
 | 
			
		||||
# Customize below to fit your system
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										27
									
								
								dmenu.1
									
									
									
									
									
								
							
							
						
						
									
										27
									
								
								dmenu.1
									
									
									
									
									
								
							@@ -3,6 +3,12 @@
 | 
			
		||||
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
 | 
			
		||||
@@ -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 <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.
 | 
			
		||||
.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)
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										6
									
								
								dmenu.h
									
									
									
									
									
								
							
							
						
						
									
										6
									
								
								dmenu.h
									
									
									
									
									
								
							@@ -3,10 +3,14 @@
 | 
			
		||||
 * 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 */
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										46
									
								
								main.c
									
									
									
									
									
								
							
							
						
						
									
										46
									
								
								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)) {
 | 
			
		||||
	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 if(argc != 1)
 | 
			
		||||
		eprint("usage: dmenu [-v]\n");
 | 
			
		||||
		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 @@ 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);
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user