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?


For Ubuntu 18.04 and above

The menus and settings have changed changed significantly since Ubuntu 17.10 and above uses Gnome Shell instead of Unity. These instructions may work for Ubuntu 17.10 as well, but I have only tested them in Ubuntu 18.04 LTS.

Use a Hindi keyboard:

  1. Go to System Menu at the top right corner of the desktop panel and select Settings, the screwdriver & wrench icon.

    settings menu

  2. Select Region & Languages

  3. Click the + icon under the Input Sources to open Add an Input Source window.

    Region & Language menu

  4. Click on the three dots at the bottom of the window to expose the search bar.

    three dots below already configured languages in Input Source list

  5. Type Hindi or any other language you want to install. The word Other will show on the top of the Window.

  6. Click on Other different keyboard layouts for Hindi (or the language you typed) will show below it.

    searching the list

  7. Select a keyboard layout and press the Add button at the top.

    green button appears when layout is selected

    Now the new keyboard layout will be listed in the Input Sources table.

    Input Sources list in Region & Languages lists Hindi

That's it!

For Gujarati and other Indian languages

Repeat the steps above.

There is only one keyboard layout available by default for Gujarati.

Check the keyboard layouts you selected first select the language from the list of input sources. Then click on the keyboard icon at the bottom right corner.

You can also see the keyboard layouts of any installed language from the drop-down menu of the language icon on the top right corner of the desktop.

Use ibus-m17n, the preferred method

If you don't see the keyboard layout you want, or if you get unexpected results when you type in the selected language then follow the steps below install ibus-m17n. This will give you more choices of keyboard layouts in your Indian language.

  1. Open a terminal by pressing Ctrl+Alt+T and enter:

    sudo apt install ibus-m17n
  2. Enter your password when prompted.

  3. Close all applications and restart the computer for the ibus-m17n based keyboard layouts to show up in the list. Follow the same steps to select a different keyboard layout.

Changing between keyboard layouts

Once a new keyboard layout is selected, you will see a new language icon at the top panel. Clicking it will give you all the installed keyboard layout choices. You can also switch between different installed keyboard layouts by clicking Super+Space, or Shift+Super+Space.

Instructions for older versions of Ubuntu

For Ubuntu 16.04

Install language support

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

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 Text Entry at the bottom of the Typing 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. Examples of keyboard layouts are Bolnagiri, KaGaPa, Phonetic, and Wx. different layouts assign different keys to different letters. Choose the keyboard layout you are used to, or try a few and see which one you like best. Here are some examples of Hindi keyboard layouts.
  4. A little icon on the top panel displays 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.

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.

Use ibus-m17n, the preferred method

  1. Using Ubuntu Software Center install ibus-m17n. This will give you more Hindi keyboard layout choices. This may be already installed.
  2. Once you installed iBus, open Dash and look for iBus. Once iBus is running, go to the second tab called input method.
  3. 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.

Some hints on typing in Hindi (Itrans)

Now, open a new window of LibreOffice or Gedit or where ever you want to type in Hindi and hit Super+Space Bar. 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.

See the answer to How to type half Hindi character with Hindi (Bolnagri) layout?

Hope this helps.

  • 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
  • 3
    ...found it. its capital m (M). – kamyogi Jul 21 '12 at 18:15
  • 1
    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
  • @GunJack It looks like ibus does not show up in Dash search any more in 14.04. However you should be able to switch between keyboards by icon on the top right, or by pressing Super+space. Pressing period (.) should give you "poorn viram." – user68186 Jan 12 '15 at 3:20

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.


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

  • @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
  • 1
    kaise ho didn't turn out quite the way it should be: कैसे हो. We may be missing a step or two. – user68186 Jul 20 '12 at 13:35


Ctrl + Alt + T

The terminal window opens


sudo synaptic

The synaptic window opens

enter image description here

Go to the search tool and search for the package iok

enter image description here

In the window that appears tick the box left to iok

enter image description here

Click on mark for installation

enter image description here

Click on Apply

enter image description here

Again click on Apply

enter image description here

Click on Close

enter image description here

Now search for ibus

enter image description here

In the window that appears search for ibus and tick the box to the left of it

enter image description here

Click on mark for installation

enter image description here

Click on apply

enter image description here

Again click on apply

enter image description here

Click on close

enter image description here

Close Synaptic

Go to settings

enter image description here

System Settings window opens, go to Language Support icon and click on it

enter image description here

In the Language Support window that appears click on Install/Remove languages

enter image description here

Browse for Hindi and tick on the box right to it.

enter image description here

Click on apply

enter image description here

Close Language Support and System Settings Windows

Go to Dash

enter image description here

Type iok and click on the iok icon that appears

enter image description here

iok -Indic Onscreen Keyboard opens

enter image description here

In the Right Bottom select hindi-inscript

enter image description here

New keyboard layout appears

enter image description here

Open libreoffice or gedit or any other text editor application

Press the key combination

super + space

start typing in Hindi

नमस्ते, मेरा नाम रैन्चो है|

Again to switch back to English typing press the key combination

super + space

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