1
0

just making dwm.h saner

This commit is contained in:
arg@suckless.org 2007-10-17 11:19:14 +02:00
parent 04de5720e6
commit 206eb344e2
3 changed files with 63 additions and 65 deletions

View File

@ -17,8 +17,8 @@ LIBS = -L/usr/lib -lc -L${X11LIB} -lX11
# flags # flags
CFLAGS = -Os ${INCS} -DVERSION=\"${VERSION}\" CFLAGS = -Os ${INCS} -DVERSION=\"${VERSION}\"
LDFLAGS = -s ${LIBS} LDFLAGS = -s ${LIBS}
#CFLAGS = -g -std=c99 -pedantic -Wall -O2 ${INCS} -DVERSION=\"${VERSION}\" CFLAGS = -g -std=c99 -pedantic -Wall -O2 ${INCS} -DVERSION=\"${VERSION}\"
#LDFLAGS = -g ${LIBS} LDFLAGS = -g ${LIBS}
# Solaris # Solaris
#CFLAGS = -fast ${INCS} -DVERSION=\"${VERSION}\" #CFLAGS = -fast ${INCS} -DVERSION=\"${VERSION}\"

65
dwm.c
View File

@ -25,8 +25,6 @@
* *
* To understand everything else, start reading main(). * To understand everything else, start reading main().
*/ */
#include "dwm.h"
#include <errno.h> #include <errno.h>
#include <locale.h> #include <locale.h>
#include <stdarg.h> #include <stdarg.h>
@ -41,73 +39,17 @@
#include <X11/cursorfont.h> #include <X11/cursorfont.h>
#include <X11/keysym.h> #include <X11/keysym.h>
#include <X11/Xatom.h> #include <X11/Xatom.h>
#include <X11/Xlib.h>
#include <X11/Xproto.h> #include <X11/Xproto.h>
#include <X11/Xutil.h> #include <X11/Xutil.h>
#include "dwm.h"
/* macros */ /* macros */
#define BUTTONMASK (ButtonPressMask | ButtonReleaseMask) #define BUTTONMASK (ButtonPressMask | ButtonReleaseMask)
#define CLEANMASK(mask) (mask & ~(numlockmask | LockMask)) #define CLEANMASK(mask) (mask & ~(numlockmask | LockMask))
#define MOUSEMASK (BUTTONMASK | PointerMotionMask) #define MOUSEMASK (BUTTONMASK | PointerMotionMask)
/* local typedefs */
typedef struct {
const char *prop;
const char *tags;
Bool isfloating;
} Rule;
typedef struct {
regex_t *propregex;
regex_t *tagregex;
} Regs;
/* variables */
char stext[256];
double mwfact;
int screen, sx, sy, sw, sh, wax, way, waw, wah;
int (*xerrorxlib)(Display *, XErrorEvent *);
unsigned int bh, bpos;
unsigned int blw = 0;
unsigned int ltidx = 0; /* default */
unsigned int nlayouts = 0;
unsigned int nrules = 0;
unsigned int numlockmask = 0;
void (*handler[LASTEvent]) (XEvent *) = {
[ButtonPress] = buttonpress,
[ConfigureRequest] = configurerequest,
[ConfigureNotify] = configurenotify,
[DestroyNotify] = destroynotify,
[EnterNotify] = enternotify,
[LeaveNotify] = leavenotify,
[Expose] = expose,
[KeyPress] = keypress,
[MappingNotify] = mappingnotify,
[MapRequest] = maprequest,
[PropertyNotify] = propertynotify,
[UnmapNotify] = unmapnotify
};
Atom wmatom[WMLast], netatom[NetLast];
Bool otherwm, readin;
Bool running = True;
Bool selscreen = True;
Client *clients = NULL;
Client *sel = NULL;
Client *stack = NULL;
Cursor cursor[CurLast];
Display *dpy;
DC dc = {0};
Window barwin, root;
Regs *regs = NULL;
/* configuration, allows nested code to access above variables */
#include "config.h"
/* Statically define the number of tags. */
unsigned int ntags = sizeof tags / sizeof tags[0];
Bool seltags[sizeof tags / sizeof tags[0]] = {[0] = True};
Bool prevtags[sizeof tags / sizeof tags[0]] = {[0] = True};
/* functions*/
void void
applyrules(Client *c) { applyrules(Client *c) {
static char buf[512]; static char buf[512];
@ -1032,7 +974,6 @@ quit(const char *arg) {
void void
resize(Client *c, int x, int y, int w, int h, Bool sizehints) { resize(Client *c, int x, int y, int w, int h, Bool sizehints) {
double dx, dy, max, min, ratio;
XWindowChanges wc; XWindowChanges wc;
if(sizehints) { if(sizehints) {

59
dwm.h
View File

@ -1,5 +1,4 @@
/* See LICENSE file for copyright and license details. */ /* See LICENSE file for copyright and license details. */
#include <X11/Xlib.h>
/* enums */ /* enums */
enum { BarTop, BarBot, BarOff }; /* bar position */ enum { BarTop, BarBot, BarOff }; /* bar position */
@ -53,6 +52,17 @@ typedef struct {
void (*arrange)(void); void (*arrange)(void);
} Layout; } Layout;
typedef struct {
const char *prop;
const char *tags;
Bool isfloating;
} Rule;
typedef struct {
regex_t *propregex;
regex_t *tagregex;
} Regs;
/* functions */ /* functions */
void applyrules(Client *c); void applyrules(Client *c);
void arrange(void); void arrange(void);
@ -132,3 +142,50 @@ int xerror(Display *dpy, XErrorEvent *ee);
int xerrordummy(Display *dsply, XErrorEvent *ee); int xerrordummy(Display *dsply, XErrorEvent *ee);
int xerrorstart(Display *dsply, XErrorEvent *ee); int xerrorstart(Display *dsply, XErrorEvent *ee);
void zoom(const char *arg); void zoom(const char *arg);
/* variables */
char stext[256];
double mwfact;
int screen, sx, sy, sw, sh, wax, way, waw, wah;
int (*xerrorxlib)(Display *, XErrorEvent *);
unsigned int bh, bpos;
unsigned int blw = 0;
unsigned int ltidx = 0; /* default */
unsigned int nlayouts = 0;
unsigned int nrules = 0;
unsigned int numlockmask = 0;
void (*handler[LASTEvent]) (XEvent *) = {
[ButtonPress] = buttonpress,
[ConfigureRequest] = configurerequest,
[ConfigureNotify] = configurenotify,
[DestroyNotify] = destroynotify,
[EnterNotify] = enternotify,
[LeaveNotify] = leavenotify,
[Expose] = expose,
[KeyPress] = keypress,
[MappingNotify] = mappingnotify,
[MapRequest] = maprequest,
[PropertyNotify] = propertynotify,
[UnmapNotify] = unmapnotify
};
Atom wmatom[WMLast], netatom[NetLast];
Bool otherwm, readin;
Bool running = True;
Bool selscreen = True;
Client *clients = NULL;
Client *sel = NULL;
Client *stack = NULL;
Cursor cursor[CurLast];
Display *dpy;
DC dc = {0};
Window barwin, root;
Regs *regs = NULL;
/* configuration, allows nested code to access above variables */
#include "config.h"
/* Statically define the number of tags. */
unsigned int ntags = sizeof tags / sizeof tags[0];
Bool seltags[sizeof tags / sizeof tags[0]] = {[0] = True};
Bool prevtags[sizeof tags / sizeof tags[0]] = {[0] = True};