What follows is a writeup of my ideas on how to manage UTF-8
selections under the X Window System. If it is consensual enough, I'd
like something like this to become standard someday. I'd be glad if
you could make sure that it generally makes sense, and that my Unicode
terminology is correct. Discussion may go to this list (I hope nobody
objects), but editorial comments should probably be sent directly to
me.

A little bit of background for people not familiar with X11. A
/client/ is what other systems may call a windowing application.

An /atom/ is a unique ISO 8859-1 string; atoms are used as identifiers
within X11.

A /property/ is a collection of data, attached to a window, and
identified by a /name/ (an atom), a /type/ (another atom) and a
/format/ (8, 16, or 32-bits). Properties are used as the standard
container for data in X11; for example, they are used to hold window
titles.

What other systems call ``cut&paste'', X11 calls /selection
conversion/. Selection conversion obeys a protocol between two
clients, known as the selection owner and the requestor. The
requestor says something like ``I'd like the primary selection ,target
STRING'' (STRING being a standard atom), and the selection owner makes
it available as a property of type STRING.

Note that the target and resulting type need not coincide: the
requestor may ask for target TARGETS, in which case the selection
owner responds with type ATOM (a list of the targets it's willing to
handle). The requestor may ask for TEXT, in which case the selection
owner will reply with STRING (ISO 8859-1 text), COMPOUND_TEXT (ISO 2022
text), but not TEXT.