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
This commit is contained in:
		
							parent
							
								
									4a5c8d84db
								
							
						
					
					
						commit
						f22d047d41
					
				
							
								
								
									
										11
									
								
								config.mk
									
									
									
									
									
								
							
							
						
						
									
										11
									
								
								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
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										3
									
								
								dwm.1
									
									
									
									
									
								
							
							
						
						
									
										3
									
								
								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
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										39
									
								
								dwm.c
									
									
									
									
									
								
							
							
						
						
									
										39
									
								
								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++)
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user