|
|
@@ -25,8 +25,6 @@
|
|
|
*
|
|
|
* To understand everything else, start reading main().
|
|
|
*/
|
|
|
-#include "dwm.h"
|
|
|
-
|
|
|
#include <errno.h>
|
|
|
#include <locale.h>
|
|
|
#include <stdarg.h>
|
|
|
@@ -41,73 +39,17 @@
|
|
|
#include <X11/cursorfont.h>
|
|
|
#include <X11/keysym.h>
|
|
|
#include <X11/Xatom.h>
|
|
|
+#include <X11/Xlib.h>
|
|
|
#include <X11/Xproto.h>
|
|
|
#include <X11/Xutil.h>
|
|
|
|
|
|
+#include "dwm.h"
|
|
|
+
|
|
|
/* macros */
|
|
|
#define BUTTONMASK (ButtonPressMask | ButtonReleaseMask)
|
|
|
#define CLEANMASK(mask) (mask & ~(numlockmask | LockMask))
|
|
|
#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
|
|
|
applyrules(Client *c) {
|
|
|
static char buf[512];
|
|
|
@@ -1032,7 +974,6 @@ quit(const char *arg) {
|
|
|
|
|
|
void
|
|
|
resize(Client *c, int x, int y, int w, int h, Bool sizehints) {
|
|
|
- double dx, dy, max, min, ratio;
|
|
|
XWindowChanges wc;
|
|
|
|
|
|
if(sizehints) {
|