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 $<
 | 
						@echo CC $<
 | 
				
			||||||
	@${CC} -c ${CFLAGS} $<
 | 
						@${CC} -c ${CFLAGS} $<
 | 
				
			||||||
 | 
					
 | 
				
			||||||
${OBJ}: dmenu.h config.h config.mk
 | 
					${OBJ}: dmenu.h config.mk
 | 
				
			||||||
 | 
					 | 
				
			||||||
config.h:
 | 
					 | 
				
			||||||
	@echo creating $@ from config.default.h
 | 
					 | 
				
			||||||
	@cp config.default.h $@
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
dmenu: ${OBJ}
 | 
					dmenu: ${OBJ}
 | 
				
			||||||
	@echo LD $@
 | 
						@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
 | 
					# dmenu version
 | 
				
			||||||
VERSION = 1.0
 | 
					VERSION = 1.1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Customize below to fit your system
 | 
					# Customize below to fit your system
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										27
									
								
								dmenu.1
									
									
									
									
									
								
							
							
						
						
									
										27
									
								
								dmenu.1
									
									
									
									
									
								
							@@ -3,6 +3,12 @@
 | 
				
			|||||||
dmenu \- dynamic menu
 | 
					dmenu \- dynamic menu
 | 
				
			||||||
.SH SYNOPSIS
 | 
					.SH SYNOPSIS
 | 
				
			||||||
.B dmenu
 | 
					.B dmenu
 | 
				
			||||||
 | 
					.RB [ \-font <name> ]
 | 
				
			||||||
 | 
					.RB [ \-normbg <color> ]
 | 
				
			||||||
 | 
					.RB [ \-normfg <color> ]
 | 
				
			||||||
 | 
					.RB [ \-selbg <color> ]
 | 
				
			||||||
 | 
					.RB [ \-selfg <color> ]
 | 
				
			||||||
 | 
					.RB [ \-t <seconds> ]
 | 
				
			||||||
.RB [ \-v ]
 | 
					.RB [ \-v ]
 | 
				
			||||||
.SH DESCRIPTION
 | 
					.SH DESCRIPTION
 | 
				
			||||||
.SS Overview
 | 
					.SS Overview
 | 
				
			||||||
@@ -12,6 +18,24 @@ It manages huge amounts (up to 10.000 and more) of user defined menu items
 | 
				
			|||||||
efficiently.
 | 
					efficiently.
 | 
				
			||||||
.SS Options
 | 
					.SS Options
 | 
				
			||||||
.TP
 | 
					.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
 | 
					.B \-v
 | 
				
			||||||
prints version information to standard output, then exits.
 | 
					prints version information to standard output, then exits.
 | 
				
			||||||
.SH USAGE
 | 
					.SH USAGE
 | 
				
			||||||
@@ -52,8 +76,5 @@ Remove enough characters from the input field to change its filtering effect.
 | 
				
			|||||||
.TP
 | 
					.TP
 | 
				
			||||||
.B Control-u
 | 
					.B Control-u
 | 
				
			||||||
Remove all characters from the input field.
 | 
					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
 | 
					.SH SEE ALSO
 | 
				
			||||||
.BR dwm (1)
 | 
					.BR dwm (1)
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										6
									
								
								dmenu.h
									
									
									
									
									
								
							
							
						
						
									
										6
									
								
								dmenu.h
									
									
									
									
									
								
							@@ -3,10 +3,14 @@
 | 
				
			|||||||
 * See LICENSE file for license details.
 | 
					 * See LICENSE file for license details.
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include "config.h"
 | 
					 | 
				
			||||||
#include <X11/Xlib.h>
 | 
					#include <X11/Xlib.h>
 | 
				
			||||||
#include <X11/Xlocale.h>
 | 
					#include <X11/Xlocale.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define FONT			"fixed"
 | 
				
			||||||
 | 
					#define NORMBGCOLOR		"#333366"
 | 
				
			||||||
 | 
					#define NORMFGCOLOR		"#cccccc"
 | 
				
			||||||
 | 
					#define SELBGCOLOR		"#666699"
 | 
				
			||||||
 | 
					#define SELFGCOLOR		"#eeeeee"
 | 
				
			||||||
#define SPACE		30 /* px */
 | 
					#define SPACE		30 /* px */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* color */
 | 
					/* color */
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										52
									
								
								main.c
									
									
									
									
									
								
							
							
						
						
									
										52
									
								
								main.c
									
									
									
									
									
								
							@@ -283,19 +283,41 @@ DC dc = {0};
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
int
 | 
					int
 | 
				
			||||||
