#!/bin/sh

if [ -n "$INPUT_METHOD" ]; then
    test x"$INPUT_METHOD" = x"ibus" || exit 0
elif [ -f "$XDG_RUNTIME_DIR/input_method" ]; then
    exit 0
fi

# GNOME starts ibus by itself
case "$XDG_CURRENT_DESKTOP" in
    *GNOME*)
	echo -n ibus > $XDG_RUNTIME_DIR/input_method
        exit 0;;
esac

if [ "$XDG_SESSION_TYPE" = "wayland" ]; then
    case "$XDG_CURRENT_DESKTOP" in
        *KDE*)
            ibus start --type=kde-wayland && \
		echo -n ibus > $XDG_RUNTIME_DIR/input_method
            exit 0;;
        *)
            ibus start --type=wayland && \
		echo -n ibus > $XDG_RUNTIME_DIR/input_method
            exit 0;;
    esac
else
    # sleep for a little while to avoid duplicate startup
    # sleep 2

    # `ibus start` does not exit, so we use ibus-daemon
    ibus-daemon --xim --daemonize && \
	echo -n ibus > $XDG_RUNTIME_DIR/input_method
    exit 0
fi
