Bug 2693

Summary: African keyboard layouts
Product: xkeyboard-config Reporter: Denis Jacquerye <moyogo>
Component: GeneralAssignee: xkb
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: high CC: simos.bugzilla
Version: unspecified   
Hardware: x86 (IA32)   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:
Bug Depends on: 5497, 5499, 5500, 10193    
Bug Blocks:    
Attachments: African language qwerty keyboard layout
african (bantu) symbols file
add african keyboard layout to xorg.{lst|xml}
xorg.{lst|xml} with African (qwerty and azerty) keyboard
African (qwerty and azerty) keyboard
xorg.{lst|xml} with African (qwerty and azerty) keyboard
patch for rules/xorg.{lst|xml}
Ghana keyboard layout
symbols/cd file

Description Denis Jacquerye 2005-03-10 09:11:53 UTC
There is currently no generic African Keyboard Layout.
Unicode supports most of the needed charactes.
The data available at http://www.bisharat.net/A12N/ can tell you what the
requirements are.
Comment 1 Denis Jacquerye 2005-03-10 09:25:29 UTC
Created attachment 2073 [details]
African language qwerty keyboard layout

based on tables from http://www.bisharat.net/A12N/Projects/#tabl
Comment 2 Roland Mainz 2005-03-11 06:13:07 UTC
(In reply to comment #1)
> Created an attachment (id=2073) [edit]
> African language qwerty keyboard layout

Can you convert this into a patch form (either against X11R6.8.2 or Xorg CVS
trunk), please ?
Comment 3 Denis Jacquerye 2005-03-15 21:01:30 UTC
Sure, I'll produce a patch soon.
Comment 4 Denis Jacquerye 2005-03-29 18:23:49 UTC
Created attachment 2252 [details] [review]
african (bantu) symbols file

here's a patch, diff between /dev/null and the kbd layout file
Comment 5 Denis Jacquerye 2005-03-29 18:24:45 UTC
Created attachment 2253 [details] [review]
add african keyboard layout to xorg.{lst|xml}
Comment 6 Denis Jacquerye 2005-05-21 11:57:08 UTC
Created attachment 2735 [details] [review]
xorg.{lst|xml} with African (qwerty and azerty) keyboard
Comment 7 Denis Jacquerye 2005-05-21 11:59:22 UTC
Created attachment 2736 [details] [review]
African (qwerty and azerty) keyboard

I have some Lingala speakers interested in this.
Could we include this in Xorg?
I'm not sure "African" is the best name for this, even though I've designed
this keyboard to supportlots of latin based african scripts.
Comment 8 Denis Jacquerye 2005-05-23 09:17:01 UTC
Created attachment 2750 [details] [review]
xorg.{lst|xml} with African (qwerty and azerty) keyboard

removed the extre <variant></variant>
Comment 9 Sergey V. Udaltsov 2005-09-12 14:17:33 UTC
Denis, could you please specify the list of languages covered by this layout -
and countries it is intended to be used in? In xkeyboard-config, we put the
stuff on per-country basis whenever possible...
Comment 10 Denis Jacquerye 2005-09-12 23:30:34 UTC
I'll send a less general keyboard. This one is probably not ergonomic for the 
languages I'm not able to deal with.
I'm currently working with a language from the DRCongo and the Congo.

see http://www.bisharat.net/A12N/CONGO-K-table.htm and 
http://www.bisharat.net/A12N/CONGO-B-table.htm
Comment 11 Sergey V. Udaltsov 2005-12-30 11:23:08 UTC
OK, these two patches really make sense to me now.
Just a question - since we are trying to use country-based layouts, would you be
able to tell me which countries these layouts are used in. Actually, I'd be very
happy if you name me one "primary" country - and others, which would just happen
to use the same layouts (so I'd use "include") statments.
I am asking because the name of the layout "african" does not fit well into the
current naming scheme.
Thanks.
Comment 12 Denis Jacquerye 2005-12-30 19:58:06 UTC
We are currently testing variations of the layout for languages spoken in the
Congo (Brazzaville) and the Congo DRC (Kinshasa).
I'm not sure if it's best to commit a keyboard that we might change or to commit
one later.
I'm currently testing one that doesn't use the AltGr key for common characters
used in the Lingala language. It quite tricky actually, there are many languages
in the Congos and not all use the same special latin characters, or do with
different frequencies.

Should we do one general keyboard for the country, with some characters
inconveniently placed for some languages, and do language specific ones for
convenience?
Comment 13 Sergey V. Udaltsov 2005-12-31 09:51:51 UTC
> Should we do one general keyboard for the country, with some characters
> inconveniently placed for some languages, and do language specific ones for
> convenience?
What I would expect is one file for Congo (symbols/cg) which would contain as
many variants as you want (sure there must be one default 'basic' variant). It
would be conformant with our current naming scheme. Does it make sense to you?
Comment 14 Denis Jacquerye 2005-12-31 10:01:37 UTC
(In reply to comment #13)
> > Should we do one general keyboard for the country, with some characters
> > inconveniently placed for some languages, and do language specific ones for
> > convenience?
> What I would expect is one file for Congo (symbols/cg) which would contain as
> many variants as you want (sure there must be one default 'basic' variant). It
> would be conformant with our current naming scheme. Does it make sense to you?
> 
The only real default 'basic' variant is french keyboard (in general), lacking
characters needed for official orthography of many congolese languages (in both
Congos).
This whole thing is sort of a vicious circle. There is no keyboard capable of
typing the required characters in some languages, therefore very few text have
them and thus people assume it is supposed to be that way.
I'll provide a patch for symbols/cd and symbols/cg for a french language
keyboard with the proper characters (allowing accented capitals), I'll get in
touch with other congolese people about the other official languages. 

Thanks
Comment 15 Sergey V. Udaltsov 2005-12-31 10:06:55 UTC
> The only real default 'basic' variant is french keyboard (in general), lacking
> characters needed for official orthography of many congolese languages (in both
> Congos).
I see. This is normal situation - but there should be some default, even if it
does not cover all the needs. Probably, the layout which would match most
popular language in Congo (whatever it is)?

> I'll provide a patch for symbols/cd and symbols/cg for a french language
> keyboard with the proper characters (allowing accented capitals), I'll get in
> touch with other congolese people about the other official languages. 
Thanks a lot, I really appreciate when people seriously take their national
layouts and help me to support and maintain them (or rather help me to help them:).
Comment 16 Denis Jacquerye 2006-01-02 13:35:30 UTC
I just stumbled upon the Nigerian Keyboard layout from the National Information
Technology Develpment Agency of Nigeria [1]. 
This layout allows to type three of the major languages of Nigeria: Hausa, Igbo
and Yoruba.

A few questions so far:
Should the keyboard file be symbols/ng and the label be something like "Hausa,
Igbo and Yoruba"?
How do you associate composed characters like ẹ́ <e,U+0323,U+0301> to a key?

ref:
1: http://www.nitda.gov.ng/projects/kbd/index.php see the pdf file in the zip
file for more info
Comment 17 Sergey V. Udaltsov 2006-01-02 23:16:06 UTC
> A few questions so far:
> Should the keyboard file be symbols/ng and the label be something like "Hausa,
> Igbo and Yoruba"?
Yes it should be "symbols/ng" - but it will be the default layout, the label
would be just "Nigeria".

> How do you associate composed characters like ẹ́ <e,U+0323,U+0301> to a key?
Well, this is beyond the scope of XKB. I think you should consider using the
Input Methods or something... But I actually do not quite understand your
request - looking at the Nigerian keyboard (in the pdf) I see only "normal"
character, nothing funky.
Comment 18 Denis Jacquerye 2006-01-02 23:32:18 UTC
> > How do you associate composed characters like ẹ́ <e,U+0323,U+0301> to a key?
> Well, this is beyond the scope of XKB. I think you should consider using the
> Input Methods or something... But I actually do not quite understand your
> request - looking at the Nigerian keyboard (in the pdf) I see only "normal"
> character, nothing funky.

The composed characters are on page 7 of the Nigerian keybord pdf.
ẹ́ <e,U+0323,U+0301>
ẹ̀ <e,U+0323,U+0302>
ụ́ <u,U+0323,U+0301>
ụ̀ <u,U+0323,U+0302>
ọ́ <o,U+0323,U+0301>
ọ̀ <o,U+0323,U+0302>
and their uppercase variants.

I personnally think an IME is too much hassle for simple character composition
like those required for Yoruba. For comparison, the regular MS Windows keyboard
layout engine is capable of such composition, no advanced IME is required.
XKB should allow for this kind of composition especially since Unicode favorizes
composition instead of new precomposed characters.

See Bug 4575 for the request for feature.
Comment 19 Sergey V. Udaltsov 2006-01-02 23:42:40 UTC
I agree, it would be nice if XKB could do these things - but to the best of my
knowledge, it cannot (right now) without additional things like IM...
Comment 20 Denis Jacquerye 2006-01-03 22:39:17 UTC
Apparently it is possible to compose characters with the a Compose file in
xc/nls/Compose/ but I'm not clear on how to use it in a xkb symbol file. Where
are <asciitilde>, <Cyrillic_ka>, etc. and the like defined?

Maybe we could define something like <edotbelowacute> (ugly) for the
Pan-Nigerian characters. We could add other composed characters required for
other African languages later on.

I've also found keyboard layouts for Ghana at http://kasa.ghanathink.org They
have keyboards for Fula, Bambara and Wolof. Should I make a patch and submit it
here?
Comment 21 Denis Jacquerye 2006-01-03 22:48:58 UTC
Actually Wolof would be suitable for Senegal, the Gambia and Mauritania, what
file should that keyboard layout be in?

Fula is spoken in a large number of West African countries. How should we handle
this? It is spoken in Ghana, so I could include it in xkb/symbols/gh.

Bambara is spoken in Mali, Burkina Faso and Côte d'Ivoire.

There is also a layout for Ga for Ghana: http://kasa.ghanathink.org/node/81
Comment 22 Sergey V. Udaltsov 2006-01-04 10:29:20 UTC
Denis,
for a moment, probably these layouts should be submitted for Ghana only. I
raised the issue in our maillist - regarding similar layouts for multiple countries.
Comment 23 Denis Jacquerye 2006-01-04 13:16:35 UTC
Created attachment 4234 [details] [review]
patch for rules/xorg.{lst|xml}

patch to xorg.xml and xorg.lst to add Ghana keyboard layouts for Akan
languages, Fula, Ga and Hausa.
Comment 24 Denis Jacquerye 2006-01-04 13:19:38 UTC
Created attachment 4235 [details]
Ghana keyboard layout

Keyboard layout file for Akan languages, Ga, Fula and Hausa.
Found at http://kasa.ghanathink.org/locales

There is probably room for improvement for the Fula/Hausa.
There should be a general keyboard layout to support all the languages listed 
http://www.bisharat.net/A12N/GHANA-table.htm with their characters.
Comment 25 Denis Jacquerye 2006-01-04 13:25:36 UTC
Seeing how many languages and countries there are in Africa, I was thinking we
could open a bug per country and keep track of the whole thing here.

Should I go ahead and open bugs for the countries we can deal with so far?
Comment 26 Sergey V. Udaltsov 2006-01-04 20:28:31 UTC
> Should I go ahead and open bugs for the countries we can deal with so far?
I think yeah, it makes sense. The only note: please do not patch
xorg.xml/xorg.lst. The real source file is base.xml.in - while base.xml 
(symlink xorg.xml) and base.lst (symlink xorg.lst) are autogenerated.
Comment 27 Denis Jacquerye 2006-01-04 22:37:43 UTC
Bug 5497 (Ghana), Bug 5499 (Nigeria), Bug 5500 (both Congos) have been opened.

> The only note: please do not patch xorg.xml/xorg.lst. The real source file is
> base.xml.in - while base.xml (symlink xorg.xml) and base.lst (symlink
> xorg.lst) are autogenerated.
Where I find base.xml.in? It is not in my local copy of the xc CVS tree.
I'll provide a cleaner patch for Ghana on Bug 5497 when I can find that file ;-)

I'm thinking of defining a list of composed characters so they can be used by
one single key or with deadkeys.
ex: A keyboard layout with deadkeys would be useful for Lingala;
typing <combing_acute> <opene> -> "ɛ́" <U+025B,U+0301>.
Where can I define <opene> and this kind of composition?
Comment 28 Sergey V. Udaltsov 2006-01-05 09:21:20 UTC
> Where I find base.xml.in? It is not in my local copy of the xc CVS tree.
Oops, you are using wrong tree! The right tree is in xlibs/xkbdesc - that's
where xkeyboard-config is stored. The tree in xc is not supported and officially
declared deprecated.

Regarding the Compose characters - I think this is again worth separate bug(s)
and investigation, since it is outside the scope of xkeyboard-config.
Comment 29 Denis Jacquerye 2006-01-08 11:41:07 UTC
(In reply to comment #28)
> > Where I find base.xml.in? It is not in my local copy of the xc CVS tree.
> Oops, you are using wrong tree! The right tree is in xlibs/xkbdesc - that's
> where xkeyboard-config is stored. The tree in xc is not supported and officially
> declared deprecated.
Thanks, got the correct tree and uploaded a patch and symbols file for Ghana,
others will follow.
 
> Regarding the Compose characters - I think this is again worth separate bug(s)
> and investigation, since it is outside the scope of xkeyboard-config.
Who else is on it?

I'm thinking we could maybe have additions to the list of named characters
(keysyms?) like Aacute, Cyrillic_ka and the likes.
Unicode has http://www.unicode.org/Public/UNIDATA/NamedSequences.txt which is
sort of incomplete, it doesn't contain all the characters I'm dealing with for
Lingala for example and there is not process to add to it. So the best option is
for us to have such a list, add to it over time, and allow xkb to use it in
layout definitions.

Another way is through a Compose file with some kind of locale stuff.
http://malayalamlinux.sourceforge.net/input-methods/
is doing that for "ണ്‍", "ന്‍", etc. Unfortunately it seems to be local specific.

I'll copy this comment to Bug 4575.
Comment 30 Sergey V. Udaltsov 2006-01-08 14:33:14 UTC
> Thanks, got the correct tree and uploaded a patch and symbols file for Ghana,
> others will follow.
Sweet! Just committed it.

> > Regarding the Compose characters - I think this is again worth separate bug(s)
> > and investigation, since it is outside the scope of xkeyboard-config.
> Who else is on it?
I am not sure but I think xorg-arch would be the proper mailing list to raise
the issue (or xorg mailing list). Or #freedesktop channel on IRC.

> I'm thinking we could maybe have additions to the list of named characters
> (keysyms?) like Aacute, Cyrillic_ka and the likes.
Yes, it is definitely a good subject for these mailing lists. The keysymdef.h
file quite possibly needs more characters.

> for us to have such a list, add to it over time, and allow xkb to use it in
> layout definitions.
Of course this is the thing to do - but, as I said, it is up to the xorg
maintainers to define the policy of dealing with new keysyms. xkeyboard-config
just uses what's there, you know;) Since the characters I needed so far are all
already defined - I did not care too much - but I can understand that people may
need more characters...
Comment 31 Benjamin Close 2008-01-11 02:37:31 UTC
Bugzilla Upgrade Mass Bug Change

NEEDSINFO state was removed in Bugzilla 3.x, reopening any bugs previously listed as NEEDSINFO.

  - benjsc
    fd.o Wrangler
Comment 32 Denis Jacquerye 2011-03-19 03:50:58 UTC
Created attachment 44613 [details]
symbols/cd file

Hi,

I've improved the symbols/cd for Congo-Kinshasa (Rep. Dem. of Congo) keyboard layout.
- added U+0152, U+0153 (Œœ ) and U+202F (NARROW NO-BREAK SPACE) needed for French (national language)
- added U+030D (combining diachritic   ̍) used in Standardization of Congolese languages orthographies (1974) to indicate middle tone in some tonal languages.
Comment 33 Sergey V. Udaltsov 2011-03-19 13:03:16 UTC
ok, committed, thanks

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.