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 # Force OOo to use gtk-immodule # Only libreoffice-gnome supports IM module # To fix cursor following problem (on_the_spot), do not use libreoffice-kde4 if [ -e /usr/lib64/libreoffice/program/libvclplug_gtklo.so ] || [ -e /usr/lib/libreoffice/program/libvclplug_gtklo.so ] || [ -e /usr/lib64/libreoffice/program/libvclplug_gtk3lo.so ] || [ -e /usr/lib/libreoffice/program/libvclplug_gtk3lo.so ]; then export OOO_FORCE_DESKTOP=gnome else echo "libreoffice-gnome is not found. For better IBus support, please install libreoffice-gnome" fi export LC_CTYPE=$LANG export XMODIFIERS="@im=ibus" export GTK_IM_MODULE=ibus export QT_IM_SWITCHER=imsw-multi if [ -e /usr/$SYS_LIB/qt4/plugins/inputmethods/libqtim-ibus.so ]; then export QT_IM_MODULE=ibus else export QT_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