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 */ -} |