main(int argc, char *argv[]) {
 | 
					main(int argc, char *argv[]) {
 | 
				
			||||||
 | 
						char *font = FONT;
 | 
				
			||||||
	char *maxname;
 | 
						char *maxname;
 | 
				
			||||||
 | 
						char *normbg = NORMBGCOLOR;
 | 
				
			||||||
 | 
						char *normfg = NORMFGCOLOR;
 | 
				
			||||||
 | 
						char *selbg = SELBGCOLOR;
 | 
				
			||||||
 | 
						char *selfg = SELFGCOLOR;
 | 
				
			||||||
	fd_set rd;
 | 
						fd_set rd;
 | 
				
			||||||
 | 
						int i;
 | 
				
			||||||
	struct timeval timeout;
 | 
						struct timeval timeout;
 | 
				
			||||||
	Item *i;
 | 
						Item *itm;
 | 
				
			||||||
	XEvent ev;
 | 
						XEvent ev;
 | 
				
			||||||
	XSetWindowAttributes wa;
 | 
						XSetWindowAttributes wa;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if(argc == 2 && !strncmp("-v", argv[1], 3)) {
 | 
						timeout.tv_usec = 0;
 | 
				
			||||||
		fputs("dmenu-"VERSION", (C)opyright MMVI Anselm R. Garbe\n", stdout);
 | 
						timeout.tv_sec = 3;
 | 
				
			||||||
		exit(EXIT_SUCCESS);
 | 
						/* command line args */
 | 
				
			||||||
	}
 | 
						for(i = 1; i < argc; i++)
 | 
				
			||||||
	else if(argc != 1)
 | 
							if(!strncmp(argv[i], "-font", 6))
 | 
				
			||||||
		eprint("usage: dmenu [-v]\n");
 | 
								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);
 | 
						dpy = XOpenDisplay(0);
 | 
				
			||||||
	if(!dpy)
 | 
						if(!dpy)
 | 
				
			||||||
@@ -312,8 +334,6 @@ main(int argc, char *argv[]) {
 | 
				
			|||||||
			 GrabModeAsync, CurrentTime) != GrabSuccess)
 | 
								 GrabModeAsync, CurrentTime) != GrabSuccess)
 | 
				
			||||||
		usleep(1000);
 | 
							usleep(1000);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	timeout.tv_usec = 0;
 | 
					 | 
				
			||||||
	timeout.tv_sec = STDIN_TIMEOUT;
 | 
					 | 
				
			||||||
	FD_ZERO(&rd);
 | 
						FD_ZERO(&rd);
 | 
				
			||||||
	FD_SET(STDIN_FILENO, &rd);
 | 
						FD_SET(STDIN_FILENO, &rd);
 | 
				
			||||||
	if(select(ConnectionNumber(dpy) + 1, &rd, NULL, NULL, &timeout) < 1)
 | 
						if(select(ConnectionNumber(dpy) + 1, &rd, NULL, NULL, &timeout) < 1)
 | 
				
			||||||
@@ -321,11 +341,11 @@ main(int argc, char *argv[]) {
 | 
				
			|||||||
	maxname = readstdin();
 | 
						maxname = readstdin();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	/* style */
 | 
						/* style */
 | 
				
			||||||
	dc.sel[ColBG] = getcolor(SELBGCOLOR);
 | 
						dc.sel[ColBG] = getcolor(selbg);
 | 
				
			||||||
	dc.sel[ColFG] = getcolor(SELFGCOLOR);
 | 
						dc.sel[ColFG] = getcolor(selfg);
 | 
				
			||||||
	dc.norm[ColBG] = getcolor(NORMBGCOLOR);
 | 
						dc.norm[ColBG] = getcolor(normbg);
 | 
				
			||||||
	dc.norm[ColFG] = getcolor(NORMFGCOLOR);
 | 
						dc.norm[ColFG] = getcolor(normfg);
 | 
				
			||||||
	setfont(FONT);
 | 
						setfont(font);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	wa.override_redirect = 1;
 | 
						wa.override_redirect = 1;
 | 
				
			||||||
	wa.background_pixmap = ParentRelative;
 | 
						wa.background_pixmap = ParentRelative;
 | 
				
			||||||
@@ -373,10 +393,10 @@ main(int argc, char *argv[]) {
 | 
				
			|||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	while(allitems) {
 | 
						while(allitems) {
 | 
				
			||||||
		i = allitems->next;
 | 
							itm = allitems->next;
 | 
				
			||||||
		free(allitems->text);
 | 
							free(allitems->text);
 | 
				
			||||||
		free(allitems);
 | 
							free(allitems);
 | 
				
			||||||
		allitems = i;
 | 
							allitems = itm;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	if(dc.font.set)
 | 
						if(dc.font.set)
 | 
				
			||||||
		XFreeFontSet(dpy, dc.font.set);
 | 
							XFreeFontSet(dpy, dc.font.set);
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user