The X Go Binding is a low-level API to communicate with the X server. It is modeled on XCB and supports many X extensions.
Go Makefile
Latest commit 27f1227 May 22, 2016 @BurntSushi Merge pull request #37 from rabinv/fix-randr-printf
Remove stray format char in randr example
Failed to load latest commit information.
bigreq Read/Write mutex for Extensions map Mar 21, 2016
composite Read/Write mutex for Extensions map Mar 21, 2016
damage Read/Write mutex for Extensions map Mar 21, 2016
dpms Read/Write mutex for Extensions map Mar 21, 2016
dri2 Read/Write mutex for Extensions map Mar 21, 2016
examples Remove stray format char in randr example May 22, 2016
ge Read/Write mutex for Extensions map Mar 21, 2016
glx Read/Write mutex for Extensions map Mar 21, 2016
randr Read/Write mutex for Extensions map Mar 21, 2016
record Read/Write mutex for Extensions map Mar 21, 2016
render Read/Write mutex for Extensions map Mar 21, 2016
res fix structs with field name of 'Bytes' Mar 29, 2016
screensaver Read/Write mutex for Extensions map Mar 21, 2016
shape Read/Write mutex for Extensions map Mar 21, 2016
shm Read/Write mutex for Extensions map Mar 21, 2016
xcmisc Read/Write mutex for Extensions map Mar 21, 2016
xevie Read/Write mutex for Extensions map Mar 21, 2016
xf86dri Read/Write mutex for Extensions map Mar 21, 2016
xf86vidmode Read/Write mutex for Extensions map Mar 21, 2016
xfixes Read/Write mutex for Extensions map Mar 21, 2016
xgbgen fix structs with field name of 'Bytes' Mar 29, 2016
xinerama Read/Write mutex for Extensions map Mar 21, 2016
xprint Read/Write mutex for Extensions map Mar 21, 2016
xproto Read/Write mutex for Extensions map Mar 21, 2016
xselinux Read/Write mutex for Extensions map Mar 21, 2016
xtest Read/Write mutex for Extensions map Mar 21, 2016
xv Read/Write mutex for Extensions map Mar 21, 2016
xvmc Read/Write mutex for Extensions map Mar 21, 2016
.gitignore last commit before i tear everything down Apr 29, 2012
AUTHORS initial commit. not currently in a working state. Apr 29, 2012
CONTRIBUTORS initial commit. not currently in a working state. Apr 29, 2012
LICENSE initial commit. not currently in a working state. Apr 29, 2012
Makefile shortcuts for the lazy Dec 28, 2013
README Tests were move to xproto package a long time ago. Update README. Oct 15, 2012
STYLE Add some style guidelines. May 29, 2012
auth.go fix structs with field name of 'Bytes' Mar 29, 2016
conn.go add a new api: NewConnNet Feb 22, 2015
cookie.go Remove panics/fatal errors. Apr 26, 2015
doc.go gofmt Jan 26, 2013
help.go Doc fix. Jun 5, 2012
sync.go docs May 13, 2012
xgb.go fix structs with field name of 'Bytes' Mar 29, 2016

README

XGB is the X Go Binding, which is a low-level API to communicate with the
core X protocol and many of the X extensions. It is closely modeled after
XCB and xpyb.

It is thread safe and gets immediate improvement from parallelism when
GOMAXPROCS > 1. (See the benchmarks in xproto/xproto_test.go for evidence.)

Please see doc.go for more info.

Note that unless you know you need XGB, you can probably make your life
easier by using a slightly higher level library: xgbutil.

Quick Usage
===========
go get github.com/BurntSushi/xgb
go run go/path/src/github.com/BurntSushi/xgb/examples/create-window/main.go

BurntSushi's Fork
=================
I've forked the XGB repository from Google Code due to inactivty upstream.

Godoc documentation can be found here:
http://godoc.burntsushi.net/pkg/github.com/BurntSushi/xgb/

Much of the code has been rewritten in an effort to support thread safety
and multiple extensions. Namely, go_client.py has been thrown away in favor
of an xgbgen package.

The biggest parts that *haven't* been rewritten by me are the connection and
authentication handshakes. They're inherently messy, and there's really no
reason to re-work them. The rest of XGB has been completely rewritten.

I like to release my code under the WTFPL, but since I'm starting with someone
else's work, I'm leaving the original license/contributor/author information
in tact.

I suppose I can legitimately release xgbgen under the WTFPL. To be fair, it is
at least as complex as XGB itself. *sigh*

What follows is the original README:

XGB README
==========
XGB is the X protocol Go language Binding.

It is the Go equivalent of XCB, the X protocol C-language Binding
(http://xcb.freedesktop.org/).

Unless otherwise noted, the XGB source files are distributed
under the BSD-style license found in the LICENSE file.

Contributions should follow the same procedure as for the Go project:
http://golang.org/doc/contribute.html