CLX is an X11 client library for Common Lisp. The code was originally taken from a CMUCL distribution, was modified somewhat in order to make it compile and run under SBCL, then a selection of patches were added from other CLXes around the net.
- SHAPE extension support (Gilbert Baumann)
- XFREE86-VIDMODE extension support (Iban Hatchondo)
- experimental RENDER extension support (Gilbert Baumann and Christian Sunesson)
- X authority support that works with ssh forwarding (Eric Marsden via CMUCL)
- OPEN-DEFAULT-DISPLAY function which, as the name suggests, does that (dan)
- various bug fixes (Iban Hatchondo and a cast of several)
- a manual in texinfo format (Shawn Betts, Gilbert Baumann)
CLX should work with SBCL, CCL, ECL and CLISP. If it doesn't please submit an issue along with the version information of your implementation.
Allegro Common Lisp users should use clx version maintained by Franz Inc., which can be found at https://github.com/franzinc/clx
(ql:quickload 'clx)
To load demos and tests as well:
(ql:quickload 'clx/demo)
or if you want to use the latest version from git, clone this repository to
your local-project and use quickload
as described above
cd ~/quicklisp/local-projects/
git clone git://github.com/sharplispers/clx.git
If you don't have quicklisp installed you can use ASDF to load CLX. To do so clone this repository to either:
~/common-lisp
~/.local/share/common-lisp/source/.
where ASDF will look for system definitions by default
and then on the lisp REPL type
(require 'asdf)
(asdf:load-system 'clx)
If you want to load clx from another location you have to first tell ASDF to look in that directory by adding the directory to ASDF's central registry on every session.
(require 'asdf)
(push "/path/to/the/clx/directory/" asdf:*central-registry*) ; Mind the trailing slash, it is important.
(asdf:load-system 'clx)
or you can configure ASDF to look in your directory as described in the ASDF Manual
To load demo and test files as well:
(asdf:load-system 'clx/demo)
To test CLX (and get a small amount of Lisp advocacy), try loading the file "demo/menu", and then executing the function xlib::just-say-lisp.
(load "clx/demo/menu")
(xlib::just-say-lisp)
Note: If you're new to Lisp, be advised that despite the examples in demo/, it's generally /not/ considered good style to switch to the :xlib package and write your code in it. Spend some time with a language reference to familiarize yourself with USE-PACKAGE, or better yet, the USE option to DEFPACKAGE.
An up to date version of the manual can be found at sharplispers.github.io/clx
#Bug reports, new features, patches
Please use github to track issues:
To contribute submit a pull request
To report bugs, request features, etc please use the github issue tracker
Heavy lifting by <Raymond.Wiker at fast.no> ASDFized version by Daniel Barlow and Christophe Rhodes
The sharplispers group on github have recently (November 2011) "adopted" clx and maintain the version that lives at: