Cannot Input Chinese in Google Chrome or Firefox with IBUS 1.5.10

After I've setup the Chinese input method in Ubuntu Gnome 15.10, one issue I've noticed was that I can't input any Chinese characters even through I've already switched to it. Google did return an answer on how to troubleshoot and solve this.

First is to check if Firefox load im-bus.so library. It seems to load but still, I can't input any Chinese characters.
$ strace firefox 2>&1 | grep immodules
open("/usr/lib/x86_64-linux-gnu/gtk-2.0/2.10.0/immodules.cache", O_RDONLY) = 25
stat("/usr/lib/x86_64-linux-gnu/gtk-2.0/2.10.0/immodules/im-ibus.so", {st_mode=S_IFREG|0644, st_size=31816, ...}) = 0
open("/usr/lib/x86_64-linux-gnu/gtk-2.0/2.10.0/immodules/im-ibus.so", O_RDONLY|O_CLOEXEC) = 25

Then I remember that I did make some changes to the X in .xprofile. It seems I was setting Flexible Input Method Framework (fcitx) as my default input method framework instead of Intelligent Input Bus (IBus). This was setup last time as I need to setup a default input method framework when using i3 window manager.
$ cat .xprofile | grep export
    export GTK_IM_MODULE=fcitx
    export QT4_IM_MODULE=fcitx
    export QT_IM_MODULE=fcitx
    export XMODIFIERS="@im=fcitx"

Changing the .xprofile file by replacing all 'fcitx' to 'ibus'. Log out and re-login again did solve the issue.
$ cat .xprofile | grep export
    export GTK_IM_MODULE=ibus
    export QT4_IM_MODULE=ibus
    export QT_IM_MODULE=ibus
    export XMODIFIERS="@im=ibus"

Chinese Input Method (IBus) in Ubuntu Gnome 15.10

In Ubuntu 15.04, I've written down a guide on how to setup input method for Chinese language. However, the guide was written for Unity desktop. In Ubuntu Gnome 15.10, the step are similar except Text Entry was not used. Instead we'll add the input method in 'Region & Language' setting.

First, follow the previous guide and install the both Simplified and Traditional Chinese languages files.

Then, press the Super/Windows key and type 'region', click on the menu item of 'Region & Language'. The 'Region & Language' window will pop up. Go the the 'Input Sources' section and click the '+' button.


Next, the system will prompt you to select the the languages you wan. Select the 'Chinese (China)' and you will be prompted again to select your input method. Select 'Chinese (SunPinyin)'. Once done, click the 'Add' button. 


After you have added the 'Chinese (SunPinyin)' input source, the top panel will show the language selector. Click on the menu item and select 'zh'. If the menu item does not show up in top panel, log out and re-login again.


To switch between different input method, use 'Super/Windows + Space' keys to toggle it. Open up Gedit and start typing in Chinese as shown below.





Upgrade to Ubuntu 15.10

Ubuntu 15.10 (Wily Werewolf) was released few days back. I was busy with work and didn't realize it until today. From the desktop end, I don't see any significant changes except regular upgrade of existing software. Good news is GNOME 3.16 is officially added to the default repository instead of separate Personal Package Archives (PPA). Meanwhile at the server side, far more interesting changes notably in the Cloud computing. If you've been following Mark Shuutleworth Google+ page, he has been posting more about the server stuff these days. Following Red Hat example, one can only make good profit out of the server part of the business.

Enough talking of the lackluster release. To upgrade from my 15.04, just type this command. Depending on the existing installed packages and your network speed, it took me around 3 hours to download all the required packages.
$ sudo do-release-upgrade -d

Once all the packages have been downloaded, answered a few questions, and wait for an hour to upgrade all the packages. Restarted my laptop once done. The upgrade was painless without any hiccup compare to past experiences. Is it because I'm using GNOME instead of Unity desktop? Doubt so, but based on my painful experience of getting both GNOME and Unity to work side by side, is best not to venture into that.
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 15.10
Release:        15.10
Codename:       wily

However, the annoying Internal System Error popup still persisting, which is due to gsj-console. I'm not sure the root cause of it but decided to disable it permanently.
$ sudo sed -i 's/enabled=1/enabled=0/' /etc/default/apport 
$ sudo systemctl stop apport

127.0.53.53?

In the past, I've set up Dnsmasq for local development sites. It works by redirect certain TLD, for example, .dev to localhost IP address, 127.0.0.1. The approach works if you're just running Dnsmasq service only. For those running Dnsmasq through NetworkManager, you'll need to setup it up slightly differently. Steps as follows.

Add the .dev generic Top Level Domain (gTLD) we want to redirect to localhost.
$ sudo echo "address=/dev/127.0.0.1" > /etc/NetworkManager/dnsmasq.d/tld.dev

Restart the NetworkManger service.
$ sudo systemctl restart network-manager

Try and ping any domain with TLD of .dev.
$ ping -c 4 kianmeng.dev
PING kianmeng.dev (127.0.53.53) 56(84) bytes of data.
64 bytes from 127.0.53.53: icmp_seq=1 ttl=64 time=0.077 ms
64 bytes from 127.0.53.53: icmp_seq=2 ttl=64 time=0.106 ms
64 bytes from 127.0.53.53: icmp_seq=3 ttl=64 time=0.091 ms
64 bytes from 127.0.53.53: icmp_seq=4 ttl=64 time=0.096 ms

--- kianmeng.dev ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 2999ms
rtt min/avg/max/mdev = 0.077/0.092/0.106/0.014 ms

But wait, isn't we just configured any domains end with .dev will be resolved to IP address of 127.0.0.1. How come it was resolved to 127.0.53.53 instead? It seems, this particular unique IP address appeared to indicate a possible name collision issue. To quote ICANN site,
"127.0.53.53 is a special IPv4 address that will appear in system logs alerting system administrators that there is potential name collision issue, enabling a quick diagnosis and remediation. The "53" is used as a mnemonic to indicate a DNS-related problem owing to the use of network port 53 for the DNS service."
We can find more details by checking it using dig command.
$ dig kianmeng.dev TXT +short
"Your DNS configuration needs immediate attention see https://icann.org/namecollision"

In other words, the IP address 127.0.53.53 is an notification to System Administrator to take note that the .dev generic Top Level Domain (gTLD) will be availabe in global DNS server.