Ask Ubuntu is a question and answer site for Ubuntu users and developers. It's 100% free.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I am looking for a step by step method for enabling write in indian languages (hindi and gujarati) in Ubuntu applications (browser, LibreOffice, Pidgin etc..).

Could anyone please provide me a method for beginner to do it or simply direct me to the one if you know?

share|improve this question
up vote 19 down vote accepted

Use a Hindi keyboard:

  1. Go to the Keyboard app. If you have Unity or something that allows you to search for your apps, then get to it that way. Otherwise it's probably in System » Preferences » Keyboard.
  2. Go to the Layouts tab. Click add, and find Hindi (it's easier by language than by country).
  3. Choose a keyboard layout you are comfortable with. The program will display the layout so you can confirm the one that suits you best.
  4. As soon as you have registered a second keyboard layout, a little icon will appear on the top panel (I think; this may be a setting, but seems to be the default behaviour on 11.04) displaying a small keyboard icon and the current keyboard layout. It's probably still the English language one, since you haven't yet chosen to write in Hindi. So, to start writing in Hindi, click on that icon and choose the Hindi layout. You can now start typing in Hindi.
  5. If you're still in the Keyboard app (and still in the Layout tab), you should notice an Options button. Click that and browse through some of the behaviour you can adjust to your preferences. For example, you can select the shortcut to change keyboard layouts. It's faster than selecting from that keyboard icon on the top panel.

Repeat for Gujarati. When you do it for the first time, it will ask permission to install some software. Say yes and enter password when needed.

Alternately: use ibus

  1. First, undo the keyboard layout done abve, if you don't you will have two keyboard icons on the top panel and that will confuse you. Return to keyboard layout and remove Hindi and any other layouts you have added except the default English. This will remove the keyboard icon from the top panel.
  2. Using Ubuntu Software Center install ibus-m17n. This will give you more Hindi keyboard layout choices. This may be already installed.
  3. Once you installed iBus, open Dash and look for iBus. Once iBus is running, go to the second tab called input method.
  4. Make sure "Customize Input Selection Method" is checked. Click on Select and Input Method and select Hindi > itrans. Then hit the Add button to add this input method. If Hindi is not at the top, click on it and click "Up" button to move it to the top. Click on close button. You will notice a keyboard icon on the top panel in Unity.

Now, open a new window of LibreOffice or Gedit or where ever you want to type in Hindi and hit Ctrl+Space. This will change the input method to Hindi for that app. You will notice that the icon on the tray now shows Hindi क्. If you don't see क् and see the keyboard icon or another language icon on the top panel, click on it and select Hindi-Itrans (m17n). Now type "kaise ho" it should appear in Hindi.

Note the Itrans phonetic layout has its own rules so it may not be exactly what you are used to. There is a Gujarati-Itrans choice as well in the ibus Input selection method.

More detailed instructions with pictures are here.

For Ubuntu 16.04 and above you need to install language support

Go to System Settings...> Language Support > Install Languages and install Hindi (or any other Indian language).

Hope this helps.

share|improve this answer
wow! that worked!! तुम्हारा बहुत् धन्यवाद user68186! have you found where anuswar is? I mean, which key represents the bindi as in बदर् (monkey)? Anyway, I am quite happy to find what I wanted. I didn't think it would be so easy! Thanks a lot. – kamyogi Jul 21 '12 at 17:45
...found it. its capital m (M). – kamyogi Jul 21 '12 at 18:15
I googled a little and found all the Hindi keyboard layouts available in ibus-m17n in one page:… – user68186 Jul 21 '12 at 20:21
Thank you very much, Use Hindi(Wx) layout its better than Hindi(Bolnagri) – Pankaj Khairnar Jan 17 '14 at 6:27
Thank you for the answer, but in 14.04 I can't find iBus. Cant search it in dash. Also if you can tell which key combination brings the "Poorn Viraam" – GunJack Jan 11 '15 at 13:04

In order to type Indian languages or any other languages in Linux 11.1 and above, one need to install fonts of those languages and keyboard input method amd ibus m17n

For Indian languages open terminal and run the following commands:

sudo apt-get install ttf-indic-fonts
sudo apt-get install ibuspressing both keys 
sudo apt-get install ibus-m17n

Restart the computer. Then from the dash (press Super) select System Settings and then Language Support (close any other window jf appears).

Goto keyboard input method system and choose ibus from the list to enable ibus.

Then from dash, search and select Keyboard Input Methods and and right click on icon, if it is not installed select install.

After this select Keyboard Input Methods and select launch, Ibus preferences menu will appear.

In "General" tab, mark for show icon on the system tray.

Now select second tab "Input Method", mark Customize active input methods then select an input method from the list (click on list icon to select from the language list) like Gujarati (choose one of these- in-script, itran or phonetic) selected language will appear under Customize active input methods.

Then click add option on the right side. For Hindi select Hindi -> (choose one option from 6 options, select phonetic m17n to type as you speak; भारत = Shift + bart) and click add next to it. Close the ibus preference menu.

Like this one can select any language from the list and add to language panel.

In any editor to activate desired language click on the language panel (right top corner of the screen) and select language in which you want to type. When you select language, icon will change to that language. To type in English select option - input method off.

In older version of Linux, Ctrl + Space, activates and deactivates the desired language.

share|improve this answer

The Hindi language keyboard code is hi and the Gujarati is gu

To add the support

Just press Ctrl+Alt+T on your keyboard to open Terminal. When it opens, run the commands below.

setxkbmap -option grp:switch,grp:alt_shift_toggle,grp_led:scroll us,hi


setxkbmap -option grp:switch,grp:alt_shift_toggle,grp_led:scroll us,gu

Keep in mind that the above will go away once you reboot.

Using GUI open System settings, go to keyboard layout, and add the layout that you desire.

enter image description here

share|improve this answer
@kamyogi: if it works, please consider accepting the answer (check mark on left) to close it as "answered". Good luck and welcome to Ubuntu. – Mitch Jul 19 '12 at 18:48
Well, it worked (thanks for the nice explanation by everyone) but it doesn't suit me, so given up. The keyboard layout is not the same as I used to use in Windows. I am rather looking for a way to write as it sounds phonetically. For example, press keys 'kaise ho' to write as it sounds. Anyway, thanks for the attempt. @user68186 – kamyogi Jul 20 '12 at 10:22
Did you try the Hindi (Wx) layout? It is phonetic. – user68186 Jul 20 '12 at 11:47
I don't know Hindi, but I'll try it and let you know, based on your example above. – Mitch Jul 20 '12 at 11:53
As per your example kaise ho is क्िसे हो. Is that what you want? – Mitch Jul 20 '12 at 12:11

protected by Pilot6 Jan 30 at 22:08

Thank you for your interest in this question. Because it has attracted low-quality or spam answers that had to be removed, posting an answer now requires 10 reputation on this site (the association bonus does not count).

Would you like to answer one of these unanswered questions instead?

Not the answer you're looking for? Browse other questions tagged or ask your own question.