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

_______________________________________________
Openmoko community mailing list
community@lists.openmoko.org
http://lists.openmoko.org/mailman/listinfo/community

Reply via email to