diff -uNr evilwm-0.99.25.orig/evilwm.h evilwm-0.99.25/evilwm.h --- evilwm-0.99.25.orig/evilwm.h 2006-04-27 03:53:10.000000000 +0900 +++ evilwm-0.99.25/evilwm.h 2006-05-21 16:45:55.000000000 +0900 @@ -38,7 +38,7 @@ #ifdef DEBIAN #define DEF_TERM "x-terminal-emulator" #else -#define DEF_TERM "xterm" +#define DEF_TERM "gnome-terminal" #endif /* readability stuff */ diff -uNr evilwm-0.99.25.orig/new.c evilwm-0.99.25/new.c --- evilwm-0.99.25.orig/new.c 2006-04-26 03:08:33.000000000 +0900 +++ evilwm-0.99.25/new.c 2006-05-21 16:32:11.000000000 +0900 @@ -26,6 +26,7 @@ Client *c; char *name; XClassHint *class; + int is_desktop = 0; XGrabServer(dpy); @@ -52,14 +53,40 @@ if (name) XFree(name); + { + Atom ajunk; + Atom* prop = 0; + int ijunk; + unsigned long uljunk; + + if (XGetWindowProperty(dpy, w, + XInternAtom(dpy, + "_NET_WM_WINDOW_TYPE", False), + 0l, sizeof(Atom) / 4, False, + XA_ATOM, &ajunk, &ijunk, &uljunk, + &uljunk, + (unsigned char **)(void*)&prop) == Success) { + if (prop && + *prop == XInternAtom(dpy, + "_NET_WM_WINDOW_TYPE_DESKTOP", False)) { + is_desktop = 1; + /* XUngrabServer(dpy); return; */ + } + } + } + c = malloc(sizeof(Client)); /* Don't crash the window manager, just fail the operation. */ if (!c) { LOG_ERROR("out of memory in new_client; limping onward\n"); + XUngrabServer(dpy); /* add */ return; } - c->next = head_client; - head_client = c; + + if (!is_desktop) { + c->next = head_client; + head_client = c; + } c->screen = s; c->window = w; @@ -71,7 +98,7 @@ * X calls to raise an X error and thus flag it for removal. */ XUngrabServer(dpy); - c->border = opt_bw; + c->border = is_desktop ? 0 : opt_bw; init_geometry(c); diff -uNr evilwm-0.99.25.orig/screen.c evilwm-0.99.25/screen.c --- evilwm-0.99.25.orig/screen.c 2006-04-27 03:53:10.000000000 +0900 +++ evilwm-0.99.25/screen.c 2006-05-21 16:45:34.000000000 +0900 @@ -297,6 +297,7 @@ send_config(c); } +#define MARGIN 7 void maximise_client(Client *c, int hv) { if (hv & MAXIMISE_HORZ) { if (c->oldw) { @@ -306,8 +307,8 @@ } else { c->oldx = c->x; c->oldw = c->width; - c->x = 0; - c->width = DisplayWidth(dpy, c->screen->screen); + c->x = 0 + MARGIN; + c->width = DisplayWidth(dpy, c->screen->screen) - (MARGIN * 2); } } if (hv & MAXIMISE_VERT) { @@ -318,8 +319,8 @@ } else { c->oldy = c->y; c->oldh = c->height; - c->y = 0; - c->height = DisplayHeight(dpy, c->screen->screen); + c->y = 0 + MARGIN; + c->height = DisplayHeight(dpy, c->screen->screen) - (MARGIN * 2); } } recalculate_sweep(c, c->x, c->y, c->x + c->width, c->y + c->height);