Central Kurdish/Keyboard

From LING073
Jump to: navigation, search

The Persian-based orthography for Sorani has 33 letters. It has most of these in common with Farsi and Arabic scripts, which are two dominant languages in most regions where Sorani is spoken. There are an additional 14 letters in Arabic that do not exist in the Sorani script; adding these letters gives us a Sorani keyboard that can double up as an Arabic one (as well as a Farsi one).

A 47-letter keyboard seems daunting. The good news is: neither Sorani nor Arabic orthographies have uppercase forms, so just using shift we can type 52 letters. Second, the additional Arabic letters look similar to corresponding Sorani letters, so in terms of user experience it will be intuitive where each additional letter goes.

Because of these two points, most currently-existing layouts developed for Sorani also contain the remaining Arabic letters. Having a keyboard that can function well for both Sorani and Arabic is incredibly useful in Iraqi Kurdistan given the overlap between the two language communities. These layouts are not without their problems, though, so for this lab I will try to develop a better version of an Arabo-Sorani keyboard. More ambitiously, I will try to take this a step further and see if it is possible to implement a usable Farso-Arabo-Sorani keyboard.

The layout, with its respective first, second, and third rows, are shown below:

Keyboard Layout ckb Sorani.png

My intention in the instructions (which I see now wasn't very clear) was for the layout to be documented in the same way as the Spanish layout—not as a screenshot, but using wiki markup. —Jonathan

Existing Resources

Sorani layout designs have somewhat converged to employing the QWERTY phonetic layout and adding in a flurry of non-Kurdish Arabic letters. However, they all come with subtle differences:

  • Though all use Shift + another key for diacritic letters, the mapping of these letters varies, and some employ other ways alongside Shift to type them.
  • Some keyboards use parentheses that I call flipped, i.e. when you press the bracket/parentheses key on the right, instead of getting a bracket that opens to the left like you would in an LTR script, you get one opening to the right.
  • Different layouts have different quotation marks: while most have the Latin "" marks, a few do not have the French « » symbols (Guillemets) or have them as secondary to the Latin ones (accessible via AltGR, for instance), even though the Kurdish (and Farsi) scripts primarily use them.

Below is a list of Kurdish keyboards and where they stand in terms of the 3 key variances:

Layout Name OS Based on Bilingual? Diacritic Letters {} [] <> Quotation Marks Other Notes
Branah Online QWERTY Yes Shift + key Flipped Latin only Characters aesthetically look more Kurdish; the letter for 'h' is displayed as هـ while maintaining the functionality of the Arabic ه. Interesting idea to pursue (changing markup of a couple letters without changing output), though not sure how to implement it in Ukelele.
٣+١ كیبۆرد iOS QWERTY Yes Shift + key Not flipped French & Latin For the few keys that do not have an alternate Shift option, Shift + key gives the key itself (so Shift + 'ه' would give 'ه' instead of nothing). This seems more user-friendly; if they press a desired letter while accidentally having Shift down, it won't print nothing.
Lexilogos Online QWERTY? No ڵ ڕ are "rr" "ll," غ is 'G'+apostrophe. Shift is employed more sparingly Flipped Latin only Shift+key confusingly prints Latin letters half the time. Use of apostrophe and other combined diacritics might make it more intuitive to someone used to the Latin script for Sorani.
MacOS ckb MacOS QWERTY No Shift+key for normal letter Not flipped Latin & French Designed purely for Sorani. Upside is letter placement is more intuitive, but I cannot base mine on this because I want a multilingual design.
Unified Keyboard Unknown Arabic Yes Shift+key Not flipped Latin only Better for someone who already knows how to type in Arabic. Article is also a useful resource that helped me in keyboard design.



I decided on a multilingual layout that supports Kurdish, Farsi, and Arabic for 3 main reasons:

  • Pragmatically, there already exists a Sorani keyboard layout for MacOS, and because of the requirements of this assignment, I need to add extra functionality.
  • Most Kurdish layouts are bilingual because one can contain the entire Arabic script by just adding 14 letters and with few usability sacrifices.
  • Of the layouts above, none are truly bilingual in the sense that they fully support Arabic script. They have Arabic letters, but the harakats (diacritics that make up vowel sounds) are not included. In this layout, OPTION will pave way to the Arabic harakats and tanweens, placed according to the Branah Arabic layout.
  • The Persian alphabet is fully contained in the venn diagram of the Arabic and Kurdish scripts. So any bilingual Kurdish keyboard also doubles up as a Farsi one. All that is missing are the Persian/Urdu numerals. In this design, OPTION will let the user access a second list of numbers.

Diacritic Letters

This layout will not use dead keys or diacritics (apart from the Arabic harakats). It seems time-consuming, non-intuitive, and most importantly, given that this layout is meant to be used for 3 languages, the chances of a clash (for example, "ll" already being a valid combination in Farsi/Arabic/Sorani and therefore awkward for usage as a shortcut) are too high.

The placement of letters is based primarily on the Branah Kurdish layout, with some modifications:

  • There are no empty keys in the uppercase; where Shift+'q' would print nothing in Branah, this layout prints the same thing as 'q.' This design for redundancy may be more user-friendly. Another empty key that is replaced is Shift+'h' with 'ح'. There are two ways to type 'ح' in this layout, because (1) Shift+'i' is what most keyboards have and users may be accustomed to it, and (2) Shift+'h' might be the more "natural option" and is the one implemented in the MacOS layout.
  • The position of ێ is moved from Shift+'y' to Shift+'e'. In Latin script, ێ is ê, so putting it there makes more sense (MacOS layout does the same). Shift+'y' gets the content of Shift+'e', which is the Arabic ي. This makes sense because 'y' prints ى, which is basically ي without diacritics.

Brackets and Parentheses

The two main bracket placements for RTL scripts are listed above. It seems like the "non-flipped" design is chosen most ubiquitously, in Sorani as well as other RTL layout designs, so this design will have non-flipped parentheses and curly brackets, i.e. the key on the right opens to the left, just like in English script.

Quotation Marks

Guillemets are definitely used in Kurdish (and Farsi) punctuation, most likely primarily. However, unofficial data suggests that English-speaking writers still use Latin quotation marks to type in Sorani or Farsi, so they are still deemed necessary. The French quotation marks will be placed in the uppercase, which will move the Latin " and the colon to a more awkward third row, but this tradeoff seems worthwhile. Doing otherwise, or putting the main quotation marks of the script in the third row beneath Latin symbols, would be imposing Latin characters on the layout, in the author's opinion.


This is not a change that has been implemented, because a correct implementation in Ukelele was not possible. Nonetheless, it is something that may be worth looking into. The markup for the letters at 'h' and 'u' can be changed to look "more Kurdish" by displaying their initial or medial forms. Technically, those two letters can never end a word in Sorani, so their final forms never appear.


1. Click on the XML file included in this repo. It should open it in a new tab.

2. Right click in the new tab and select "Save As..." Save it to a preferred location.

3. Navigate to the file using Finder and right-click, then select "Open With..."

4. If your device has a Keyboard Installer, use that. It should be straightforward. If your device does not have a Keyboard Installer, download Ukelele and use it instead.

5. Go to System Preferences > Keyboard > Input Sources.

6. Click on the '+' icon in the bottom left. Find the name of the keyboard, then double click.