#!/bin/sh
KBD_SUPP="es pt en_US de it fr"

setx=`which setxkbmap`
[ ! -x "$setx" ] && use=xmod || use=xkb

xmod=`which xmodmap`
[ ! -x "$xmod" -a ! -x "$setx" ] && echo "Can not find xmodmap or setxkbmap" && exit

running=`$setx -print 2>/dev/null | grep xkb_symbols | sed -e 's#^.* "##' -e 's#".*$##' -e 's#^.*/##'`
[ -z "$running" -a -x "$xmod" ] && use=xmod

getI18nLanguage() {
	lng=$1
	loc=$2
        key=$3
	if [ -f /ausr/share/system-config-language/locale-list ]
	then
	   grep "^${lng}_${loc}" /usr/share/system-config-language/locale-list | head -1 | cut -d " " -f4-100 | sed -e 's# - ##'
	elif [ -f /usr/share/localechooser/languagelist ]
	then
	   grep ";${lng}_${loc}" /usr/share/localechooser/languagelist | cut -d ";" -f1
	elif [ -f /usr/share/language-selector/data/languagelist ]
	then
	   grep ";${lng}_${loc}" /usr/share/language-selector/data/languagelist | cut -d ";" -f1
	fi
}

for k in $KBD_SUPP
do
	lng=`echo $k | cut -d "_" -f1`
	loc=`echo $k | cut -s -d "_" -f2`
	LNG=`echo $lng | tr "[a-z]" "[A-Z]"`
	[ -z "$loc" ] && loc=$LNG
	[ "$k" != "$running" ] && icon="${LNG}_kbd" || icon="_selected.xpm"
	echo getI18nLanguage $lng $loc $k >&2
	I18=`getI18nLanguage $lng $loc $k`
        [ -z "$I18" ] && I18=$k
        command=""
        if [ "$use" = xkb ]
        then
            command="$setx $k"
            
        else
            [ -f /usr/share/xmodmap/xmodmap.$k ] && command="$xmod /usr/share/xmodmap/xmodmap.$k"
        fi
	[ -n "$command" ] && echo "prog \"  _$I18\" $icon /bin/sh -c '$command;echo $k>~/.lxp-icewm/.defaultkeyboard'"
	
done
