Discovered that XFree >=4.0.2 includes keysyms for the entirity of Unicode. This isn't really documented anywhere. If X_HAVE_UTF8_STRING is defined, XStringToKeysym on anything looking like U0041 will give you a keysym in the range 0x01000000+unicode value. Assign that to a keycode and Bob's your uncle. Rewrote Dasher to use this in preference to the at-spi code (it'll fall back to using at-spi if X_HAVE_UTF8_STRING isn't defined, but currently it requires CVS at-spi and still doesn't work terribly well), and now I seem to be able to input arbitrary interesting characters into applications if I'm using a UTF8 locale. Hurrah, eh?