aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--dmenu.15
-rw-r--r--dmenu.c96
2 files changed, 53 insertions, 48 deletions
diff --git a/dmenu.1 b/dmenu.1
index 08d103f..d2a93d1 100644
--- a/dmenu.1
+++ b/dmenu.1
@@ -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
diff --git a/dmenu.c b/dmenu.c
index 5c77560..a24dfe3 100644
--- a/dmenu.c
+++ b/dmenu.c
@@ -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 */
-}