Began writing a window manager from scratch. Quickly realized that this topic sucks. Java sucks, too. There's too much broken stuff out there. I now understand what people mean by saying, "there's no such thing as a simple window manager". Window managers are inevitably complex if they are to do things -- more or less -- correctly. As for Java: It does not account for X window borders. I mean the plain borders that "simple" WMs like dwm use. That's why menus are misaligned. Moreover, things are NOT automatically fixed if your WM does reparenting. Ugh. I don't think it's entirely Java's fault, though. You see, there's non-reparenting WMs, reparenting WMs, double-reparenting WMs, there's ICCCM, there's EWMH, ... Then there's multi-screen setups and multi- monitor setups. All kinds of weird stuff. I'm not surprised that they don't get it right.