mirror of git://git.suckless.org/dmenu
applied Martti Kühne's dmenu monitor patch
f6581ca966/monarg.patch
becomes upstream now
This commit is contained in:
parent
597d4b4337
commit
13f787306f
2
LICENSE
2
LICENSE
|
@ -1,7 +1,7 @@
|
||||||
MIT/X Consortium License
|
MIT/X Consortium License
|
||||||
|
|
||||||
|
© 2006-2013 Anselm R Garbe <anselm@garbe.us>
|
||||||
© 2010-2012 Connor Lane Smith <cls@lubutu.com>
|
© 2010-2012 Connor Lane Smith <cls@lubutu.com>
|
||||||
© 2006-2012 Anselm R Garbe <anselm@garbe.us>
|
|
||||||
© 2009 Gottox <gottox@s01.de>
|
© 2009 Gottox <gottox@s01.de>
|
||||||
© 2009 Markus Schnalke <meillo@marmaro.de>
|
© 2009 Markus Schnalke <meillo@marmaro.de>
|
||||||
© 2009 Evan Gates <evan.gates@gmail.com>
|
© 2009 Evan Gates <evan.gates@gmail.com>
|
||||||
|
|
5
dmenu.1
5
dmenu.1
|
@ -7,6 +7,8 @@ dmenu \- dynamic menu
|
||||||
.RB [ \-f ]
|
.RB [ \-f ]
|
||||||
.RB [ \-i ]
|
.RB [ \-i ]
|
||||||
.RB [ \-l
|
.RB [ \-l
|
||||||
|
.RB [ \-m
|
||||||
|
.IR monitor ]
|
||||||
.IR lines ]
|
.IR lines ]
|
||||||
.RB [ \-p
|
.RB [ \-p
|
||||||
.IR prompt ]
|
.IR prompt ]
|
||||||
|
@ -49,6 +51,9 @@ dmenu matches menu items case insensitively.
|
||||||
.BI \-l " lines"
|
.BI \-l " lines"
|
||||||
dmenu lists items vertically, with the given number of lines.
|
dmenu lists items vertically, with the given number of lines.
|
||||||
.TP
|
.TP
|
||||||
|
.BI \-m " monitor"
|
||||||
|
dmenu is displayed on the monitor supplied.
|
||||||
|
.TP
|
||||||
.BI \-p " prompt"
|
.BI \-p " prompt"
|
||||||
defines the prompt to be displayed to the left of the input field.
|
defines the prompt to be displayed to the left of the input field.
|
||||||
.TP
|
.TP
|
||||||
|
|
11
dmenu.c
11
dmenu.c
|
@ -54,6 +54,7 @@ static Item *matches, *matchend;
|
||||||
static Item *prev, *curr, *next, *sel;
|
static Item *prev, *curr, *next, *sel;
|
||||||
static Window win;
|
static Window win;
|
||||||
static XIC xic;
|
static XIC xic;
|
||||||
|
static int mon = -1;
|
||||||
|
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
|
|
||||||
|
@ -84,6 +85,8 @@ main(int argc, char *argv[]) {
|
||||||
/* these options take one argument */
|
/* these options take one argument */
|
||||||
else if(!strcmp(argv[i], "-l")) /* number of lines in vertical list */
|
else if(!strcmp(argv[i], "-l")) /* number of lines in vertical list */
|
||||||
lines = atoi(argv[++i]);
|
lines = atoi(argv[++i]);
|
||||||
|
else if(!strcmp(argv[i], "-m"))
|
||||||
|
mon = atoi(argv[++i]);
|
||||||
else if(!strcmp(argv[i], "-p")) /* adds prompt to left of input field */
|
else if(!strcmp(argv[i], "-p")) /* adds prompt to left of input field */
|
||||||
prompt = argv[++i];
|
prompt = argv[++i];
|
||||||
else if(!strcmp(argv[i], "-fn")) /* font or font set */
|
else if(!strcmp(argv[i], "-fn")) /* font or font set */
|
||||||
|
@ -557,7 +560,9 @@ setup(void) {
|
||||||
XWindowAttributes wa;
|
XWindowAttributes wa;
|
||||||
|
|
||||||
XGetInputFocus(dc->dpy, &w, &di);
|
XGetInputFocus(dc->dpy, &w, &di);
|
||||||
if(w != root && w != PointerRoot && w != None) {
|
if(mon != -1 && mon < n)
|
||||||
|
i = mon;
|
||||||
|
if(!i && w != root && w != PointerRoot && w != None) {
|
||||||
/* find top-level window containing current input focus */
|
/* find top-level window containing current input focus */
|
||||||
do {
|
do {
|
||||||
if(XQueryTree(dc->dpy, (pw = w), &dw, &w, &dws, &du) && dws)
|
if(XQueryTree(dc->dpy, (pw = w), &dw, &w, &dws, &du) && dws)
|
||||||
|
@ -572,7 +577,7 @@ setup(void) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/* no focused window is on screen, so use pointer location instead */
|
/* no focused window is on screen, so use pointer location instead */
|
||||||
if(!area && XQueryPointer(dc->dpy, root, &dw, &dw, &x, &y, &di, &di, &du))
|
if(mon == -1 && !area && XQueryPointer(dc->dpy, root, &dw, &dw, &x, &y, &di, &di, &du))
|
||||||
for(i = 0; i < n; i++)
|
for(i = 0; i < n; i++)
|
||||||
if(INTERSECT(x, y, 1, 1, info[i]))
|
if(INTERSECT(x, y, 1, 1, info[i]))
|
||||||
break;
|
break;
|
||||||
|
@ -614,7 +619,7 @@ setup(void) {
|
||||||
|
|
||||||
void
|
void
|
||||||
usage(void) {
|
usage(void) {
|
||||||
fputs("usage: dmenu [-b] [-f] [-i] [-l lines] [-p prompt] [-fn font]\n"
|
fputs("usage: dmenu [-b] [-f] [-i] [-l lines] [-p prompt] [-fn font] [-m monitor]\n"
|
||||||
" [-nb color] [-nf color] [-sb color] [-sf color] [-v]\n", stderr);
|
" [-nb color] [-nf color] [-sb color] [-sf color] [-v]\n", stderr);
|
||||||
exit(EXIT_FAILURE);
|
exit(EXIT_FAILURE);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue