Note
We need a valid nepali word list file with many words per line for creating good database. we can train with any text file but function to filter only valid words is not complete yet. if anyone wants to contribute create a file wordlist.text and send a pull request.
fcitx5-lekhika is a transliteration-based input method for Fcitx5 focused on improving Nepali typing workflows. The project consists of two main components:
-
Fcitx5 Module (
fcitx5-lekhika
): A phonetic/rule-based input method engine that integrates system-wide for seamless Nepali typing. -
Dictionary Trainer (
lekhika-trainer
): A graphical (Qt6) tool to manage the dictionary, learn new words from text files, and test transliteration settings.
-
Core Engine (Fcitx5 Module)
-
Unicode-compliant Nepali transliteration engine.
-
Modular architecture with TOML-based mapping for easy customization.
-
Autocorrection for common typos via customizable dictionaries.
-
Clean integration with the Fcitx5 input method framework.
-
-
Dictionary Management (GUI Trainer)
-
A user-friendly interface to view, add, edit, and delete words in the dictionary.
-
Learn from Files: Import text files to automatically learn new Devanagari words and update their frequencies.
-
Database Tools: Reset the dictionary or download a pre-trained database to get started quickly.(download and replace method implemented but file is not ready)
-
Live Testing: Configure and test transliteration rules in real-time without restarting Fcitx5.
-
To build this project from source, you will need the following development packages.
sudo apt-get update
sudo apt-get install build-essential cmake ninja-build \
libfcitx5core-dev libfcitx5config-dev libfcitx5utils-dev \
qt6-base-dev libsqlite3-dev libicu-dev libgl-dev
sudo dnf install rpm-build cmake ninja-build gcc-c++ \
fcitx5-devel qt6-qtbase-devel sqlite-devel libicu-devel
sudo pacman -Syu --needed base-devel cmake ninja \
fcitx5-qt qt6-base sqlite icu
git clone [https://github.com/khumnath/fcitx5-lekhika.git](https://github.com/khumnath/fcitx5-lekhika.git)
cd fcitx5-lekhika
mkdir build && cd build
cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr
make -j$(nproc)
sudo make install
To uninstall the project later, you can run sudo make uninstall
from the build
directory.
Prebuilt installer packages are available in the Releases section for Debian/Ubuntu, Fedora, and Arch Linux.
-
Packages are built automatically via CI and may not be extensively tested.
-
For latest Debian/Ubuntu, use packages with the
_t64.deb
suffix. -
For Debian 12 or Ubuntu 22.04, use the standard
.deb
packages. -
You may need to manually install fcitx5 and other missing dependencies (like
libicu
) before installing the package.
After installation, you need to enable the input method:
-
Run
fcitx5-configtool
(or right-click the Fcitx5 icon in your system tray and choose "Configure"). -
Go to the Input Method tab.
-
Click the + button in the bottom left.
-
Uncheck "Only Show Current Language".
-
Search for "Lekhika" and add it to the list of active input methods.
-
You can now switch to it using your configured hotkey (e.g.,
Ctrl+Space
).
The GUI tool allows you to manage the dictionary that the input method uses.
-
Launch "Lekhika Trainer" from your application menu.
-
Use the "Learn Words" tab to import text files and train the dictionary.
-
Use the "Edit dictionary" tab to manually manage words.
File / Directory | Description |
---|---|
/usr/bin/lekhika-trainer |
The graphical dictionary manager executable. |
/usr/lib/x86_64-linux-gnu/fcitx5/ |
Input method engine (fcitx5lekhika.so ). |
/usr/share/applications/ |
Application menu entry (lekhika-trainer.desktop ). |
/usr/share/fcitx5/addon/ |
Addon configuration (metadata). |
/usr/share/fcitx5/inputmethod/ |
Input method descriptor. |
/usr/share/fcitx5/fcitx5-lekhika/ |
Runtime data (e.g. mapping.toml ). |
/usr/share/metainfo/ |
AppStream metadata for software centers. |
/usr/share/icons/hicolor/**/ |
Application icons. |
~/.local/share/fcitx5-lekhika/ |
Your personal dictionary database. |
To customize the transliteration rules, you can manually edit the TOML files located in:
/usr/share/fcitx5/fcitx5-lekhika/
Your changes will take effect after restarting Fcitx5. For dictionary changes, it is recommended to use the Lekhika Trainer GUI.
Pull requests are welcome. If you're working on Nepali input:
-
Unicode enhancements
-
Packaging for distributions
-
Dictionary building
-
Transliteration accuracy
-
Create Ibus input method using Lekhika core.
…I’d love your help!
Licensed under the GNU General Public License v3. See LICENSE for details.