all repos — dmenu @ 3438af001adcb1d8ff840f89ae7cb5ef8589bde6

my build of dmenu

applied Stefan Tibus' sun patch, added -bottom option to dmenu which makes it appear in the bottom (for wmii compliance), slightly modified version than the patch proposed by Stefan Tibus
arg@mig29 unknown
Mon, 18 Dec 2006 12:52:58 +0100
commit

3438af001adcb1d8ff840f89ae7cb5ef8589bde6

parent

201b056e39267ab34ee777f7766457ef51a9da12

3 files changed, 22 insertions(+), 3 deletions(-)

jump to
M config.mkconfig.mk

@@ -20,6 +20,11 @@ LDFLAGS = ${LIBS}

#CFLAGS = -g -Wall -O2 ${INCS} -DVERSION=\"${VERSION}\" #LDFLAGS = -g ${LIBS} +# Solaris +#CFLAGS = -fast ${INCS} -DVERSION=\"${VERSION}\" +#LDFLAGS = ${LIBS} +#CFLAGS += -xtarget=ultra + # compiler and linker CC = cc LD = ${CC}
M dmenu.1dmenu.1

@@ -3,6 +3,7 @@ .SH NAME

dmenu \- dynamic menu .SH SYNOPSIS .B dmenu +.RB [ \-bottom ] .RB [ \-font " <name>"] .RB [ \-normbg " <color>"] .RB [ \-normfg " <color>"]

@@ -18,6 +19,9 @@ .BR dwm (1).

It manages huge amounts (up to 10.000 and more) of user defined menu items efficiently. .SS Options +.TP +.B \-bottom +makes dmenu appear at the screen bottom (by default it appears at the screen top). .TP .B \-font <name> defines the font.
M main.cmain.c

@@ -330,6 +330,7 @@ DC dc = {0};

int main(int argc, char *argv[]) { + Bool bottom = False; char *font = FONT; char *maxname; char *normbg = NORMBGCOLOR;

@@ -347,7 +348,10 @@ timeout.tv_usec = 0;

timeout.tv_sec = 3; /* command line args */ for(i = 1; i < argc; i++) - if(!strncmp(argv[i], "-font", 6)) { + if(!strncmp(argv[i], "-bottom", 8)) { + bottom = True; + } + else if(!strncmp(argv[i], "-font", 6)) { if(++i < argc) font = argv[i]; } else if(!strncmp(argv[i], "-normbg", 8)) {

@@ -373,7 +377,8 @@ 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>] [-p <prompt>] [-t <seconds>] [-v]\n", stdout); + eprint("usage: dmenu [-bottom] [-font <name>] [-{norm,sel}{bg,fg} <color>]\n" + " [-p <prompt>] [-t <seconds>] [-v]\n", stdout); setlocale(LC_CTYPE, ""); dpy = XOpenDisplay(0); if(!dpy)

@@ -406,7 +411,12 @@ wa.background_pixmap = ParentRelative;

wa.event_mask = ExposureMask | ButtonPressMask | KeyPressMask; mx = my = 0; mw = DisplayWidth(dpy, screen); - mh = dc.font.height + 2; + if(bottom) { + mh = dc.font.ascent + dc.font.descent + 3; // match wmii + my = DisplayHeight(dpy, screen) - mh; + } + else + mh = dc.font.height + 2; win = XCreateWindow(dpy, root, mx, my, mw, mh, 0, DefaultDepth(dpy, screen), CopyFromParent, DefaultVisual(dpy, screen),