Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

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.

branch: master

Merge pull request #19 from snyh/master

example/randr: check the GetOutputInfo's mode length (virtual head can h...
latest commit efcb6d44d2
Andrew Gallant authored
Octocat-spinner-32 bigreq Don't needlessly change source files every time. August 11, 2013
Octocat-spinner-32 composite Use consistent extension names. Close #6. December 28, 2013
Octocat-spinner-32 damage When writing, don't pad the length of bytes produced from inner December 28, 2013
Octocat-spinner-32 dpms Don't needlessly change source files every time. August 11, 2013
Octocat-spinner-32 dri2 It appears that the "Str" type (which is built into the core X protocol) December 28, 2013
Octocat-spinner-32 examples examples:randr use info.Connection to detect whether there has any Ra… December 31, 2013
Octocat-spinner-32 ge Use consistent extension names. Close #6. December 28, 2013
Octocat-spinner-32 glx It appears that the "Str" type (which is built into the core X protocol) December 28, 2013
Octocat-spinner-32 randr Use consistent extension names. Close #6. December 28, 2013
Octocat-spinner-32 record When writing, don't pad the length of bytes produced from inner December 28, 2013
Octocat-spinner-32 render When writing, don't pad the length of bytes produced from inner December 28, 2013
Octocat-spinner-32 res Use consistent extension names. Close #6. December 28, 2013
Octocat-spinner-32 screensaver Regenerate xgb with latest XML descriptions. December 28, 2013
Octocat-spinner-32 shape Don't needlessly change source files every time. August 11, 2013
Octocat-spinner-32 shm Regenerate xgb with latest XML descriptions. December 28, 2013
Octocat-spinner-32 xcmisc Don't needlessly change source files every time. August 11, 2013
Octocat-spinner-32 xevie When writing, don't pad the length of bytes produced from inner December 28, 2013
Octocat-spinner-32 xf86dri Use consistent extension names. Close #6. December 28, 2013
Octocat-spinner-32 xf86vidmode Use consistent extension names. Close #6. December 28, 2013
Octocat-spinner-32 xfixes It appears that the "Str" type (which is built into the core X protocol) December 28, 2013
Octocat-spinner-32 xgbgen Use consistent extension names. Close #6. December 28, 2013
Octocat-spinner-32 xinerama Padding on a list is on the length of the list. August 11, 2013
Octocat-spinner-32 xprint Use consistent extension names. Close #6. December 28, 2013
Octocat-spinner-32 xproto It appears that the "Str" type (which is built into the core X protocol) December 28, 2013
Octocat-spinner-32 xselinux Use consistent extension names. Close #6. December 28, 2013
Octocat-spinner-32 xtest Don't needlessly change source files every time. August 11, 2013
Octocat-spinner-32 xv Use consistent extension names. Close #6. December 28, 2013
Octocat-spinner-32 xvmc Use consistent extension names. Close #6. December 28, 2013
Octocat-spinner-32 .gitignore last commit before i tear everything down April 29, 2012
Octocat-spinner-32 AUTHORS initial commit. not currently in a working state. April 28, 2012
Octocat-spinner-32 CONTRIBUTORS initial commit. not currently in a working state. April 28, 2012
Octocat-spinner-32 LICENSE initial commit. not currently in a working state. April 28, 2012
Octocat-spinner-32 Makefile shortcuts for the lazy December 28, 2013
Octocat-spinner-32 README Tests were move to xproto package a long time ago. Update README. October 15, 2012
Octocat-spinner-32 STYLE Add some style guidelines. May 28, 2012
Octocat-spinner-32 auth.go auth: use encoding.binary May 28, 2012
Octocat-spinner-32 conn.go Export the logger (again) August 23, 2013
Octocat-spinner-32 cookie.go Doc fixes and stop exporting ReplyChecked and ReplyUnchecked June 05, 2012
Octocat-spinner-32 doc.go gofmt January 26, 2013
Octocat-spinner-32 help.go Doc fix. June 04, 2012
Octocat-spinner-32 sync.go docs May 12, 2012
Octocat-spinner-32 xgb.go Export the logger (again) August 23, 2013
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
Something went wrong with that request. Please try again.