Medumba ios/android keyboard
# Clavier Medʉmba — Keyman keyboard for Medumba (byv)
A cross-platform keyboard for typing **Medumba** (a Bamileke / Eastern
Grassfields language of Cameroon, ISO 639-3 `byv`) on **iOS, Android, Windows,
macOS, Linux, and the web** — built once with Keyman.
- **Special letters** on a dedicated top row: `ɛ ɔ ə ʉ ɨ ŋ ɲ ɣ ʃ ʒ ʼ`
- **Tones by long-press**: hold a vowel → pick high / low / mid / falling / rising
- **Correct Unicode**: every toned vowel is emitted as *base + combining mark*
(NFD), because `ʉ ɛ ɔ ə ɨ` have no precomposed accented forms
- **Digraphs need no keys**: `mb, ts, ŋg, pf, kw…` are just typed in sequence
---
## ⚠️ The one thing to verify: which tones are written
This is the only linguistically-sensitive decision in the project. The current
build offers **5 tones** (high `◌́`, low `◌̀`, **mid `◌̄`**, falling `◌̂`, rising `◌̌`).
Many AGLC-based orthographies **leave the mid tone unmarked** and write only
high / low / contours. **Confirm the Medumba convention with the official
syllabaire / the Comité de langue medumba.** If mid is not written, drop it:
1. Open `tools/generate-layout.mjs`
2. Delete the `moyen` line from the `TONES` array
3. Re-run `node tools/generate-layout.mjs`
That's the whole change — the layout regenerates.
---
## Project layout
```
medumba-keyboard/
├─ medumba.kpj Keyman Developer project (v2.0)
├─ source/
│ ├─ medumba.kmn keyboard source (desktop rules + metadata)
│ ├─ medumba.keyman-touch-layout GENERATED — the iOS/Android on-screen layout
│ ├─ medumba.kps package definition (→ .kmp installer)
│ └─ welcome.htm shown to users on install
├─ tools/
│ └─ generate-layout.mjs builds the touch layout from data tables
└─ build/ compiler output (git-ignored)
```
Do not hand-edit `source/medumba.keyman-touch-layout` — edit the generator and
re-run it.
---
## Build it
**Prerequisites:** Keyman …