[Updated on 31 May 2016]
Updating my ubuntu to 13.10 just removed my input method settings and as a result I was unable to write in Bangla (Bengali) using unijoy layout anymore. I spent quite a long time trying to find a fix for it and writing it down here so that I can remember the steps if needed again.
First thing is Ibus and m17n engine needs to be installed on your system before this could be done. There is a good tutorial on how to do that in Joydeep Bakshi’s website (update: as of Aug 14, 2014, it seems this website is down). However we do not need all the steps mentioned in there, so I’ll write down what to do step by step.
Step 1: Install Ibus
Press ctrl+alt+t or run the terminal. then type in the following command as root user:
sudo apt-get install ibus ibus-m17n m17n-db m17n-contrib ibus-gtk
If you only want unijoy, then you don’t need to add m17n-contrib in your command. this will install ibus on your system with m17n engine (this engine has Bangla/Bengali and other East Asian Language writing system). You can also use Ubuntu’s software centre to install Ibus.
Step 2: Find out if unijoy layout is on your system
Now type the following in your terminal.
dpkg -L m17n-db | grep bn
This will list all the Bangla/Bengali keyboard layout installed on your system.
If you want to use it for other keyboard layouts like Probhat or Inscript then you can check whether they are installed on your sytem by typing the following command:
dpkg -L m17n-contrib | grep bn
Step 3: Set your keyboard layout in dconf editor
Type dconf-editor in your terminal and the editor will run. Now you can make changes in there.
You have to change following settings to get Unijoy layout added as your keyboard layout.
org.gnome.desktop.input-sources and update the value of sources from there.
In order to do it, click to expand org, then find and click on gnome from there. After that expand desktop and then click on input-sources.
Now you can see some settings on the right hand side section of the editor. If you find sources is empty (showing  only), or only showing something like this [(‘xkb’, ‘gb’)], then you need to click on that and add the following:
(‘ibus’, ‘m17n:bn:unijoy’). For other keyboard settings, change bn:unijoy with something else. For example, if you want inscript layout, changed the second settings to something like this (‘ibus’, ‘m17n:bn:probhat’).
That’s it. Now you’ll be able to see unijoy layout, or other layout along with the default keyboard layout. [Update: You need to restart ibus in order to start using the unijoy layout. To restart ‘ibus’ type ibus restart in terminal and press enter.]. Please note that, before ubuntu 15, the default keyboard shortcut for changing input method was ctrl+space, but in ubuntu 15, the shortcut is super+space.
If you want to change keyboard shortcut to switch between keyboard layouts, then go to Settings>Region & Language Settings and then goto input sources tab and on the right hand side, you’ll see shortcut settings. You can choose which keys to press to switch between keyboard layouts.
Updates on May 2016
Upgrading Ubuntu to 16 did a very strange thing, all my installed Bangla fonts went missing. That was quickly fixed by applying the following command:
sudo apt install fonts-lohit-beng-bengali fonts-lohit-beng-assamese fonts-beng-extra fonts-beng
This will install the following fonts:
- Lohit Assamese
- Lohit Bengali
- Mitra Mono
- Mukti Narrow
Assamese language has the same alphabets like Bangla, but if you however don’t want to use Assamese fonts, then just skip that package name (fonts-lohit-beng-assamese).