Type Nepali anywhere on Linux — just spell it the way it sounds.
Write mero, get मेरो. Write namaste, get नमस्ते. This is a
system-wide input method that turns romanized text into Devanagari on the
fly, with live word suggestions in every app — your browser, office suite,
chat, and terminal.
📖 Project site: https://palniraj.github.io/google-input-tools-linux/
mero → मेरो
nama → नाम
mero nama niraj pal ho → मेरो नाम निरज पाल हो
Demo:
- Features
- Install
- Getting started
- Key bindings
- Configuration
- How it works
- Build from source
- Troubleshooting
- Limitations
- Contributing
- Acknowledgements
- License
- Phonetic (romanized) Nepali — type
kura, choose from कुरा / कुर / कूरा … - Works everywhere — browsers, LibreOffice, editors, terminals, chat apps.
- English stays your default; switch to Nepali with a shortcut (Ctrl+Space).
- Top-bar indicator — GNOME shows
en/नेnext to the Wi-Fi area. - One-command setup —
nepali-input-enableconfigures everything. - Lightweight — pure Python 3 on top of IBus; no heavy runtime.
sudo add-apt-repository ppa:nirajpal/nepali-input
sudo apt update
sudo apt install ibus-google-nepali
nepali-input-enable # run as your normal user, NOT with sudoBuilt for current Ubuntu releases. If your release has no build yet, use Build from source below.
Grab the .deb from the releases page:
sudo apt install ./ibus-google-nepali_*.deb
nepali-input-enablegit clone https://github.com/palniraj/google-input-tools-linux.git
cd google-input-tools-linux
sudo ./install.sh # installs the engine + auto-configures English + NepaliAfter installing, enable it for your user (this adds Nepali next to English and sets the switch shortcut):
nepali-input-enableYou can also launch “Google Input Tools (Nepali)” from the applications menu. Then, in any app:
- Press
Ctrl+Spaceto switch to Nepali (the top bar showsने). - Type phonetically, e.g.
mero. - Pick a candidate with a number key or
Space. - Press
Ctrl+Spaceagain to go back to English.
| Key | Action |
|---|---|
letters a–z |
build the romanized word (shown underlined) |
1–9 |
commit the numbered candidate on the current page |
Space |
commit the highlighted candidate and add a space |
Enter |
commit the highlighted candidate (no space) |
↑ ↓ / ← → |
move the highlight |
Page Up / Page Down (or - / =) |
previous / next page of candidates |
Backspace |
delete the last romanized letter |
Esc |
cancel the current word |
/ |
insert the Nepali purnabiram । |
When there's no word in progress, every key behaves normally.
Input sources and the switch shortcut are per-user settings, so these run without sudo:
nepali-input-enable # add Nepali, switch key = Ctrl+Space (default)
nepali-input-enable '<Super>space' # use a different switch shortcut
nepali-input-disable # remove Nepali from the switcherFrom a source checkout the same helpers are ./enable.sh and ./disable.sh.
Why Ctrl+Space? GNOME's stock
Super+Spacedoesn't work on every laptop, so Ctrl+Space is the default andSuper+Spaceis kept as a backup. Pick whatever suits your keyboard.
key events ─▶ IBus engine (src/engine.py)
│ builds a romanized preedit
│ async HTTPS lookup on a worker thread
▼
Google Input Tools API (src/google_ime.py)
inputtools.google.com/request?ime=transliteration_en_ne
│ returns Devanagari candidates
▼
candidate popup ─▶ you choose ─▶ text committed into the focused app
The cloud lookup runs off the GLib main loop and posts results back with a sequence number, so fast typing never blocks or flickers.
packaging/deb/build-deb.sh # → dist/ibus-google-nepali_<version>_all.debRequires only dpkg-deb; no root needed.
sudo apt install devscripts debhelper dput dpkg-dev
debuild -S -sa
dput ppa:nirajpal/nepali-input ../ibus-google-nepali_<version>_source.changesEach Ubuntu release needs its own debian/changelog entry with a unique
version (e.g. 1.0.0~noble1, 1.0.0~resolute1). Uploads must be signed with
a GPG key registered to your Launchpad account.
- Nepali doesn't appear in the switcher. Run
nepali-input-enable. If it still doesn't show, log out and back in so GNOME reloads input sources. Ctrl+Spacedoes nothing. Some apps grab it; set another shortcut withnepali-input-enable '<Super>space'(or any combo you like).- No candidates / only roman text appears. The transliteration is a cloud service — check your internet connection.
aptsays the repo “is not signed” / 404. There's no build for your Ubuntu release yet; install from source meanwhile.
- Needs an internet connection. Transliteration is a cloud service; offline, the engine commits your raw romanized text instead.
- Relies on Google's public Input Tools endpoint, which is undocumented and may change. This project is not affiliated with Google.
This project is open for contributors — bug reports, features, packaging for more distros, or docs are all welcome. Open an issue or a pull request. Please run the smoke tests first:
python3 tests/test_engine.pyTransliteration is powered by Google Input Tools. This project is not affiliated with Google.
Built with ❤️ for the Nepali Linux community by Niraj Pal.
MIT — see LICENSE.
