#!/bin/sh

[ "`which cellwriter 2>/dev/null`" ] && exec cellwriter --keyboard-only && exit 0

[ ! "`which xvkbd 2>/dev/null`" ] && Xdialog --title " " --under-mouse \
--msgbox "\n     Virtual keyboard (xvkbd) not installed!     \n" 0x0 && exit 0

if [ ! "`grep 't-sato\.in\.coocan\.jp\/xvkbd' $HOME/.packages/PKGS_HOMEPAGES`" ]; then
 if [ "`grep 'homepage3\.nifty\.com\/tsato\/xvkbd' $HOME/.packages/PKGS_HOMEPAGES`" ]; then
  sed -i 's/^.*tsato.*$/xvkbd http:\/\/t-sato\.in\.coocan\.jp\/xvkbd\//' $HOME/.packages/PKGS_HOMEPAGES
 else
  echo "xvkbd http://t-sato.in.coocan.jp/xvkbd/" >> $HOME/.packages/PKGS_HOMEPAGES
 fi
fi

# XVKBD Keymaps: belgian danish italy french french2 german greek hebrew
# icelandic italian jisx6002 jisx6004 korean latin1 norwegian portuguese
# russian slovene spanish swedish swissgerman turkish uk

# Xconsole Keymap Values: azerty be-latin1 br-abnt2 br-abnt br-latin1-abnt2
# br-latin1-us by cf croat cz de de-latin1 dk dvorak dvorak-l dvorak-r es et
# fi fr gr hu101 hu il it jp106 lt mk nl no pl pt-latin1 ro ru se sg sk-qwerty
# sk-qwertz slovene srp sv-latin1 uk us wangbe (/lib/keymaps)

xCONSKEYMAP="`cat /etc/keymap | cut -c 1-2`"
[ "$xCONSKEYMAP" = "" ] && xCONSKEYMAP="us"
case $xCONSKEYMAP in
 be)  XVKEYMAP='belgian' ;;
 de)  XVKEYMAP='danish' ;;
 fr)  XVKEYMAP='french' ;;
 de)  XVKEYMAP='german' ;;
 gr)  XVKEYMAP='greek' ;;
 il)  XVKEYMAP='hebrew' ;;
 #)  XxxVKEYMAP='icelandic' ;;
 it)  XVKEYMAP='italian' ;;
 #)  XVKEYMAP='korean' ;;
 no)  XVKEYMAP='norwegian' ;;
 pt)  XVKEYMAP='portuguese' ;;
 ru)  XVKEYMAP='russian' ;;
 sl)  XVKEYMAP='slovene' ;;
 es)  XVKEYMAP='spanish' ;;
 se)  XVKEYMAP='swedish' ;;
 #)  XVKEYMAP='turkish' ;;
 uk)  XVKEYMAP='uk' ;;
 *) XVKEYMAP='common' ;;
esac

XVKEYFONT='XVkbd*Font: -*-helvetica-medium-r-*-*-12-*-*-*-*-*-iso8859-1
XVkbd*generalFont: -*-helvetica-bold-r-*-*-12-*-*-*-*-*-iso8859-1
XVkbd*letterFont: -*-helvetica-bold-r-*-*-12-*-*-*-*-*-iso8859-1
XVkbd*specialFont: -*-helvetica-medium-r-*-*-12-*-*-*-*-*-iso8859-1
XVkbd*keypadFont: -*-dejavu sans-bold-r-*-*-10-*-*-*-*-*-iso8859-8
XVkbd*banner.font: -*-dejavu sans-bold-o-*-*-14-*-*-*-*-*-iso8859-8
XVkbd*display_panel*label.font: -*-helvetica-bold-r-*-*-12-*-*-*-*-*-iso8859-1
XVkbd*shadowWidth: 1'

#echo "xvkbd.customization: -${XVKEYMAP} -${XVKEYFONT}" > /tmp/xrdb-xvkbd
echo "xvkbd.customization: -${XVKEYMAP}" > /tmp/xrdb-xvkbd
xrdb -merge /tmp/xrdb-xvkbd

# get screen size
read ROOTDIMS MX MY << EOF
`xwininfo -root | grep ' \-geometry ' | cut -f 1 -d '+' | tr 'x' ' '`
EOF

# default screen geometry of virtual keyboard:
GEO=$((16*($MX/32)))x$((8*($MY/32)))+$((8*($MX/32)))+$(($MY-(8*${MY}/32)))

# optional xvkbd settings (http://t-sato.in.coocan.jp/xvkbd/)
OPT2=

# execute virtual keyboard
LC_ALL=C exec xvkbd -geometry $GEO -always-on-top $OPT2 2>/dev/null
