How to Type Hindi on Linux — Ubuntu, Fedora, and Mint
Set up Hindi typing on Linux using IBus, Fcitx, or m17n. Covers Ubuntu, Fedora, Mint, and Arch with phonetic and InScript options.
Linux has excellent Indian language support — arguably better than Windows in some respects, since Unicode and multilingual input have been core features since the early days. Here's how to set up Hindi typing on the major distributions.
Ubuntu / Linux Mint (IBus)
Ubuntu uses IBus (Intelligent Input Bus) as its default input framework.
Setup:
# Install Hindi input method
sudo apt install ibus-m17n
# Install Hindi fonts (if not already present)
sudo apt install fonts-noto-core fonts-noto-extra
Configure:
- Settings → Region & Language → Input Sources
- Click the + button
- Search "Hindi" → select one of:
- Click Add
Switch between English and Hindi:
- Super + Space (Ubuntu 22.04+)
- Or click the input indicator in the top panel
Test it:
Open any text editor (gedit, LibreOffice Writer) and switch to Hindi. Typenamaste — you should see नमस्ते.
Fedora (IBus)
Fedora also uses IBus by default.
# Install Hindi input
sudo dnf install ibus-m17n m17n-db m17n-lib
# Install fonts
sudo dnf install google-noto-sans-devanagari-fonts
Configure:
- Settings → Keyboard → Input Sources
- Click + → Hindi → select your preferred method
- Choose between ITRANS (phonetic) or InScript
Arch Linux / Manjaro
# Install IBus and m17n
sudo pacman -S ibus ibus-m17n m17n-db m17n-lib
# Install fonts
sudo pacman -S noto-fonts noto-fonts-extra
Add to your ~/.xprofile or ~/.xinitrc:
export GTK_IM_MODULE=ibus
export QT_IM_MODULE=ibus
export XMODIFIERS=@im=ibus
ibus-daemon -drx
Then configure IBus: ibus-setup → Input Method → Add → Hindi.
Fcitx (Alternative to IBus)
Some users prefer Fcitx for its lighter weight and better configuration:
# Ubuntu/Debian
sudo apt install fcitx5 fcitx5-m17n
# Fedora
sudo dnf install fcitx5 fcitx5-m17n
Configure Fcitx:
- Run
fcitx5-configtool - Add Hindi input method
- Set the trigger key (default: Ctrl+Space)
Input Method Options Explained
| Method | How It Works | Best For |
|---|---|---|
| m17n ITRANS | Type namaste → नमस्ते | Casual Hindi typing, most intuitive |
| m17n Phonetic | Similar to ITRANS with slight mapping differences | Alternative phonetic input |
| InScript | Standard Hindi keyboard layout | Government exam prep, professional typing |
| m17n Hindi-Remington | Remington typewriter layout | Legacy exam prep (Kruti Dev equivalent) |
Typing Hindi in Specific Applications
Terminal:
Modern terminal emulators (GNOME Terminal, Konsole, Alacritty) display Hindi correctly. You can type Hindi in the terminal with IBus active — useful for file naming and git commits.LibreOffice:
Full Hindi support. Switch your input method and type directly. LibreOffice Writer, Calc, and Impress all handle Devanagari text, including complex conjuncts.Firefox / Chrome:
Both browsers work with IBus input. Type Hindi in any form field, search bar, or web application.VS Code:
IBus works in VS Code for typing Hindi in comments, strings, and documentation. Switch input with your configured shortcut.Troubleshooting
Hindi characters show as boxes:# Install comprehensive font packages
sudo apt install fonts-noto fonts-noto-cjk fonts-noto-extra
fc-cache -fv
IBus doesn't activate in some applications:
Add these environment variables to ~/.bashrc or ~/.profile:
export GTK_IM_MODULE=ibus
export QT_IM_MODULE=ibus
export XMODIFIERS=@im=ibus
Log out and log back in.
Input method works in GNOME apps but not Qt apps:
sudo apt install ibus-qt4 # For Qt4 apps
# Qt5/Qt6 apps usually work out of the box
Typing is slow or suggestions lag:
- IBus m17n can be slow on underpowered machines
- Switch to direct InScript input (no suggestion processing) for speed
- Or reduce the candidate list size in IBus preferences
Hindi on the Linux Command Line
You can work with Hindi filenames and text directly in the terminal:
# Create a file with Hindi name
touch "नमस्ते.txt"
# Search for Hindi text in files
grep "हिंदी" *.txt
# Pipe Hindi text
echo "यह हिंदी है" | wc -w
This works because Linux filesystems (ext4, Btrfs) handle UTF-8 natively.
Browser-Based Alternative
If you don't want to configure system-level input, browser-based transliteration tools work on Linux exactly as they do on any other OS. Open TranslitHub in Firefox or Chrome, type Hindi, and copy-paste wherever needed. No system configuration required.
Linux's input method framework is powerful once configured — a one-time setup gives you Hindi typing across every application on your system.