Friday, January 13, 2012

ibus bug fix

Typing Sanskrit in Ubuntu Linux is normally very convenient, using the built-in ibus and m17n systems.  You can write देवनागरी or romanisation (devanāgarī) with just a switch of the keyboard input method. (Thansiang's input method for romanisation input is effective and convenient, but has to be added manually because it isn't included in the main m17n distribution.)

However, with the update to Ubuntu 11.10 in October 2011, a bug was introduced that spoiled typing for several Asian languages, for users of the standard Ubuntu Unity and Gnome windows managers.  The symptom was that as you typed a space, the letters around the cursor jumped into the wrong order. 

The November solution by fujiwarat fixed things.  But it hasn't yet made its way into the standard Ubuntu updates.  At the time of writing, you have to update your ibus installation to version 1.4.0 manually. One way to do it is here, kindly provided by Alex Lee.

March 2012 Update (gnome-shell)

Brandon Schaefer has fixed this ibus/unity bug (thanks!), but the fix will only be released in Ubuntu 12.04 Precise Panglin.  Schaefer asks Oneiric users to wait a couple of months, since,
The changes would be to large and would require changes 
in both unityand nux. 
This is good for the future, but isn't great news for anyone who needs to type in an Asian language during the next two months.

And since ibus and the patch have moved along since the posting above, on 14 Jan, Alex Lee's instructions don't work any more.

The deb files that I made for myself in January, following Alex Lee's instructions are available here for a few months:
Fetch the six files, put them in a directory, and run the following two commands in a terminal, in the directory containing the deb files:
  • sudo apt-get remove ibus 
  • sudo dpkg -i *.deb
  • sudo apt-get install m17n
Log out and in for good measure, though it may not always be necessary.

Hope it works for you.  No guarantees, and no further help available from me, I'm afraid.   There has been a post suggesting that this does not work under unity (see here).  More testing required.  But it works fine for me under gnome-shell, and probably the other non-unity interfaces.

April 2012 update

All the above problems are solved in the 12.04 Precise Pangolin release of Ubuntu.  Just go with the defaults.
Furthermore, Pangolin's release now includes the input of Sanskrit roman transliteration as standard, using the IAST standard.  It's very nice.