Need help to create a french illume keyboard

Helge Hafting helge.hafting at hist.no
Mon Jan 5 15:18:01 CET 2009


Xavier Cremaschi wrote:
> Hi all,
> 
> I am currently looking at keyboards layout in
>      /usr/lib/enlightenment/modules/illume/keyboards/
> 
> The syntax seems simple :
> key x  y  w  h
>    normal   ' apostrophe
>    shift    " quotedbl
>    capslock ' apostrophe
> 
> But I cannot find any doc/blog/thread/keyboard with "composing features" 
> in it.
> 
There is composition for ` ' ^ " ~ as well as some others.
This is achieved via "dead keys", press the ^ key first (nothing
happens) then press o, and you get an ô. similiar for all the others. 
(`'^"~) If you want a ^ sign without a vowel under it, press the ^
followed by space.

Example of such a key:
key 375  30  30  30
   normal   " dead_diaeresis
   shift    ^ dead_circumflex
   capslock ~ dead_tilde

For a complete example, take a look at:
http://www.aitel.hist.no/~helgehaf/openmoko/
Here you find a Norwegian keyboard, with these 5 dead keys: ^"~`'
You can download a package, or just the Norwegian.kbd file.
Feel free to use it as a starting point for other languages.

> I need to put "few" big keys (for fingers, not stylus).
If you need a bigger key, use the "w" and "h" you mention above.
Look at the Terminal keyboard. The spacebar is wider because
it has a bigger "w" setting.

> I also need to write in French or Spanish so I need to easily write any 
> combination of aeiou (respectively AEIOU) and ´`^¨ (and also Ñ ñ Ç ç...)
> 
The Norwegian keyboard provides examples for Ñ and ñ.
I think you need to use dead_cedilla to get Ç and ç, unless you
want to create a key just for the ç.

To find _all_ the symbols, special keys and dead keys possible, try
strings /usr/lib/libX11.so.6 | less
There will be lots of uninteresting output too, look for stuff
that look like key names. Or pipe it all to a file, and search
the file later.

Perhaps there are other ways of composing as well. The dead key
approach is easy to learn though.

> On my computers I usually use QWERTY keyboard with "US International", 
> which gives powerful composing possibilities to the user, see :
>      http://www.cs.umu.se/~hegner/Misc/Windowskb/windows0x.png
> 
> Therefore I would like to create this kind of key :
> key x  y  w  h
>    normal   e "e"
>    shift    E "E"
>    diacritic1 é "é"
>    diacritic2 è "è"
>    diacritic3 ê "ê"
>    shift+diacritic1 É "É"
>    shift+diacritic2 È "È"
>    shift+diacritic3 Ê "Ê"
> etc

You don't need to change anything for the "e" key to get this.
If you add dead keys for `'^, then you will get èéê automatically, and
the same for all other vowels as well.

> 
> I would like :
> - to have 3 or 4 toggles that would modify the key layout and behaviour 
> (like the weel-known shift key that e->E or E->e)

So far I only found three shift states that can
be specified freely:
* normal (no shift)
* shift
* caps
It'd be interesting to know if there are more, then I could have
the euro sign in its proper place instead of a capslock kludge.


> - or to have one super "shift" key with multiple states, which would 
> cycle between 4 or 5 states, for example normal_keyboard, ´_keyboard, 
> `_keyboard, ^_keyboard

Dead keys gives you `_keyboard, '_keyboard, "_keyboard, ^_keyboard, 
~_keyboard, cedille_keyboard and quite a few others. :-) libX11.so
seems to have provisions for 20 different dead keys.

An extra shiftstate could be interesting to get symbols that aren't
merely modifications of ascii letters. Dead keys handle the rest.
I haven't figured out more shiftstates though.

On the other hand, there is always the option of having one or more 
"symbol" keyboards with really special stuff.

Helge Hafting




More information about the community mailing list