[Xorg] Revision of keysymdef.h

Markus Kuhn Markus.Kuhn at cl.cam.ac.uk
Mon Aug 9 09:54:42 PDT 2004

Over the years, a number of problems have piled up with <X11/keysymdef.h>,
which I have set out to sort out.

These are in particular:

  - Xfree86 has added since X11R6.4 was released in 1999 and 2000 a large
    number of new macro definitions that are neither in line with the X11
    protocols specification (Appendix A), nor have all of them been
    checked charefully against the Unicode standard.

  - The X11 standard lacks so far an official clarification of the
    relationship between keysyms and Unicode

I have therefore reviewed, which keysyms are actually used in kbd
mapping files and have substantially reworked and cleaned up the <X11/
keysymdef.h> file. The result is available on


The database file that I have prepared to control the changes
made is on


and it contains further background information in the form of
comments and a status column for each keysym.

Quick summary of the changes:

  - I have preserved as newly added keysyms in the range reserved
    for the X11 standard only the following ones, as they are widely used
    now in XFree86 keyboard mapping files:

      0x06ad   Ukrainian_ghe_with_upturn
      0x06bd   Ukrainian_GHE_WITH_UPTURN
      0xfe60   dead_belowdot
      0xfe61   dead_hook
      0xfe62   dead_horn

    These will have to be added to Appendix A of the protocols spec.

  - A large number of Armenian, Gregorian, Irish, Arabic, Cyrillic,
    Caucasus, and Vietnamese keysym macros were added by Pablo Saratxaga
    on 1999-06-06 and 2000-10-27. With a very small number of exotic
    exceptions, none of these keysyms are at present used in any
    XFree86 files.

    As many of them look useful, I have decided to remap them directly
    into the Unicode range by adding 0x01000000 to their Unicode value.
    This way, these keysyms will not have to be added to the X11 standard,
    as they are implicitely defined by ISO 10646.

  - I have also moved the currency symbol in the 0x20xx range
    to the Unicode mapping range, with the exception of the EuroSign,
    which is the only one of these that is actually used in keyboard
    mapping files.

  - I have added as comments to each keysym for which there exists
    a direct or approximate Unicode equivalent the Unicode position
    and name of this character.  

  - Various minor editorial fixes for better consistency, comments
    added that clarify the Unicode mapping rule.

Unless someone shouts with an objection, I will submit these for inclusion
into the X.Org and XFree86 trees soon.

Proposed update to the X11 standard will follow shortly.


Markus Kuhn, Computer Laboratory, University of Cambridge
http://www.cl.cam.ac.uk/~mgk25/ || CB3 0FD, Great Britain

More information about the xorg mailing list