shyrobbiani / x-go-binding

Automatically exported from code.google.com/p/x-go-binding
Other
0 stars 0 forks source link

Roadmap? #8

Open GoogleCodeExporter opened 8 years ago

GoogleCodeExporter commented 8 years ago
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