diff options
| -rw-r--r-- | dmenu.1 | 5 | ||||
| -rw-r--r-- | dmenu.c | 96 | 
2 files changed, 53 insertions, 48 deletions
| @@ -7,6 +7,8 @@ dmenu \- dynamic menu  .RB [ \-i ]  .RB [ \-l  .IR lines ] +.RB [ \-m +.IR monitor ]  .RB [ \-p  .IR prompt ]  .RB [ \-fn @@ -51,6 +53,9 @@ dmenu matches menu items case insensitively.  .BI \-l " lines"  dmenu lists items vertically, with the given number of lines.  .TP +.BI \-m " monitor" +dmenu appears on the given Xinerama screen. +.TP  .BI \-p " prompt"  defines the prompt to be displayed to the left of the input field.  .TP @@ -63,6 +63,52 @@ static Window root, win;  static int (*fstrncmp)(const char *, const char *, size_t) = strncmp; +int +main(int argc, char *argv[]) { +	int i; + +	progname = "dmenu"; +	for(i = 1; i < argc; i++) +		/* single flags */ +		if(!strcmp(argv[i], "-v")) { +			fputs("dmenu-"VERSION", © 2006-2010 dmenu engineers, see LICENSE for details\n", stdout); +			exit(EXIT_SUCCESS); +		} +		else if(!strcmp(argv[i], "-b")) +			topbar = False; +		else if(!strcmp(argv[i], "-i")) +			fstrncmp = strncasecmp; +		else if(i == argc-1) +			usage(); +		/* double flags */ +		else if(!strcmp(argv[i], "-l")) +			lines = atoi(argv[++i]); +		else if(!strcmp(argv[i], "-m")) +			monitor = atoi(argv[++i]); +		else if(!strcmp(argv[i], "-p")) +			prompt = argv[++i]; +		else if(!strcmp(argv[i], "-fn")) +			font = argv[++i]; +		else if(!strcmp(argv[i], "-nb")) +			normbgcolor = argv[++i]; +		else if(!strcmp(argv[i], "-nf")) +			normfgcolor = argv[++i]; +		else if(!strcmp(argv[i], "-sb")) +			selbgcolor = argv[++i]; +		else if(!strcmp(argv[i], "-sf")) +			selfgcolor = argv[++i]; +		else +			usage(); + +	dc = initdc(); +	initfont(dc, font); +	readstdin(); +	setup(); +	run(); + +	return EXIT_FAILURE;  /* should not reach */ +} +  void  appenditem(Item *item, Item **list, Item **last) {  	if(!*last) @@ -490,53 +536,7 @@ setup(void) {  void  usage(void) { -	fputs("usage: dmenu [-b] [-i] [-l lines] [-p prompt] [-fn font] [-nb color]\n" -	      "             [-nf color] [-sb color] [-sf color] [-v]\n", stderr); +	fputs("usage: dmenu [-b] [-i] [-l lines] [-m monitor] [-p prompt] [-fn font]\n" +	      "             [-nb color] [-nf color] [-sb color] [-sf color] [-v]\n", stderr);  	exit(EXIT_FAILURE);  } - -int -main(int argc, char *argv[]) { -	int i; - -	progname = "dmenu"; -	for(i = 1; i < argc; i++) -		/* single flags */ -		if(!strcmp(argv[i], "-v")) { -			fputs("dmenu-"VERSION", © 2006-2010 dmenu engineers, see LICENSE for details\n", stdout); -			exit(EXIT_SUCCESS); -		} -		else if(!strcmp(argv[i], "-b")) -			topbar = False; -		else if(!strcmp(argv[i], "-i")) -			fstrncmp = strncasecmp; -		else if(i == argc-1) -			usage(); -		/* double flags */ -		else if(!strcmp(argv[i], "-l")) -			lines = atoi(argv[++i]); -		else if(!strcmp(argv[i], "-m")) -			monitor = atoi(argv[++i]); -		else if(!strcmp(argv[i], "-p")) -			prompt = argv[++i]; -		else if(!strcmp(argv[i], "-fn")) -			font = argv[++i]; -		else if(!strcmp(argv[i], "-nb")) -			normbgcolor = argv[++i]; -		else if(!strcmp(argv[i], "-nf")) -			normfgcolor = argv[++i]; -		else if(!strcmp(argv[i], "-sb")) -			selbgcolor = argv[++i]; -		else if(!strcmp(argv[i], "-sf")) -			selfgcolor = argv[++i]; -		else -			usage(); - -	dc = initdc(); -	initfont(dc, font); -	readstdin(); -	setup(); -	run(); - -	return EXIT_FAILURE;  /* should not reach */ -} | 
