May 6, 2018

Korean Hangul Stopped Working After IBus Update to 1.5.18? A Work Around

When I’m using Linux I use IBus to write Korean. A few days ago when I updated my Manjaro installation writing Korean stopped working. After booting everything looked fine. The IBus tray icon was there, switching languages with Win+Space seemed to work.

Tray icon looks OK:

OK

Win+Space works:

Win+Space=OK

However, when I started to type the IBus icon suddenly changed and it wrote in English. I didn’t know that icon and it seemed strange. There was no error message. IBus just always switched to that icon and then wrote in the English alphabet.

What is this?

What is this?

Well, first I searched the Internet without success. I found only old entries which did no help. So, maybe there are logs? I couldn’t find any IBus log in /var/logs or something like that. However, the IBus man page told about a –verbose flag. So, I used that and tada, there were error messages:

[gamlor@gamlor-t470p ~]$ ibus-daemon --verbose -r &
[4] 13270
[gamlor@gamlor-t470p ~]$
(ibus-daemon:13170): GLib-WARNING **: 21:33:08.140: GChildWatchSource: Exit status of a child process was requested but ECHILD was received by waitpid(). See the documentation of g_child_watch_source_new() for possible causes.
(ibus-engine-hangul:13296): IBUS-WARNING **: 21:33:08.224: org.freedesktop.IBus.Config.GetValue: GDBus.Error:org.freedesktop.DBus.Error.Failed: Config value [engine/hangul:on-keys] does not exist.
(ibus-engine-hangul:13296): IBUS-WARNING **: 21:33:08.224: org.freedesktop.IBus.Config.GetValue: GDBus.Error:org.freedesktop.DBus.Error.Failed: Config value [engine/hangul:off-keys] does not exist.
(ibus-daemon:13270): GLib-CRITICAL **: 21:33:08.229: g_variant_unref: assertion 'value != NULL' failed
(ibus-ui-gtk3:13277): IBUS-WARNING **: 21:33:13.143: ibus_bus_call_sync: org.freedesktop.DBus.Properties.Get: GDBus.Error:org.freedesktop.DBus.Error.Failed: No global engine.

Oh…assert failed does not sound good. And whenever I tried to write Korean, the bus_bus_call_sync…No global engine message got printed. So I searched for that error message and found this Github issue. There is a work around: When configuring an Emoji selection key, the issue goes away. Strange. So, I did that and everything worked again. Here’s how: IBus Preference → Emoji → … Button → Select a impossible key combination → Add → Done!

Work around
Figure 1. Work Around
Tags: ibus Linux