before leaning things up

This commit is contained in:
Anselm R. Garbe
2006-07-13 01:04:38 +02:00
parent b1701adf75
commit da2bbd371c
9 changed files with 151 additions and 113 deletions

51
wm.c
View File

@ -18,15 +18,39 @@
#include "wm.h"
/********** CUSTOMIZE **********/
char *tags[TLast] = {
[Tscratch] = "scratch",
[Tdev] = "dev",
[Tirc] = "irc",
[Twww] = "www",
[Twork] = "work",
};
/* commands */
static char *cmdwallpaper[] = {
"feh", "--bg-scale", "/home/garbeam/wallpaper/bg.jpg", NULL
};
static char *cmdstatus[] = {
"sh", "-c", "echo -n `date '+%Y-%m-%d %H:%M'`"
" `uptime | sed 's/.*://; s/,//g'`"
" `acpi | awk '{print $4}' | sed 's/,//'`", NULL
};
/********** CUSTOMIZE **********/
/* X structs */
Display *dpy;
Window root, barwin;
Atom wm_atom[WMLast], net_atom[NetLast];
Cursor cursor[CurLast];
Bool running = True;
Bool sel_screen;
Bool issel;
char statustext[1024], tag[256];
char stext[1024];
int tsel = Tdev; /* default tag */
int screen, sx, sy, sw, sh, bx, by, bw, bh;
Brush brush = {0};
@ -34,21 +58,12 @@ Client *clients = NULL;
Client *stack = NULL;
static Bool other_wm_running;
static const char version[] = "gridwm - " VERSION ", (C)opyright MMVI Anselm R. Garbe\n";
static const char version[] =
"gridwm - " VERSION ", (C)opyright MMVI Anselm R. Garbe\n";
static int (*x_error_handler) (Display *, XErrorEvent *);
static const char *status[] = {
"sh", "-c", "echo -n `date '+%Y-%m-%d %H:%M'`"
" `uptime | sed 's/.*://; s/,//g'`"
" `acpi | awk '{print $4}' | sed 's/,//'`", 0
};
static void
usage()
{
fputs("usage: gridwm [-v]\n", stderr);
exit(1);
}
usage() { error("usage: gridwm [-v]\n"); }
static void
scan_wins()
@ -230,10 +245,11 @@ main(int argc, char *argv[])
if(other_wm_running)
error("gridwm: another window manager is already running\n");
spawn(dpy, cmdwallpaper);
sx = sy = 0;
sw = DisplayWidth(dpy, screen);
sh = DisplayHeight(dpy, screen);
sel_screen = XQueryPointer(dpy, root, &w, &w, &i, &i, &i, &i, &mask);
issel = XQueryPointer(dpy, root, &w, &w, &i, &i, &i, &i, &mask);
XSetErrorHandler(0);
x_error_handler = XSetErrorHandler(error_handler);
@ -275,7 +291,7 @@ main(int argc, char *argv[])
brush.drawable = XCreatePixmap(dpy, root, sw, bh, DefaultDepth(dpy, screen));
brush.gc = XCreateGC(dpy, root, 0, 0);
pipe_spawn(statustext, sizeof(statustext), dpy, (char **)status);
pipe_spawn(stext, sizeof(stext), dpy, cmdstatus);
draw_bar();
wa.event_mask = SubstructureRedirectMask | EnterWindowMask \
@ -283,6 +299,7 @@ main(int argc, char *argv[])
wa.cursor = cursor[CurNormal];
XChangeWindowAttributes(dpy, root, CWEventMask | CWCursor, &wa);
arrange = grid;
scan_wins();
while(running) {
@ -298,7 +315,7 @@ main(int argc, char *argv[])
if(select(ConnectionNumber(dpy) + 1, &fds, NULL, NULL, &t) > 0)
continue;
else if(errno != EINTR) {
pipe_spawn(statustext, sizeof(statustext), dpy, (char **)status);
pipe_spawn(stext, sizeof(stext), dpy, cmdstatus);
draw_bar();
}
}