};
/* atoms */
-enum { WMProtocols, WMDelete, WMLast };
enum { NetSupported, NetWMName, NetLast };
+enum { WMProtocols, WMDelete, WMLast };
/* cursor */
-enum { CurNormal, CurResize, CurMove, CurInput, CurLast };
+enum { CurNormal, CurResize, CurMove, CurLast };
struct Fnt {
- XFontStruct *xfont;
- XFontSet set;
int ascent;
int descent;
int height;
+ XFontSet set;
+ XFontStruct *xfont;
};
struct DC { /* draw context */
- GC gc;
- Drawable drawable;
int x, y, w, h;
- Fnt font;
unsigned long bg;
unsigned long fg;
unsigned long border;
+ Drawable drawable;
+ Fnt font;
+ GC gc;
};
struct Client {
unsigned int border;
long flags;
Bool isfloat;
- Window win;
- Window title;
Client *next;
Client *revert;
+ Window win;
+ Window title;
};
struct Rule {
Arg arg;
};
-extern Display *dpy;
-extern Window root, barwin;
-extern Atom wmatom[WMLast], netatom[NetLast];
-extern Cursor cursor[CurLast];
-extern Bool running, issel;
+extern char *tags[TLast], stext[1024];
+extern int tsel, screen, sx, sy, sw, sh, bx, by, bw, bh, mw;
extern void (*handler[LASTEvent])(XEvent *);
extern void (*arrange)(Arg *);
-extern Key key[];
-
-extern int tsel, screen, sx, sy, sw, sh, bx, by, bw, bh, mw;
-extern char *tags[TLast], stext[1024];
-
-extern DC dc;
+extern Atom wmatom[WMLast], netatom[NetLast];
+extern Bool running, issel;
extern Client *clients, *sel;
+extern Cursor cursor[CurLast];
+extern DC dc;
+extern Display *dpy;
+extern Key key[];
+extern Window root, barwin;
/* client.c */
extern void ban(Client *c);
#define ButtonMask (ButtonPressMask | ButtonReleaseMask)
#define MouseMask (ButtonMask | PointerMotionMask)
-/********** CUSTOMIZE **********/
-
+/* CUSTOMIZE */
+const char *browse[] = { "firefox", NULL };
+const char *gimp[] = { "gimp", NULL };
const char *term[] = {
"urxvtc", "-tr", "+sb", "-bg", "black", "-fg", "white", "-cr", "white",
"-fn", "-*-terminus-medium-*-*-*-13-*-*-*-*-*-iso10646-*", NULL
};
-const char *browse[] = { "firefox", NULL };
const char *xlock[] = { "xlock", NULL };
Key key[] = {
/* modifier key function arguments */
- { Mod1Mask, XK_Return, zoom, { 0 } },
- { Mod1Mask, XK_k, focusprev, { 0 } },
- { Mod1Mask, XK_j, focusnext, { 0 } },
- { Mod1Mask, XK_m, maximize, { 0 } },
+ { ControlMask, XK_0, appendtag, { .i = Tscratch } },
+ { ControlMask, XK_1, appendtag, { .i = Tdev } },
+ { ControlMask, XK_2, appendtag, { .i = Twww } },
+ { ControlMask, XK_3, appendtag, { .i = Twork } },
{ Mod1Mask, XK_0, view, { .i = Tscratch } },
{ Mod1Mask, XK_1, view, { .i = Tdev } },
{ Mod1Mask, XK_2, view, { .i = Twww } },
{ Mod1Mask, XK_3, view, { .i = Twork } },
+ { Mod1Mask, XK_j, focusnext, { 0 } },
+ { Mod1Mask, XK_k, focusprev, { 0 } },
+ { Mod1Mask, XK_m, maximize, { 0 } },
{ Mod1Mask, XK_space, dotile, { 0 } },
- { Mod1Mask|ShiftMask, XK_space, dofloat, { 0 } },
+ { Mod1Mask, XK_Return, zoom, { 0 } },
{ Mod1Mask|ShiftMask, XK_0, replacetag, { .i = Tscratch } },
{ Mod1Mask|ShiftMask, XK_1, replacetag, { .i = Tdev } },
{ Mod1Mask|ShiftMask, XK_2, replacetag, { .i = Twww } },
{ Mod1Mask|ShiftMask, XK_3, replacetag, { .i = Twork } },
{ Mod1Mask|ShiftMask, XK_c, killclient, { 0 } },
+ { Mod1Mask|ShiftMask, XK_g, spawn, { .argv = gimp } },
+ { Mod1Mask|ShiftMask, XK_l, spawn, { .argv = xlock } },
{ Mod1Mask|ShiftMask, XK_q, quit, { 0 } },
- { Mod1Mask|ShiftMask, XK_Return, spawn, { .argv = term } },
+ { Mod1Mask|ShiftMask, XK_space, dofloat, { 0 } },
{ Mod1Mask|ShiftMask, XK_w, spawn, { .argv = browse } },
- { Mod1Mask|ShiftMask, XK_l, spawn, { .argv = xlock } },
- { ControlMask, XK_0, appendtag, { .i = Tscratch } },
- { ControlMask, XK_1, appendtag, { .i = Tdev } },
- { ControlMask, XK_2, appendtag, { .i = Twww } },
- { ControlMask, XK_3, appendtag, { .i = Twork } },
+ { Mod1Mask|ShiftMask, XK_Return, spawn, { .argv = term } },
};
-/********** CUSTOMIZE **********/
-
-/* static functions */
+/* static */
static void
movemouse(Client *c)
unmanage(c);
}
-/* extern functions */
+/* extern */
void (*handler[LASTEvent]) (XEvent *) = {
[ButtonPress] = buttonpress,
#include <X11/Xatom.h>
#include <X11/Xproto.h>
-Display *dpy;
-Window root, barwin;
-Atom wmatom[WMLast], netatom[NetLast];
-Cursor cursor[CurLast];
-Bool running = True;
-Bool issel = True;
-
-int tsel = Tdev; /* default tag */
-int screen, sx, sy, sw, sh, bx, by, bw, bh, mw;
-char stext[1024];
-DC dc = {0};
-Client *clients = NULL;
-Client *sel = NULL;
+/* static */
static Bool otherwm;
static int (*xerrorxlib)(Display *, XErrorEvent *);
-/* static functions */
-
static void
cleanup()
{
return -1;
}
-/* extern functions */
+/* extern */
+
+char stext[1024];
+int tsel = Tdev; /* default tag */
+int screen, sx, sy, sw, sh, bx, by, bw, bh, mw;
+Atom wmatom[WMLast], netatom[NetLast];
+Bool running = True;
+Bool issel = True;
+Client *clients = NULL;
+Client *sel = NULL;
+Cursor cursor[CurLast];
+Display *dpy;
+DC dc = {0};
+Window root, barwin;
int
getproto(Window w)
}
/*
- * There's no way to check accesses to destroyed windows, thus
- * those cases are ignored (especially on UnmapNotify's).
- * Other types of errors call Xlib's default error handler, which
- * calls exit().
+ * There's no way to check accesses to destroyed windows, thus those cases are
+ * ignored (especially on UnmapNotify's). Other types of errors call Xlibs
+ * default error handler, which calls exit().
*/
int
xerror(Display *dpy, XErrorEvent *ee)