No description
  • Go 99.9%
  • Makefile 0.1%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-04-18 19:42:29 +02:00
bigreq BurntSushi/xgb -> jezek/xgb 2017-12-10 18:02:04 +01:00
composite BurntSushi/xgb -> jezek/xgb 2017-12-10 18:02:04 +01:00
damage BurntSushi/xgb -> jezek/xgb 2017-12-10 18:02:04 +01:00
dpms BurntSushi/xgb -> jezek/xgb 2017-12-10 18:02:04 +01:00
dri2 BurntSushi/xgb -> jezek/xgb 2017-12-10 18:02:04 +01:00
examples Fix go test warning 2022-02-16 18:17:22 +01:00
ge BurntSushi/xgb -> jezek/xgb 2017-12-10 18:02:04 +01:00
glx Regenerated from xcb-proto 1.15 2022-10-29 21:45:28 +02:00
randr Regenerated from xcb-proto 1.15 2022-10-29 21:45:28 +02:00
record Regenerated from xcb-proto 1.15 2022-10-29 21:45:28 +02:00
render Regenerated from xcb-proto 1.15 2022-10-29 21:45:28 +02:00
res Regenerated from xcb-proto 1.15 2022-10-29 21:45:28 +02:00
screensaver Regenerated from xcb-proto 1.15 2022-10-29 21:45:28 +02:00
shape BurntSushi/xgb -> jezek/xgb 2017-12-10 18:02:04 +01:00
shm BurntSushi/xgb -> jezek/xgb 2017-12-10 18:02:04 +01:00
xcmisc BurntSushi/xgb -> jezek/xgb 2017-12-10 18:02:04 +01:00
xevie BurntSushi/xgb -> jezek/xgb 2017-12-10 18:02:04 +01:00
xf86dri Regenerated from xcb-proto 1.15 2022-10-29 21:45:28 +02:00
xf86vidmode Regenerated from xcb-proto 1.15 2022-10-29 21:45:28 +02:00
xfixes Regenerated from xcb-proto 1.15 2022-10-29 21:45:28 +02:00
xgbgen Fix log.Fatal call has possible Printf formatting directive %s 2023-11-29 12:34:04 +01:00
xinerama BurntSushi/xgb -> jezek/xgb 2017-12-10 18:02:04 +01:00
xprint Regenerated from xcb-proto 1.15 2022-10-29 21:45:28 +02:00
xproto Regenerated from xcb-proto 1.15 2022-10-29 21:45:28 +02:00
xselinux Regenerated from xcb-proto 1.15 2022-10-29 21:45:28 +02:00
xtest BurntSushi/xgb -> jezek/xgb 2017-12-10 18:02:04 +01:00
xv Regenerated from xcb-proto 1.15 2022-10-29 21:45:28 +02:00
xvmc BurntSushi/xgb -> jezek/xgb 2017-12-10 18:02:04 +01:00
.gitignore Add hex-encoded auth support and documentation 2025-11-06 01:22:49 +03:00
auth.go fix issues based on PR=29 2025-11-09 11:30:15 +03:00
AUTHORS initial commit. not currently in a working state. 2012-04-28 23:25:57 -04:00
conn.go postConnect now treats cookie decode failures as fatal 2025-11-09 19:17:47 +01:00
CONTRIBUTORS initial commit. not currently in a working state. 2012-04-28 23:25:57 -04:00
cookie.go Handle Conn's spawned goroutines upon close, ... 2018-10-27 19:45:25 +02:00
doc.go BurntSushi/xgb -> jezek/xgb 2017-12-10 18:02:04 +01:00
go.mod Add go.mod file 2022-02-16 18:07:02 +01:00
help.go Doc fix. 2012-06-04 23:55:20 -04:00
LICENSE initial commit. not currently in a working state. 2012-04-28 23:25:57 -04:00
Makefile don't rewrite XPROTO if defined in Makefile 2017-12-10 19:00:11 +01:00
README Remove the unmaintained text from README after upstream merge 2021-03-03 16:24:13 +01:00
STYLE Add some style guidelines. 2012-05-28 20:43:03 -04:00
sync.go docs 2012-05-12 21:36:31 -04:00
testing_helpers_test.go Combine testing helpers into testing helpers tests and rename 2026-04-18 19:42:29 +02:00
xgb.go Avoid using defer if we can 2026-01-18 22:13:02 +00:00
xgb_test.go Avoid using defer if we can 2026-01-18 22:13:02 +00:00

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.

This is a fork of github.com/BurntSushi/xgb

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

jezek's Fork
============
I've forked the XGB repository from BurntSushi's github to apply some
patches which caused panics and memory leaks upon close and tests were added,
to test multiple server close scenarios.

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

Godoc documentation can be found here:
https://godoc.org/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