/* aewm - a minimalistic X11 window manager. ------- vim:sw=4:et * Copyright (c) 1998-2001 Decklin Foster * Free software! Please see README for details and license. */ #include "aewm.h" Display *dpy; Window root; static void scan_wins(void) { unsigned int nwins, i; Window dummyw1, dummyw2, *wins; XWindowAttributes attr; XQueryTree(dpy, root, &dummyw1, &dummyw2, &wins, &nwins); for (i = 0; i < nwins; i++) { XGetWindowAttributes(dpy, wins[i], &attr); if (!attr.override_redirect && attr.map_state == IsViewable) make_new_client(wins[i]); } XFree(wins); } static void setup_display(void) { XSetWindowAttributes sattr; dpy = XOpenDisplay(NULL); if (!dpy) { err("can't open display! check your DISPLAY variable."); exit(1); } XSetErrorHandler(handle_xerror); root = RootWindow(dpy, DefaultScreen(dpy)); sattr.event_mask = SubstructureRedirectMask|SubstructureNotifyMask; XChangeWindowAttributes(dpy, root, CWEventMask, &sattr); } int main() { setup_display(); scan_wins(); do_event_loop(); }