URI: 
       make it easier for the user, if Xinerama support is given, always use the screen 0 as window area/bar area, everything else can be used for floating clients - dwm - dynamic window manager
  HTML git clone https://git.parazyd.org/dwm
   DIR Log
   DIR Files
   DIR Refs
   DIR README
   DIR LICENSE
       ---
   DIR commit f22d047d4139ef889e95aabd0103e11357193e5a
   DIR parent 4a5c8d84dbf410b8b9aa4dc81954568f10ca104f
  HTML Author: Anselm R Garbe <garbeam@gmail.com>
       Date:   Mon, 19 May 2008 15:05:46 +0100
       
       make it easier for the user, if Xinerama support is given, always use the screen 0 as window area/bar area, everything else can be used for floating clients
       Diffstat:
         M config.mk                           |      11 ++++++++---
         M dwm.1                               |       3 +++
         M dwm.c                               |      39 +++++++++++++++++++++-----------
       
       3 files changed, 37 insertions(+), 16 deletions(-)
       ---
   DIR diff --git a/config.mk b/config.mk
       @@ -10,14 +10,19 @@ MANPREFIX = ${PREFIX}/share/man
        X11INC = /usr/X11R6/include
        X11LIB = /usr/X11R6/lib
        
       +# Xinerama, uncomment if you don't want it
       +XINERAMALIBS = -L${X11LIB} -lXinerama
       +XINERAMAFLAGS = -DXINERAMA
       +
        # includes and libs
        INCS = -I. -I/usr/include -I${X11INC}
       -LIBS = -L/usr/lib -lc -L${X11LIB} -lX11
       +LIBS = -L/usr/lib -lc -L${X11LIB} -lX11 ${XINERAMALIBS}
        
        # flags
       -CFLAGS = -Os ${INCS} -DVERSION=\"${VERSION}\"
       +CPPFLAGS = -DVERSION=\"${VERSION}\" ${XINERAMAFLAGS}
       +CFLAGS = -Os ${INCS} ${CPPFLAGS}
        LDFLAGS = -s ${LIBS}
       -#CFLAGS = -g -std=c99 -pedantic -Wall -O2 ${INCS} -DVERSION=\"${VERSION}\"
       +#CFLAGS = -g -std=c99 -pedantic -Wall -O2 ${INCS} ${CPPFLAGS}
        #LDFLAGS = -g ${LIBS}
        
        # Solaris
   DIR diff --git a/dwm.1 b/dwm.1
       @@ -57,6 +57,9 @@ click on a tag label adds/removes that tag to/from the focused window.
        Start
        .BR xterm.
        .TP
       +.B Mod1\-b
       +Toggles bar on and off.
       +.TP
        .B Mod1\-space
        Toggles between layouts.
        .TP
   DIR diff --git a/dwm.c b/dwm.c
       @@ -39,6 +39,9 @@
        #include <X11/Xlib.h>
        #include <X11/Xproto.h>
        #include <X11/Xutil.h>
       +#ifdef XINERAMA
       +#include <X11/extensions/Xinerama.h>
       +#endif
        
        /* macros */
        #define MAX(a, b)       ((a) > (b) ? (a) : (b))
       @@ -1579,22 +1582,32 @@ updatebar(void) {
        
        void
        updategeom(void) {
       -        unsigned int i;
       -
       -#ifdef CUSTOMGEOM /* define your own if you are Xinerama user */
       -        CUSTOMGEOM
       -#else
       -        /* bar geometry*/
       -        bx = 0;
       -        by = showbar ? (topbar ? 0 : sh - bh) : -bh;
       -        bw = sw;
       +        int i;
       +#ifdef XINERAMA
       +        XineramaScreenInfo *info = NULL;
        
                /* window area geometry */
       -        wx = sx;
       -        wy = showbar && topbar ? sy + bh : sy;
       -        ww = sw;
       -        wh = showbar ? sh - bh : sh;
       +        if(XineramaIsActive(dpy)) {
       +                info = XineramaQueryScreens(dpy, &i);
       +                wx = info[0].x_org;
       +                wy = showbar && topbar ? info[0].y_org + info[0].height + bh : info[0].y_org;
       +                ww = info[0].width;
       +                wh = showbar ? info[0].height - bh : info[0].height;
       +                XFree(info);
       +        }
       +        else
        #endif
       +        {
       +                wx = sx;
       +                wy = showbar && topbar ? sy + bh : sy;
       +                ww = sw;
       +                wh = showbar ? sh - bh : sh;
       +        }
       +
       +        /* bar geometry*/
       +        bx = wx;
       +        by = showbar ? (topbar ? 0 : wy + wh) : -bh;
       +        bw = ww;
        
                /* update layout geometries */
                for(i = 0; i < LENGTH(layouts); i++)