diff -r 3dc58ef90490 lsw.c
--- a/lsw.c	Tue Oct 17 09:30:06 2006 +0200
+++ b/lsw.c	Sat Apr 17 01:04:18 2010 +0000
@@ -11,7 +11,6 @@
 static char buf[1024];
 static Atom netwmname;
 static Display *dpy;
-static Window root;
 
 static void
 getname(Window w) {
@@ -44,18 +43,22 @@
 	unsigned int i, num;
 	Window *wins, d1, d2;
 	XWindowAttributes wa;
+	Window win = 0;
 
 	if((argc > 1) && !strncmp(argv[1], "-v", 3)) {
 		fputs("lsw-"VERSION", (C)opyright MMVI Anselm R. Garbe\n", stdout);
 		exit(EXIT_SUCCESS);
 	}
+	else if(argc == 2)
+		win = atoi(argv[1]);
 	if(!(dpy = XOpenDisplay(0))) {
 		fputs("lsw: cannot open display\n", stderr);
 		exit(EXIT_FAILURE);
 	}
-	root = RootWindow(dpy, DefaultScreen(dpy));
+	if(!win)
+		win = RootWindow(dpy, DefaultScreen(dpy));
 	netwmname = XInternAtom(dpy, "_NET_WM_NAME", False);
-	if(XQueryTree(dpy, root, &d1, &d2, &wins, &num)) {
+	if(XQueryTree(dpy, win, &d1, &d2, &wins, &num)) {
 		for(i = 0; i < num; i++) {
 			if(!XGetWindowAttributes(dpy, wins[i], &wa))
 				continue;
