Need help to create a french illume keyboard

Carsten Haitzler (The Rasterman) raster at rasterman.com
Sat Dec 27 01:45:46 CET 2008


On Fri, 26 Dec 2008 18:55:06 +0100 Xavier Cremaschi <omega.xavier at gmail.com>
babbled:

> 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.
> 
> I need to put "few" big keys (for fingers, not stylus).
> I also need to write in French or Spanish so I need to easily write any 
> combination of aeiou (respectively AEIOU) and ´`^¨ (and also Ñ ñ Ç ç...)
> 
> 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
> 
> 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)
> - 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
> 
> 
> Till now I have found shift and capslock, I would like to know how I can 
> create new states and how I can combine them.
> 
> If it is not possible, maybe I can put X in us international but :
>      setxbmap us_intl
> can't work because setxkbmap does not seem to be packaged
> And the problem with this solution is the lack of graphical stuff, the 
> user will have to KNOW that ' is a composing key and that he has to type 
> ' + c to make a ç
> 
> Thanks in advance for any kind of help.
> Xavier Cremaschi.

as such composing is not supported. the intent is for the dictionary to make
that much easier - for disctionary words it decimates:

é -> e
è -> e
ö -> o
ñ -> n
etc. - that means you just type "n" and this can match n,N,ñ,Ñ etc. (think
strcasecmp - but a wider range).

so this means you can dumbly type in basic latin text and it will fill in the
accents for you in the possible matches. this should almost always be
faster and less toublesome that the mountains of composition combinations. for
when it isn't in the dict (a name for example of a place or person) then there
is the "numbers" layout that lets you put all the accented chars you like there
- complete.

so that's how it works NOW. so it's possible to enter - you just need to add
chars to your default .kbd layout if you must have them, for the occasion you
MUST enter something not in the dictionary (remember it learns so you only have
to enter it once), then you need to flip to some alternate .kbd with all the
accents.

adding composure modes will start to complicate things - and this becomes
specific for european languages. i want to pursue a more generic approach that
also covers asian languages (and if you complain about dict matching to fill in
the accents for you - learn an asian language like japanese one day and try use
the input methods - anything you type may match dozens or more output words.
oddly enough they cope very well with such input).

the dict approach keeps the kbd logic simple and moves the logic to the
dictionary where such complexity can be overcome just by more input data
without cluttering the kbd up with yet more keys (like a compose key and accent
keys etc.). remember the illume kbd is meant to be a generic usable kbd for
most occasions. of course i accept patches - but i'd prefer to keep it simple,
not overcomplicate it if a simpler solution is available (eg via the
dictionary).

-- 
------------- Codito, ergo sum - "I code, therefore I am" --------------
The Rasterman (Carsten Haitzler)    raster at rasterman.com





More information about the community mailing list