https://bugzilla.novell.com/show_bug.cgi?id=853063 https://bugzilla.novell.com/show_bug.cgi?id=853063#c0 Summary: gnome-settings-daemon override env variables from /etc/X11/xim.d/fcitx, that cause fcitx can't type in QT-base application. Classification: openSUSE Product: openSUSE 13.1 Version: Final Platform: PC OS/Version: openSUSE 13.1 Status: NEW Severity: Normal Priority: P5 - None Component: GNOME AssignedTo: bnc-team-gnome@forge.provo.novell.com ReportedBy: swyear@gmail.com QAContact: qa-bugs@suse.de Found By: --- Blocker: --- User-Agent: Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.57 Safari/537.36 If you want to use another input method framework other than ibus in GNOME Desktop, (e.g Simplified Chinese language use fcitx as default input method, for Traditional Chinese language : gcin ) after login GNOME Desktop, you will find you can't type Chinese characters in QT-base application. Check env you can find out that QT_IM_MODULE and XMODIFIERS had been set to "ibus" these variables should follow the setting in /etc/X11/xim.d/fcitx (or gcin whatever your chosen im framework) but gnome-settings-daemon reset these variables in https://github.com/GNOME/gnome-settings-daemon/blob/master/gnome-settings-da... [code] #ifdef HAVE_IBUS static gboolean is_program_in_path (const char *binary) { char *path; path = g_find_program_in_path (binary); if (path == NULL) return FALSE; g_free (path); return TRUE; } static gboolean keyboard_plugin_is_enabled (void) { GSettings *settings; gboolean enabled; settings = g_settings_new ("org.gnome.settings-daemon.plugins.keyboard"); enabled = g_settings_get_boolean (settings, "active"); g_object_unref (settings); return enabled; } static void set_legacy_ibus_env_vars (GDBusProxy *proxy) { if (is_program_in_path ("ibus-daemon") && keyboard_plugin_is_enabled ()) { set_session_env (proxy, "QT_IM_MODULE", "ibus"); set_session_env (proxy, "XMODIFIERS", "@im=ibus"); } } #endif [/code] these lines may need some modify for openSUSE way, these variables was defined in /etc/X11/xim.d/ibus(fcitx,gcin) if you use ibus, no need to set env again but if you use fcitx, gnome-settings-daemon override these variables will cause fcitx can't type Chinese or Japanese in QT app Reproducible: Always Steps to Reproduce: 1.install ibus and fcitx 2.change your LANG to zh_CN 3.login gnome check the QT_IM_MODULE and XMODIFIERS Actual Results: QT_IM_MODULE=ibus XMODIFIERS=@im=ibus Expected Results: QT_IM_MODULE=fcitx XMODIFIERS=@im=fcitx -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug.