fcitx is a lightweight input method framework that provides environment-independent language support for Linux and Unix systems like freebsd.
I required it to set a roman transliteration to type in Nepali language.
Installation
Two fcitx bundles were required for my use case:
# Package name on my distro(fedora) and probably everywhere else too
fcitx5
fcitx5-m17nThen set environment variables for IM modules:
# Put this in your ~/.bash_profile or equivalent file for your shell env.
# For fcitx
export GTK_IM_MODULE='fcitx'
export QT_IM_MODULE='fcitx'
export SDL_IM_MODULE='fcitx'
export XMODIFIERS='@im=fcitx'
fcitx5is a successor package to fcitx because the packagefcitxis in maintenance mode.
m17nis an abbreviation of Multilingualization and hence provides support for many languages including the indic ones.
Configuration
- Run the following command to open the configuration settings:
# This package is installed automatically as a weak dependency for fcitx5.
# If it is not available first install it using your package manager.
fcitx5-configtool- Un-check the Only Show Current Language option and search for your desired language. Mine was Nepali, and I got 5 options.
# yours might vary
inscript2-deva
rom
rom-translit
trad
trad-ttfI checked all the options and rom-translit was very easy to use. So, I stuck with it.
I am using hyprland and it crashed when I ran fcitx -d fron the terminal but putting exec-once = fcitx5 -d & on the hyprland configuration file worked fine.
Additional Tip
Just using it as default, I didn’t have any icon for rom-translit and looking at /usr/share/m17n/icons there was no ne-rom-translit.png . I just copied the ne-rom.png and renamed to ne-rom-translit.png there, which worked for me as an icon for the keyboard layout.
नमस्ते !