Outdated egg!

This is an egg for CHICKEN 4, the unsupported old release. You're almost certainly looking for the CHICKEN 5 version of this egg, if it exists.

If it does not exist, there may be equivalent functionality provided by another egg; have a look at the egg index. Otherwise, please consider porting this egg to the current version of CHICKEN.


  1. Outdated egg!
  2. xlib-utils
  3. Description
  4. Authors
  5. Requirements
    1. Chicken Eggs
    2. C Headers
  6. API
    1. xcontext
    2. events
    3. screens
    4. properties
    5. desktops
  7. Examples
  8. License
  9. Version History


Grab-bag of utilities for use with the xlib egg. This includes a set of procedures for working with X properties, events, and EWMH desktops, as well as a datatype called xcontext, which is a way to package up a display, a screen, a xinerama-screen, and a window into a single convenient record.

For bug reports, feature requests, and development versions, visit the bitbucket project page.



Chicken Eggs

C Headers



[procedure] (make-xcontext) => xcontext
[procedure] (make-xcontext . keywords) => xcontext
[procedure] (make-xcontext xc . keywords) => xcontext
[procedure] (xcontext? xc) => bool
[procedure] (xcontext-display xc) => display or #f
[procedure] (xcontext-screen xc) => fixnum or #f
[procedure] (xcontext-xinerama-screen xc) => xinerama-screen-info or #f
[procedure] (xcontext-window xc) => window or #f
[procedure] (xcontext-root xc) => window or #f
[procedure] (xcontext-data xc) => object
[procedure] (xcontext-data-set! xc object) => undefined
[procedure] (with-xcontext xc (field...) body...) => body...


[procedure] (add-event-handler! xc event-type mask handler guard) => undefined
[procedure] (handle-event event xcs) => undefined
[procedure] (xclientmessageevent-data-b event) => (fixnum...)
[procedure] (xclientmessageevent-data-s event) => (fixnum...)
[procedure] (xclientmessageevent-data-l event) => (fixnum...)


[procedure] (screen-or-xinerama-screen-height xc) => fixnum
[procedure] (screen-or-xinerama-screen-width xc) => fixnum
[procedure] (screen-or-xinerama-screen-left xc) => fixnum
[procedure] (screen-or-xinerama-screen-top xc) => fixnum


[procedure] (window-property-type) =>
[procedure] (window-property-format) =>
[procedure] (window-property-data) =>
[procedure] (window-property-count) =>
[procedure] (make-atom-property xc atom-name) => window-property
[procedure] (make-number-property number) => window-property
[procedure] (make-numbers-property numbers) => window-property
[procedure] (make-text-property text) => text-property
[procedure] (window-property-set xc key value) => undefined
[procedure] (window-property-append xc key value) => undefined
[procedure] (window-get-string-property display window property) => string or #f
[procedure] (window-get-string-property* xc property) => string or #f
[procedure] (set-wm-protocols xc syms) => undefined
[procedure] (active-window-title xc) => string or #f


[procedure] (number-of-desktops xc) => fixnum
[procedure] (desktop-names xc) => (string...)
[procedure] (switch-to-desktop xc desktop-name) => undefined




Version History