tadded prompt option (-p 'prompt text'), documented in man page as well - 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 65912f2a96d32600a07b963e9149f70ca22e73bb
 (DIR) parent 4bd34662153f0b2cabac485d01ac2e1300c254c1
 (HTM) Author: arg@mig29 <unknown>
       Date:   Wed, 13 Dec 2006 14:14:41 +0100
       
       added prompt option (-p 'prompt text'), documented in man page as well
       Diffstat:
         dmenu.1                             |       4 ++++
         main.c                              |      22 +++++++++++++++++++---
       
       2 files changed, 23 insertions(+), 3 deletions(-)
       ---
 (DIR) diff --git a/dmenu.1 b/dmenu.1
       t@@ -8,6 +8,7 @@ dmenu \- dynamic menu
        .RB [ \-normfg " <color>"]
        .RB [ \-selbg " <color>"]
        .RB [ \-selfg " <color>"]
       +.RB [ \-p " <prompt>"]
        .RB [ \-t " <seconds>"]
        .RB [ \-v ]
        .SH DESCRIPTION
       t@@ -33,6 +34,9 @@ defines the selected background color (#RGB, #RRGGBB, and color names are suppor
        .B \-selfg <color>
        defines the selected foreground color (#RGB, #RRGGBB, and color names are supported).
        .TP
       +.B \-p <prompt>
       +defines a prompt being displayed before input area.
       +.TP
        .B \-t <seconds>
        defines the seconds to wait for standard input, before exiting (default is 3).
        .TP
 (DIR) diff --git a/main.c b/main.c
       t@@ -25,10 +25,12 @@ struct Item {
        /* static */
        
        static char text[4096];
       +static char *prompt = NULL;
        static int mx, my, mw, mh;
        static int ret = 0;
        static int nitem = 0;
        static unsigned int cmdw = 0;
       +static unsigned int promptw = 0;
        static Bool running = True;
        static Item *allitems = NULL;        /* first of all items */
        static Item *item = NULL;        /* first of pattern matching items */
       t@@ -45,7 +47,7 @@ calcoffsets(void) {
        
                if(!curr)
                        return;
       -        w = cmdw + 2 * SPACE;
       +        w = promptw + cmdw + 2 * SPACE;
                for(next = curr; next; next=next->right) {
                        tw = textw(next->text);
                        if(tw > mw / 3)
       t@@ -54,7 +56,7 @@ calcoffsets(void) {
                        if(w > mw)
                                break;
                }
       -        w = cmdw + 2 * SPACE;
       +        w = promptw + cmdw + 2 * SPACE;
                for(prev = curr; prev && prev->left; prev=prev->left) {
                        tw = textw(prev->left->text);
                        if(tw > mw / 3)
       t@@ -74,6 +76,13 @@ drawmenu(void) {
                dc.w = mw;
                dc.h = mh;
                drawtext(NULL, dc.norm);
       +        /* print prompt? */
       +        if(promptw) {
       +                dc.w = promptw;
       +                drawtext(prompt, dc.sel);
       +        }
       +        dc.x += promptw;
       +        dc.w = mw - promptw;
                /* print command */
                if(cmdw && item)
                        dc.w = cmdw;
       t@@ -326,6 +335,9 @@ main(int argc, char *argv[]) {
                        else if(!strncmp(argv[i], "-selfg", 7)) {
                                if(++i < argc) selfg = argv[i];
                        }
       +                else if(!strncmp(argv[i], "-p", 3)) {
       +                        if(++i < argc) prompt = argv[i];
       +                }
                        else if(!strncmp(argv[i], "-t", 3)) {
                                if(++i < argc) timeout.tv_sec = atoi(argv[i]);
                        }
       t@@ -334,7 +346,7 @@ main(int argc, char *argv[]) {
                                exit(EXIT_SUCCESS);
                        }
                        else
       -                        eprint("usage: dmenu [-font <name>] [-{norm,sel}{bg,fg} <color>] [-t <seconds>] [-v]\n", stdout);
       +                        eprint("usage: dmenu [-font <name>] [-{norm,sel}{bg,fg} <color>] [-p <prompt>] [-t <seconds>] [-v]\n", stdout);
                setlocale(LC_CTYPE, "");
                dpy = XOpenDisplay(0);
                if(!dpy)
       t@@ -380,6 +392,10 @@ main(int argc, char *argv[]) {
                        cmdw = textw(maxname);
                if(cmdw > mw / 3)
                        cmdw = mw / 3;
       +        if(prompt)
       +                promptw = textw(prompt);
       +        if(promptw > mw / 5)
       +                promptw = mw / 5;
                text[0] = 0;
                match(text);
                XMapRaised(dpy, win);