Help

Setup

Features

How Do I...

Trap/Release

Troubleshooting

Key Definition Files (KDFs) - Creating and modifying

This chapter gives you nuts and bolts on the technology of KDFs. It is this feature that allows freedom from specific fonts, specific keyboard layouts and application specific use of language solutions.  

There are two different scenarios here.  

A. One you might want to create a Key Definition File for a language for which you already have a KDF. For example you might have KDF for MeghneelBengali font and wish to create one for Adarshalipi. In such cases you might want to reuse the KDF that you already have, thus reducing the development time for the new KDF. Please note that the new KDF will be using the same concept as the old one.

B. You might want to develop a KDF for a new language like Tamil or Vietnamese. In such cases you will have to create a KDF from scratch. Also if you think that you need to create a KDF based on an entirely different concept for a language like Hindi or Bengali, then too you might want to start clean. 

A - Creating KDF based on another KDF  

The steps are 

1. Right click on the KickKeys Icon and navigate to "Edit" and choose "Edit/Create Key Definition File..." from the menu 

2. Choose "I want to create a new Key Definition File" from the option button, Choose the font, change the KDF file's name if you want to and hit "Next" 

3. Choose "I want to create a KDF based on the existing KDF" option and choose the KDF file that you want to base your KDF on. Hit "Next". 

4. A Font - Mapper form will come up. You will have to match the characters in the right with that of the left. Read the help information at the top of the mapper form. After you are done hit "Next". 

5. A Mapper Result form will come up. Again read the help information at the top and hit "Next". 

6. The KDF editor window will open. Your KDF file is almost ready. You can change it in this Editor window. For detailed help on how to do this please refer to the sections on Joint Characters and Specifying your Keymap.  

B - Creating KDF from scratch 

The steps are 

1. Right click on the KickKeys Icon and navigate to "Edit" and choose "Edit/Create Key Definition File..." from the menu 

2. Choose "I want to create a new Key Definition File" from the option button, Choose the font, change the KDF file's name if you want to and hit "Next" 

3. Choose "I want to create a KDF from scratch". Hit "Next". The KDF editor window will open. Here you will have to choose joint characters and then specify your KDF. 

Joint Characters 

The Editor screen opens with the tab Joint Characters. Now in Hindi and
Bengali we have characters that joins to others. This tab is to specify such
characters. For example in Hindi KKDVNG font (an extension of XDVNG) there is a character
  - g. This character joins with the character : to form a complete character g:.  Now this complete character has to be treated differently in the sense that when you want to put a matra e, you will need to go back two characters and put your matra. Notice that if you had a non-joint character like k  you could go back just one character to put your matra. But with joint characters you need to treat them as a whole. and not like unjoint single characters. As we will see later KickKeys allows intelligent reverse typing - that is when you type ki it can put the i character first and then the k. It is here that the concept of joint characters is needed. If your language does not need reverse typing that you can skip the joint character tab altogether and proceed to the next tab. 

Forward Joint Characters and Reverse Joint Characters

Notice that g joins to the next character : .  So we say g is a forward joining character while  :is a reverse joining character since it joins to the previous one. It should be easy for you to determine whether the character in question joins to the next character or to the previous one. In case of Meghneelengali É is a reverse joining character

Again as a word of caution. Not all languages need this feature. It is only required where you need reverse typing - typing "ki" and getting "ik" on the screen and then too if your font needs you to join multiple glyphs (technical word for single character in the font language) together to form a whole character.  

Specifying your key mappings

Click on the tab "Key Map" on the KDF editor form. This is the tab that specifies all your
mappings. Essentially you tell KickKeys your map through a number of statements like "I want to type (Keys that you want to type_) & Get (Characters that you want to get on the screen)"

For example in Hindi we have a character for gha. So essentially I will say I want to type "gha" and get 
G:
The "I want to type" field is case sensitive. So lets say I want to map "Gha" to another character (not gha), I can do that.

You can map a to z, A to Z, 1 - 0, and punctuation keys. You can't map alt, ctrl, caps lock, Insert, Home, Backspace and other keys like that.

You need to hit "Apply" each time after you have choose a mapping.

Space


Always map space to space by saying I want to type " " and get "click on the word space from upper left hand corner." This is very IMPORTANT. Or else your space key in keyboard will not work.

LastKey

The lower rightmost character is "lastkey". This again has uses in Hindi and Bengali and for other languages that require reverse typing. What it does is it allows you to put  characters before your last typed character. In a sense it allows reverse typing. This feature is used extensively in Hindi and Bengali. An example:

Lets say I want to type i and get the character
e on the screen before whatever was typed in the last character. I will enter a mapping that says I want to type "i" and get "iX" where X stands for last character (click on last character and it will put an X). It can work for any characters. So if you type ki you will get ek and if you type gi you will get eg:. This eliminates the need to map all possible combinations of characters.

Conditions:


Normally you would not require the use of conditions. It can be used for characters which have multiple representations. For example there are more than one type of u's in Hindi. So you want to type "u" and get one if lastchar is some characters. In another mapping you would like to type "u" and get the other u if lastchar is in another set.

Actually you can get away without using conditions by specifying each non standard mapping. You can use different mappings like "I want to type ku and get ku", "I want to type khu and get khu", ... The most common one is mapped like "I want to type u and get u" and the rest are mapped specifically taking care that the correct u goes with the correct letter.

Another condition that you can specify is the PrevKey. LastKey is the last character key that is shown on screen. PrevKey is the character before that. So that in Bengali if you see "ka""kha" on screen and then Kha is the last character and ka is the previous character. We need PrevKey in Bengali where if previous character (not last character) is space then sometimes we need to print a different symbol.

The other conditions that you can specify are the Toggle switches. Toggle1 and Toggle2 are two switches. It Toggles between "set" and "not set". Lets say you have a mapping "I want to type e and get X only when Toggle1 is not set". Then if you type e and Toggle1 is "not set" then you will get an X and Toggle1 will change its state to "set". You can try this out for getting smart quotes in word. You can set it the first time you press quote and it will print opening quote. Next time you can unset it and print closing quote.


© 2001 KickKeys