haven/nexgb
Axel Wagner 2104b8fcdf
Export the logger (again)
Just enabling or disabling logging falls short of the power of
interfaces of go. A user is forced to either accept the logging to
stderr in the format defined by xgb or disable logging alltogether. By
exporting the logger, we can actually let the user decide where to log
in what format.
2018-09-08 16:49:18 +02:00
..
bigreq Don't needlessly change source files every time. 2018-09-08 16:49:18 +02:00
composite Don't needlessly change source files every time. 2018-09-08 16:49:18 +02:00
damage Don't needlessly change source files every time. 2018-09-08 16:49:18 +02:00
dpms Don't needlessly change source files every time. 2018-09-08 16:49:18 +02:00
dri2 Padding on a list is on the length of the list. 2018-09-08 16:49:18 +02:00
examples A pathological example for profiling purposes. Use 'make test'. 2018-09-08 16:49:13 +02:00
ge Don't needlessly change source files every time. 2018-09-08 16:49:18 +02:00
glx Don't needlessly change source files every time. 2018-09-08 16:49:18 +02:00
randr Padding on a list is on the length of the list. 2018-09-08 16:49:18 +02:00
record Padding on a list is on the length of the list. 2018-09-08 16:49:18 +02:00
render Padding on a list is on the length of the list. 2018-09-08 16:49:18 +02:00
res Padding on a list is on the length of the list. 2018-09-08 16:49:18 +02:00
screensaver Don't needlessly change source files every time. 2018-09-08 16:49:18 +02:00
shape Don't needlessly change source files every time. 2018-09-08 16:49:18 +02:00
shm Don't needlessly change source files every time. 2018-09-08 16:49:18 +02:00
sync Padding on a list is on the length of the list. 2018-09-08 16:49:18 +02:00
xcmisc Don't needlessly change source files every time. 2018-09-08 16:49:18 +02:00
xevie Padding on a list is on the length of the list. 2018-09-08 16:49:18 +02:00
xf86dri Padding on a list is on the length of the list. 2018-09-08 16:49:18 +02:00
xf86vidmode Padding on a list is on the length of the list. 2018-09-08 16:49:18 +02:00
xfixes Don't needlessly change source files every time. 2018-09-08 16:49:18 +02:00
xgbgen Padding on a list is on the length of the list. 2018-09-08 16:49:18 +02:00
xinerama Padding on a list is on the length of the list. 2018-09-08 16:49:18 +02:00
xinput Padding on a list is on the length of the list. 2018-09-08 16:49:18 +02:00
xprint Padding on a list is on the length of the list. 2018-09-08 16:49:18 +02:00
xproto Padding on a list is on the length of the list. 2018-09-08 16:49:18 +02:00
xselinux Padding on a list is on the length of the list. 2018-09-08 16:49:18 +02:00
xtest Don't needlessly change source files every time. 2018-09-08 16:49:18 +02:00
xv Padding on a list is on the length of the list. 2018-09-08 16:49:18 +02:00
xvmc Padding on a list is on the length of the list. 2018-09-08 16:49:18 +02:00
.gitignore last commit before i tear everything down 2012-04-29 14:09:03 -04:00
AUTHORS initial commit. not currently in a working state. 2012-04-28 23:25:57 -04:00
CONTRIBUTORS initial commit. not currently in a working state. 2012-04-28 23:25:57 -04:00
LICENSE initial commit. not currently in a working state. 2012-04-28 23:25:57 -04:00
Makefile Add rules for installing all packages. 2018-09-08 16:49:14 +02:00
README Tests were move to xproto package a long time ago. Update README. 2018-09-08 16:49:15 +02:00
STYLE Add some style guidelines. 2018-09-08 16:49:07 +02:00
auth.go auth: use encoding.binary 2012-05-28 17:58:32 -05:00
conn.go Export the logger (again) 2018-09-08 16:49:18 +02:00
cookie.go Doc fixes and stop exporting ReplyChecked and ReplyUnchecked 2018-09-08 16:49:15 +02:00
doc.go gofmt 2018-09-08 16:49:16 +02:00
help.go Doc fix. 2018-09-08 16:49:14 +02:00
sync.go docs 2012-05-12 21:36:31 -04:00
xgb.go Export the logger (again) 2018-09-08 16:49:18 +02:00

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