SOK

Henrik Nilsen Omma henrik at ubuntu.com
Fri May 26 15:14:17 BST 2006


Chris Jones wrote:
> I don't think cairo could be trusted to render an SVG in the same way
> as inkscape.  It's a good idea though and it would be worth having the
> xml layout file svg-like.
Right, so this just shows how little I know about Cairo and SVG :)

Looking at the GOK keyboard files, I see that the XML markup is fairly 
wordy (like /usr/share/gok/keyboard.kbd) and there are _very many_ 
files. Layout and content seems to be mixed.

I wonder if we could split the definitions into 2 or 3 layers?

1. Keycodes and glyphs:
 - a table that links keycodes with letters in all languages - this 
obviously exists already in the form of some UTF-8 lookup table or 
something.

2. Local keyboard layouts
 - This defines the way that keys normally appears on a keyboard. 
Clearly definition files of this exist already as well, that we can hook 
into.

3. Layout files. This would be a very simple file that ties a key code 
to a spatial location, and this file should be fairly easy to edit for 
those who want to make custom keyboards. It would contain a combination 
of standard key references and custom buttons (like Exit).

So the 3rd file might look something like:

101= ck_esc
201= sk_q
202 = sk_w
203 = sk_e
301 = ck_space

Here 'ck' is custom-key and 'sk' is standard key, each defined in their 
own files. sk_q refers to the letter that normally appears in the 'Q' 
position on an English keyboard (on some keyboards z and y are swapped 
or whatever).

The numbers 1001, links to a layout file where the exact coordinates are 
defined, along the lines that you mentioned. There can be several such 
'lines' in a single keyboard, grouping the numbers in 100s just makes it 
easier to keep them organised.

Does that make sense?

- Henrik




More information about the Ubuntu-accessibility mailing list