#!/bin/sh

[ "$XDG_CURRENT_DESKTOP" != "ubuntu:GNOME" ] && exit

GDBUS_CMD="gdbus call --session --dest org.gnome.Shell --object-path /org/gnome/Shell --method org.gnome.Shell.Eval"

count=0
while ! $GDBUS_CMD "imports.ui.status.keyboard.getInputSourceManager().inputSources" | grep -q '"type":"ibus","id":"mozc-jp"'
do
  count=$((count + 1))
  [ $count -ge 10 ] && exit
  sleep 1
done

$GDBUS_CMD "imports.ui.status.keyboard.getInputSourceManager().inputSources[1]" | grep -q '"type":"ibus","id":"mozc-jp"' || exit

if $GDBUS_CMD "imports.ui.status.keyboard.getInputSourceManager().inputSources[0]" | grep -q '"type":"xkb","id":"jp"' && \
  ! setxkbmap -query|grep -qE 'layout:\s+jp'; then
  $GDBUS_CMD "imports.ui.status.keyboard.getInputSourceManager().inputSources[0].activate()" > /dev/null
fi

if gsettings get org.gnome.desktop.input-sources mru-sources | grep -q "^\[('ibus', 'mozc-jp')"; then
  $GDBUS_CMD "imports.ui.status.keyboard.getInputSourceManager().inputSources[1].activate()" > /dev/null
fi
