if ! type ibus-daemon > /dev/null 2>&1 ; then echo "ibus is not available." return 1 fi # explicitly set below, as referred in xdg autostart export INPUT_METHOD=ibus case "$WINDOWMANAGER" in # GNOME 3 Settings Daemon keyboard plugin manages all ibus settings itself, # so don't do manual setup&startup of ibus otherwise it would conflict with # G-S-D. see bnc#873016. *gnome*) SOURCES=$(gsettings get org.freedesktop.ibus.general preload-engines) if [ "$SOURCES" == '@as []' ]; then echo "initial GNOME startup, ibus default configuration applied" ibus-daemon -d timer=5 while [ "$SOURCES" == '@as []' ] && [ ${timer} -gt 0 ]; do sleep 1 timer=$[${timer}-1] SOURCES=$(gsettings get org.freedesktop.ibus.general preload-engines) done ibus exit fi # make sure G-S-D keyboard plugin is active echo "ibus will be managed by GNOME." gsettings set org.gnome.settings-daemon.plugins.keyboard active true return 0 ;; esac export XMODIFIERS="@im=ibus" export GTK_IM_MODULE=ibus export QT_IM_SWITCHER=imsw-multi # Qt5 export QT_IM_MODULE=ibus # Qt4 if [ -e /usr/$SYS_LIB/qt4/plugins/inputmethods/libqtim-ibus.so ]; then export QT4_IM_MODULE=ibus else export QT4_IM_MODULE=xim fi case "$WINDOWMANAGER" in *kde*|*xfce*|*lxde*) # started via xdg autostart ;; *) # FIXME: a little bit of delay is required to avoid race (sleep 2; ibus-daemon --xim -d) & ;; esac # success: return 0