+----------------------------------------------------------------------------+
|                                                                            |
| the basics                                                                 |
|                                                                            |
+----------------------------------------------------------------------------+

your best friend is xmbfed. open the unicode font that is in
$QT_DIR/lib/fonts/unifont.bdf and search for the characters you want to input. 
in the keymap file, the columns are...

+--- row number (there are 5 rows)
| +- qcode (used for special chars like enter, escape, etc...)
| |
v v
1 0         0x36    2
            ^       ^
            |       |
            |       +---- width of key (default key should be 2)
            +--- the unicode value (the one you see in xmbded)

so, lets say you want to edit the 5th key on the 2nd row. find the 5th line
that starts with 2, and replace the 3rd column with the code you found in 
xmbdfed. save the file and test it out by selecting another map, and
selecting the one you are editing again.

it worked, right?  if all you see is a square in its place, that means your
default font doesn't have that char. go to appearance and change the font to
one that has that char.

and if you want, you can have an image as the label instead of the char itself.
just draw the xpm image in gimp or something, save it, open it in your text
editor, cut off all the surrounding stuff and leave only the stuff between the
" chars. place that after your key definition. not too hard, right? one thing
about this is you cant use xpm images for shift or any other meta keys.

+----------------------------------------------------------------------------+
|                                                                            |
| shift and meta keys                                                        |
|                                                                            |
+----------------------------------------------------------------------------+

about shift and meta characters. to place chars in the shift map, the line
should consist of two columns. the non-shifted char and the shifted char. for
example. 

0x71   0x51

so, 0x71 (q)  shifted is 0x51 (Q). 

and now for meta chars. the reason why you have this feature is because of
languages like german, where you can hold down the meta (alt-gr) key and enter
in other special characters. it's like having a second shift. to add chars to
this map, you do the following.

m 0x71  0x31

here, if you hold down meta and hit the 0x71 (q) key, 0x31 (1) would be input.
get it? and one more thing about meta keys and shifting at the same time. if
you wanted the above key to shift while meta is held down, just add the
original shifted key to the meta map, like this.

m 0x51 0x7e

here if you hit meta and then shift, you would get 0x7e (!).

+----------------------------------------------------------------------------+
|                                                                            |
| circumflex and diaeresis                                                   |
|                                                                            |
+----------------------------------------------------------------------------+

just in case you use french, there are also maps for circumflex chars and
diaeresis. for example...

2 0         0x69    2
0x69  0x49
c 0x69 0xee
d 0x69 0xef

this would define an 'i' with a shift, circumflex, and a diaeresis definition.
to shift the circumflex and diaeresis keys, do the same as you would with a
meta key. add the orignal key shifted to the circumflex and diaeresis maps.

c 0x49 0xce
d 0x49 0xcf

+----------------------------------------------------------------------------+
|                                                                            |
| special keys                                                               |
|                                                                            |
+----------------------------------------------------------------------------+

to define special keys like the meta key, circumflex or diaeresis keys, here
is what you should use.

5 0x1030    0       2 # opens config dialog
5 0x1022    0       3 # meta
2 0         0x2c6   2 # circumflex
0x2c6       0xa8      # diaeresis

if you have problems, suggestions, or just want to tell me something, you can
contact me at jake at asdfnews.org

jake richardson
