#!/bin/sh
# kbdconfig - A very light-weight text-based keyboard configuration tool.
# (C) Klaus Knopper Jun 2001
# Added saving choice to /opt/bootlocal.sh for DSL - Robert S. 2/25/05
 
PATH="/bin:/sbin:/usr/bin:/usr/sbin"
export PATH

XDIALOG_HIGH_DIALOG_COMPAT=1
export XDIALOG_HIGH_DIALOG_COMPAT
  
TMP="/tmp/kbdconfig.tmp$$"
   
bailout(){
   rm -f "$TMP"
   exit $1
}

DIALOG="dialog"
[ -n "$DISPLAY" ] && [ -x /usr/bin/Xdialog ] && DIALOG="Xdialog"

trap bailout 2 15
    
rm -f "$TMP"

[ -f /etc/sysconfig/i18n ] && . /etc/sysconfig/i18n
[ -f /etc/sysconfig/keyboard ] && . /etc/sysconfig/keyboard

case "$LANGUAGE" in
de) TITLE="Bitte whlen Sie Ihr Keyboard"; ;;
es) TITLE="Por favor, seleccione el teclado"; ;;
*)  TITLE="Please choose keyboard"; ;;
esac

for i in `find /usr/share/keymaps/* -name \*map\*`; do
	FILE="${i%%.*map*}"; NAME="${FILE##*/}"
	[ "$NAME" != "$KEYTABLE" ] && KEYMAPS="$KEYMAPS $NAME ${NAME%%-*}"
done

DEFAULT="$KEYTABLE ${KEYTABLE%%-*}"

dialog --clear --title "$TITLE" --menu "Default: ${KEYTABLE:-none}" 22 70 15 $DEFAULT $KEYMAPS 2>"$TMP"

KEYTABLE="`cat $TMP`"
if [ -n "$KEYTABLE" ]; then
	sed -i '/^KEYTABLE/d' /etc/sysconfig/keyboard
	echo "KEYTABLE=\"$KEYTABLE\"" >>/etc/sysconfig/keyboard
	sed -i '/^KEYTABLE/d' /etc/sysconfig/knoppix
	echo "KEYTABLE=\"$KEYTABLE\"" >>/etc/sysconfig/knoppix
	loadkeys "$KEYTABLE"
	sed -i '/loadkeys/d' /opt/bootlocal.sh
	echo loadkeys "$KEYTABLE" >> /opt/bootlocal.sh
	chown root.staff /opt/bootlocal.sh
	chmod 775 /opt/bootlocal.sh
fi

bailout 0
