tapplied 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 - dmenu - Dmenu fork with xft fonts.
 (HTM) git clone git://r-36.net/dmenu
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
 (DIR) commit 3438af001adcb1d8ff840f89ae7cb5ef8589bde6
 (DIR) parent 201b056e39267ab34ee777f7766457ef51a9da12
 (HTM) Author: arg@mig29 <unknown>
       Date:   Mon, 18 Dec 2006 12:52:58 +0100
       
       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
       Diffstat:
         config.mk                           |       5 +++++
         dmenu.1                             |       4 ++++
         main.c                              |      16 +++++++++++++---
       
       3 files changed, 22 insertions(+), 3 deletions(-)
       ---
 (DIR) diff --git a/config.mk b/config.mk
       t@@ -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}
 (DIR) diff --git a/dmenu.1 b/dmenu.1
       t@@ -3,6 +3,7 @@
        dmenu \- dynamic menu
        .SH SYNOPSIS
        .B dmenu
       +.RB [ \-bottom ]
        .RB [ \-font " <name>"]
        .RB [ \-normbg " <color>"]
        .RB [ \-normfg " <color>"]
       t@@ -19,6 +20,9 @@ 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.
        .TP
 (DIR) diff --git a/main.c b/main.c
       t@@ -330,6 +330,7 @@ DC dc = {0};
        
        int
        main(int argc, char *argv[]) {
       +        Bool bottom = False;
                char *font = FONT;
                char *maxname;
                char *normbg = NORMBGCOLOR;
       t@@ -347,7 +348,10 @@ main(int argc, char *argv[]) {
                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)) {
       t@@ -373,7 +377,8 @@ main(int argc, char *argv[]) {
                                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)
       t@@ -406,7 +411,12 @@ main(int argc, char *argv[]) {
                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),