tapplied improved version of Martti Kühne's dmenu/multi monitor approach from dwm, no dmenuspawn required - dwm - [fork] customized build of dwm, the dynamic window manager
 (HTM) git clone git://src.adamsgaard.dk/dwm
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
 (DIR) commit 6af273771cb0e28e4394c78ab0322f77025a57f3
 (DIR) parent 4fb31e08968c5058362021887fab4bbea746aecf
 (HTM) Author: Anselm R Garbe <anselm@garbe.us>
       Date:   Fri,  2 Aug 2013 22:40:20 +0200
       
       applied improved version of Martti Kühne's dmenu/multi monitor approach from dwm, no dmenuspawn required
       
       Diffstat:
         M config.def.h                        |       3 ++-
         M dwm.c                               |       2 ++
       
       2 files changed, 4 insertions(+), 1 deletion(-)
       ---
 (DIR) diff --git a/config.def.h b/config.def.h
       t@@ -50,7 +50,8 @@ static const Layout layouts[] = {
        #define SHCMD(cmd) { .v = (const char*[]){ "/bin/sh", "-c", cmd, NULL } }
        
        /* commands */
       -static const char *dmenucmd[] = { "dmenu_run", "-fn", font, "-nb", normbgcolor, "-nf", normfgcolor, "-sb", selbgcolor, "-sf", selfgcolor, NULL };
       +static char dmenumon[2] = "0"; /* component of dmenucmd, manipulated in spawn() */
       +static const char *dmenucmd[] = { "dmenu_run", "-m", dmenumon, "-fn", font, "-nb", normbgcolor, "-nf", normfgcolor, "-sb", selbgcolor, "-sf", selfgcolor, NULL };
        static const char *termcmd[]  = { "st", NULL };
        
        static Key keys[] = {
 (DIR) diff --git a/dwm.c b/dwm.c
       t@@ -1569,6 +1569,8 @@ sigchld(int unused) {
        
        void
        spawn(const Arg *arg) {
       +        if(arg->v == dmenucmd)
       +                dmenumon[0] = '0' + selmon->num;
                if(fork() == 0) {
                        if(dpy)
                                close(ConnectionNumber(dpy));