[comp.windows.x] Guidelines for adding KeySyms?

eli@zgavva.ima.isc.com (Elias Israel) (04/12/90)

I need some advice on how best to accommodate a somewhat unusual
keyboard without breaking things. I hope someone can tell me what the
"politically correct" method of doing this might be.

The scenario:

I have a client who uses SUN 3/60's but substitutes a special keyboard
for the normal one shipped with the machine. The special keyboard has an
additional 40 (yep, forty) function keys across the top. Aside from that
however, it behaves like a normal sun keyboard (well, almost. Some of
the keys have different positions and/or engravings, but the scan codes
are all the same). They need to be able to handle these additional 40
keys. The scan codes for these keys come through just fine, but we need
to assign keysyms to them.

Naturally, I want to create an XKeysymDB file (in "/usr/lib/X11") to
define the additional keysyms, thereby keeping the external header files pure.

Here's my question: What, if anything, is the "approved" method of
coming up with values for these keysyms. There appears to be some
mention of turning the 29th bit on, but I can't seem to determine if
this is for registered or unregistered vendor-specific keysyms.

If these keysyms are just for nameless function keys, should they be
registered, or doesn't it matter in that case?

If the 29th bit is to be turned on, is it proper to have byte 3 == 0xFF
or should some new sequence be used? If the former, is it OK to have the
lower 16 bits of the new keysyms clash with existing keysyms in the Misc
set as long as the upper 16 bits don't?

Basically, what guidelines should I keep in mind so that I don't mess up
my client's ability to do this in at least a semi-standard fashion.

TIA.

Elias Israel              | "Justice, n. A commodity which in more
Interactive Systems Corp. | or less adulterated condition the State
Boston, MA                | sells to the citizen as a reward for his
eli@ima.ima.isc.com       | allegiance, taxes, and personal service."
			  |   -- Ambrose Bierce, The Devil's Dictionary

rws@EXPO.LCS.MIT.EDU (Bob Scheifler) (04/13/90)

    There appears to be some
    mention of turning the 29th bit on, but I can't seem to determine if
    this is for registered or unregistered vendor-specific keysyms.

The 29th bit is for private keysyms, whether registered or not.

    If these keysyms are just for nameless function keys, should they be
    registered, or doesn't it matter in that case?

If you want to encourage other companies with similar function keys
to use the same keysym values, or you want to attempt to ensure that
other companies won't use the same values for different semantics,
then you should register the keysyms.

    If the 29th bit is to be turned on, is it proper to have byte 3 == 0xFF
    or should some new sequence be used? If the former, is it OK to have the
    lower 16 bits of the new keysyms clash with existing keysyms in the Misc
    set as long as the upper 16 bits don't?

Private is private, the bits are your business.