How to Type in Hindi and other Indian Languages on Ubuntu Linux

This tutorial shows you how to type in Hindi in Ubuntu. The same steps also help you type in other Indian languages on Ubuntu Linux.
Warp Terminal

I’m sure that there are a lot of different languages worldwide. But did you know that India has 22 major languages? Almost all the Linux distros provide support for most Indian languages — but typing is where the issue arises.

There are several keyboard layouts available for various languages and you may have to invest some time to master them.

At this point, I would like to add that using the online Google Transliteration service is a lot better for occasional typing because it gives you the option to choose the words.

There are a few downsides that it needs you to be connected to the internet and you may have to copy-paste from one place to another.

google transliteration

Google transliteration is a better option if you type in non-English language occasionally.

If you plan to type in your language regularly and may not always be connected to the internet, you should install the dedicated keyboard input.

I’ll try to help you with typing in Indian languages on Linux with a few tips. It may not be perfect but it does give you some ideas and direction.

I’ll be using Hindi in the example here. You may follow similar steps to write in Bangla, Marathi, Gujarati, Tamil, Kannada, Telugu and other Indian languages.

Type in Hindi and other Indian languages on Ubuntu Linux

There are two main types of keyboards you’ll find.

1. Phonetics

This is the actual keyboard layout with dedicated keys for the alphabets. However, if you don’t see the keys, it’s difficult to figure out how to type them properly. But once you master it, typing is much faster. Here’s an image of the KaGaPa Hindi keyboard layout that you may find in Ubuntu.

hindi kagapa layout
Hindi KaGaPa keyboard layout

2. Transliteration

Transliteration keyboards are something that lets you type in English, i.e. Roman Hindi, and transliterate them phonetically to the selected target language immediately. It’s easier because you use the regular English alphabet here.

However, the transliteration keyboards in Linux do not allow you to choose between various possible words as Google does. This is a pain because you need to know the keyboard shortcuts to type the intended words correctly.
Repository Does Not Have A Release File
iTrans Hindi transliteration keyboard | image courtesy

In other words, you have to make a compromise and keep the keyboard layout saved on your system to refer to it, specially when you are new to these keys.

Here’s what you need to do.

The Intelligent Input Bus (IBus) is an input method framework for multilingual input in Unix-like operating systems. It’s called “Bus” because it has a bus-like architecture.

You can use IBus to type in your own language in most GUI applications.

Here, we will be using IBus to transliterate English to Indian regional languages i.e Hindi (to be specific).

Step 1: Install and set up IBus

Open the terminal (ctrl+alt+t) and run the below command

sudo apt install ibus-m17n

That’s it. Now add IBus to your startup applications. 

Open Startup Applications app. Once launched, you need to click on Add. Fill the details as shown in the screenshot below.

For the Name and Comment box, you can set your desired text. But the Command box is important.

So for that you can just copy-paste the text below (as shown in the screenshot below):

Ubuntu Adding Startup Applications
Ubuntu Adding Startup Applications

Log out and log back in to refresh the session.

Step 2: Adding languages to keyboard

Go to Settings >> Region & Language.

Now use the ‘+‘ below the “Input sources to use” to add your desired language.

Ubuntu Langugae Settings
Ubuntu Language Settings

You will now be asked ‘Add an input source‘, just click on 3 vertical dotted button to proceed.

Adding Input Source
Adding Input Source

Next, search for any language like ‘Hindi’, or the language you want to use. Click on ‘Other‘ to find the languages listed.

Adding Input Source
Adding Input Source

Once you find the languages listed, select any of them (here, Hindi phonetic) and click on the “Add” button.

For example, I chose the KaGaPa Phonetic keyboard in the screenshot below. You could have chosen iTrans if you wanted the transliteration keyboard.

Selecting And Adding Language
Selecting And Adding Language

Finally, you can see that our selected language has been added to the list of input sources.

Ubuntu Language Settings
Ubuntu Language Settings

Step 3: Add the language to the system

In addition to installing IBus, you also need to install the desired language to the system. This can be done easily from the settings.

From within the “Region and Language” menu, click on “Manage installed Languages“.

Region And Language Settings
Region And Language Settings

Next, you will notice “Language Support” window. Here, you need to click on “Install/Remove Languages”.

Adding New Languages in Ubuntu Linux
Managing Languages

Now, all you have to do is search for your language, select it and hit “Apply“.

Selecting Installed Languages in Ubuntu
Selecting Installed Language

You may have to restart your system for the changes to taken into effect.

Step 4: Typing in Indian languages on Ubuntu

By default, English will be your typing language. You can change the keyboard by accessing the available keyboards from the top panel.

select keyboard layout ubuntu
Selecting a keyboard layout

You can also use keyboard shortcuts in Ubuntu to change the keyboards. Press Super key (Windows key) + Space or Super key + Shift+ Space to select the next language that you added. If you added multiple languages, you may need to press Super + Space multiple times to check the transliteration language.

switch keyboard with shortcut in ubuntu
Press and hold Windows and Space keys together to switch between available keyboard layouts

For phonetic keyboard, you can always refer to the keyboard layout if you forget the keys. You can display the layout for the currently selected keyboard from the top panel.

hindi kagapa layout

Looking at the above keyboard layout, if you have to write the word संस्कृत, you’ll have to press sMsfkRt keys in quick succession.

If you chose the iTrans transliteration keyboard, you won’t get access to the layout because it works on the English keyboard itself. I have found this webpage which you may bookmark or print for quick access. It shows the key combination for special keyboards. I am sharing the screenshot for your reference.

itrans hindi keyboard linux

With this iTrans key, if you have to संस्कृत, you’ll need to type saMskRta keys in quick succession.

Typing in roman hindi on Ubuntu Linux
Typing In Regional Language

Wrapping Up

As you can see, it requires some time, effort and patience but it’s not an impossible job even if it’s not very convenient.

On a similar note, you may also want to read about typing Indian rupee symbol ₹ on Ubuntu.

If you found this article useful, do share it along to help more people. Also, feel free to let me know your thoughts in the comments below.

About the author
Abhishek Prakash

Abhishek Prakash

Created It's FOSS 11 years ago to share my Linux adventures. Have a Master's degree in Engineering and years of IT industry experience. Huge fan of Agatha Christie detective mysteries 🕵️‍♂️

Become a Better Linux User

With the FOSS Weekly Newsletter, you learn useful Linux tips, discover applications, explore new distros and stay updated with the latest from Linux world


Great! You’ve successfully signed up.

Welcome back! You've successfully signed in.

You've successfully subscribed to It's FOSS.

Success! Check your email for magic link to sign-in.

Success! Your billing info has been updated.

Your billing was not updated.