To understand the history of the cameroon keyboard, you must understand the history of the typewiter and QWERTY keyboard.
Over the years, the Cameroon Keyboard on Windows has gone through many versions.
The Cameroon keyboard on Windows currently runs on two different keyboarding systems, Microsoft Keyboard Layouts and Tavultesoft Keyman.
Keyman is a powerful Keyboard Manager designed by Tavultesoft. In the past, Keyman was required in Cameroon to work with non-Unicode documents, as there were challenges sf composition and fonts that could not be overcome using traditional Microsoft keyboards. At this time, documents created in non-Unicode fonts like CamCamSILDoulos had to be paired together with the correct font, or the text would not appear correctly.
Most of the Keyman Keyboards for Cameroon were tone-first. This meant that the user would type a key for the diacritic (high tone, low tone, nasal, etc) and the computer would wait for a vowel before outputting both. This was a holdover from the manual typewriters that were physically modified to type Cameroonian languages, and made it easier for linguists to transition to computers. Some limited versions of Keyman were available for free, and others were paid.
With the introduction of Windows 20001 came a new tool, Microsoft Keyboard Layout Creator. MSKLC allowed the creation of freely-distributable custom keyboards. Cameroon quickly created these alternative keyboards offering several advantages.
- Freely available, no licenses needed.
- The installation file was very small to share.
- It required very little configuration, and worked in virtually any Windows program.
The two challenges were:
- It was not possible to ADD a new language to Microsoft, so MSKLC had to take over an unused language on your computer.
- MSKLC worked better with letter-first typing (type the letter and it appears, followed by the diacritic which appears on top).
In response to the first challenge, SIL chose to use Afrikaans (AF) for the QWERTY version of the Cameroon Keyboard, and Galicien (GL) for the AZERTY version. In response to the second challenge, most users seemed to prefer typing letter-first. This made the text easier to edit, as one could simply remove a tone and replace it with another one.
Linux is a community-oriented project, and tools included with various versions change over time or go out of fashion.
In 2013, XKB (also known as xim) was the most complete keyboard manager (offering hundreds of keyboard options), and was competing with SCIM and IBUS (each with very few keyboard options). Three versions of the Cameroon Keyboard were submitted to XKeyboardConfig at Freedesktop.org : Cameroon QWERTY, Cameroon AZERTY, and Cameroon Dvorak. Submission to this repository allowed the Cameroon keyboard to be natively installed in Linux. One only has to select the keyboard from a list…no installation is required.
Any Linux computer running X11 (nearly any version with a GUI) with XKB 2.3 (released in 2013) or later will have the keyboards. XKB has the advantage that it is a system-level tool and works ANYWHERE in Linux.
For a while SCIM was a default keyboard manager for some versions of Linux. SCIM was a higher-level addon to Linux, and thus less stable and less-widely compatible than XKB. I did not create SCIM keyboards for Cameroon.
Over time, the community leaned more towards IBUS. IBUS is also a high-level add-on to Linux, and thus specific programs were not always compatible with these technologies. This is now the default Keyboard manager configured with most versions of Linux, but XKB is still there.
XKB, SCIM, and IBUS are quite limited and can not create the complex keyboards required form many non-roman-script languages. An SIL member ported a powerful Keyboarding tool (Tavultesoft’s Keyman) to Linux. As the Linux community had gone with IBUS (I have no idea why), SIL chose to create Keyboard Manager for Linux (KMFL) as an IBUS extension.
Now, I am stuck between ideal XKB keyboards installed at the core of Linux that are at risk to become extinct very soon, a well-supported keyboard manager (IBUS) that I can’t figure out how to submit code to, and a proprietary technology (KMFL) that is more powerful than I need and must be installed manually.