I was wondering if there was a planned road map for this project? Is it still
alive?
At some point, I'd like to develop yet another window manager with Go (sounds
like fun), and xgb will have to be its crux. If this project is dead, I'd be
happy to maintain it.
Here are a few ideas that I have:
1) Find a way to combine sendRequest and sendBytes so that request lengths can
be automatically computed. This simplifies weird exceptions like ChangeProperty
requests in which the "data_len" field doesn't correspond to bytes. (But
rather, format units.)
2) Add support for extensions. (Shape, Render, Damage, Composite, etc...)
3) Compute Xauth protocol information when a ~/.Xauthority file is not present.
Right now, xgb dies. (Xlib and XCB do this, but it appears complex.)
4) go_client.py could probably use some cleaning up. Especially some PEP8 love.
5) xgb, unlike its siblings xpyb and xcb, does not allow for issuing multiple
requests in one batch. Namely, in each protocol request function in xproto.go,
the requests are wrapped in calls to 'waitForReply'. This forces each protocol
request to block and wait for a reply. One of the key features of XCB is that
you shouldn't have to do this. Although waiting and blocking for a reply is
probably the most frequent use case, xgb currently disallows something like
this completely:
// Issue a bunch of requests, but don't ask for replies
req[0] = InternAtom("Some atom...")
req[1] = InternAtom("Some atom...")
.
.
req[n] = InternAtom("Some atom...")
// Now get the replies
resp := make([]InternAtomReply, n)
for i, r := range req {
resp[i] = r.reply()
}
Where some 'reply()' method would be defined on the InternAtomCookie type.
(Where we would need a new Cookie type for each request. This is how xpyb does
it.)
6) There are also several issues that need attention: 1, 2, 5 and 7.
Thanks!
Original issue reported on code.google.com by jamslam@gmail.com on 25 Feb 2012 at 4:01
Original issue reported on code.google.com by
jamslam@gmail.com
on 25 Feb 2012 at 4:01