Hi list. I'm not a proficient C coder but I managed to hack this patch together. With this, you can set the starting search string to something else then an empty string.
Dieter --- dmenu-4.0/dmenu.1 2009-04-18 13:50:04.000000000 +0200 +++ dmenu-4.0-patched/dmenu.1 2009-04-25 19:08:46.000000000 +0200 @@ -23,6 +23,9 @@ .B \-i makes dmenu match menu entries case insensitively. .TP +.B \-d +set a default value for the search string. +.TP .B \-b defines that dmenu appears at the bottom. .TP diff -Naur dmenu-4.0/dmenu.c dmenu-4.0-patched/dmenu.c --- dmenu-4.0/dmenu.c 2009-04-18 13:50:04.000000000 +0200 +++ dmenu-4.0-patched/dmenu.c 2009-04-25 18:59:46.000000000 +0200 @@ -642,7 +642,6 @@ promptw = textw(prompt); if(promptw > mw / 5) promptw = mw / 5; - text[0] = 0; match(text); XMapRaised(dpy, win); } @@ -667,6 +666,7 @@ main(int argc, char *argv[]) { unsigned int i; Bool topbar = True; + text[0] = 0; /* command line args */ for(i = 1; i < argc; i++) @@ -694,11 +694,14 @@ else if(!strcmp(argv[i], "-sf")) { if(++i < argc) selfgcolor = argv[i]; } + else if(!strcmp(argv[i], "-d")) { + if(++i < argc) strcpy(text, argv[i]); + } else if(!strcmp(argv[i], "-v")) eprint("dmenu-"VERSION", © 2006-2008 dmenu engineers, see LICENSE for details\n"); else eprint("usage: dmenu [-i] [-b] [-fn <font>] [-nb <color>] [-nf <color>]\n" - " [-p <prompt>] [-sb <color>] [-sf <color>] [-v]\n"); + " [-p <prompt>] [-sb <color>] [-sf <color>] [-d <default>] [-v]\n"); if(!setlocale(LC_CTYPE, "") || !XSupportsLocale()) fprintf(stderr, "warning: no locale support\n"); if(!(dpy = XOpenDisplay(NULL)))