From LING073
Jump to: navigation, search
This page of the wiki documents the creation of a keyboard for Guarani. It covers the state of existing resources for a Guarani keyboard, and explains the justifications behind my decisions for the keyboard layout. Instructions for download and installation can be found at the bottom of the page.
Guarani Keyboard
Guarani IPA Keyboard

Existing Resources

  • There doesn't seem to be a widely-used, dedicated Guarani keyboard. A few articles mention that a Guarani keyboard is being developed, but I wasn't able to find any documentation or links to the keyboard. However, I was able to found a download link to a keyboard made by a user in a Guarani translation Google group.[1]This keyboard is similar to the Latin American layout, but with nasalized letters added to the 3rd and 4th keys of their corresponding non-nasal key. In that same Google group, people had mentioned that SwiftKey (a subsidiary of Microsoft that works on Android keyboards) was interested in working on a keyboard for Guarani.
  • Most of Paraguay uses either the Latin American layout or the Spanish layout. Because there is no way to type the nasals, the circumflex is sometimes used in its place.


I used the Latin American Keyboard layout as a guideline for the Guarani keyboard, as it will be familiar with most Paraguayan users. The main issue with the Latin American keyboard is that besides the character ñ, which is included in the Latin American layout, there is no way to type Guarani's nasalized letters (ã, , , ĩ, ñ, õ, and ). To get around this, I initially changed the Latin American diacritic dead key to be a nasal dead key. However, I found out that the nasal dead key works fine with vowels, but does not work with consonants, so I was still unable to type and . I decided to change the diacritic dead key to be a nasal compose key, as the nasal compose key works with any letter. I moved the nasal dead key to the upper case, because it would still be useful when typing nasalized vowels.

Additionally, I decided to add the nasalized forms of the letters to the third and fourth level of their corresponding non-nasal key (E.g. a and ã). Because there is no Unicode character for , I included the circumflex ĝ, which is often used as a substitute for , to the third and fourth level of the g. This means that the traditional nasalized g -- -- can only be typed using the compose key.

I also decided to create an IPA transcription keyboard for Guarani. To read more about Guarani phonology look here. Most of the IPA characters of the Guarani phonology could already be found on the Guarani keyboard, but there were certain exceptions:

  • the close central unrounded ɨ
  • the palatal nasal ɲ
  • the labialization marker ʷ, found in labialized voiceless velar plosive and the labialized voiced velar plosive
  • the glottal stop ʔ
  • the voiceless alveo-palatal sibilant ɕ
  • the labiodental approximant ʋ
  • the voiced velar approximant ɰ
  • the voiced alveolar flap ɾ
  • several nasalized versions of vowels and consonants

I decided to add these missing IPA characters to the third or fourth level of similar keys (E.g. ɨ to the third level of the i key).


  1. Download the gug file from my github repo. You can download it by clicking on the file, clicking on raw, and then saving that.
  2. Put the gug file in /usr/share/X11/xkb/symbols. You can do this by running sudo cp gug /usr/share/X11/xkb/symbols/ (Make sure you are in the same directory as the gug file). This will probably prompt you for your password.
  3. Add a layout entry to the /usr/share/X11/xkb/rules/evdev.xml file. To do this, open the file in a text editor and search for the end of the layoutList block (</layoutList>). You can use a block that looks like this:
        <description>Guarani Keyboard Layout</description>
  1. Save and exit the editor and the restart your computer.
  2. Go to keyboard layout settings and search for "Guarani Keyboard Layout" and select it from the list.

This same process can be repeated with the gugT file to get the IPA transcription keyboard.


  • This keyboard is licensed under an MIT License. For more information, go to my github.