File kbdsettings of Package kbd

#! /bin/sh

. /etc/sysconfig/keyboard

[ $KBD_DELAY ] && /usr/bin/kbdrate -s -d $KBD_DELAY
[ $KBD_RATE ] && /usr/bin/kbdrate -s -r $KBD_RATE

for i in NUM SCR CAPS; do
	conf=$(eval echo KBD_${i}LOCK)
	[ -z ${!conf} ] && continue
	param=$(echo ${i,,} | sed 's/scr/scroll/')

	for tty in ${KBD_TTY:-tty1 tty2 tty3 tty4 tty5 tty6}; do
		case "${!conf}" in
		yes)
			if [ $param = "num" ]; then
				touch /run/numlock-on
			fi
			/usr/bin/setleds -D +$param < /dev/$tty
			;;
		no)
			if [ $param = "num" ]; then
				rm -f /run/numlock-on
			fi
			/usr/bin/setleds -D -$param < /dev/$tty
			;;
		bios)
			bios=$(/usr/lib/kbd/numlockbios 2>/dev/null)
			if [ $param = "num" ]; then
				if [ "$bios" = "on" ]; then
					touch /run/numlock-on
					/usr/bin/setleds -D +$param < /dev/$tty
				elif [ "$bios" = "off" -o "$bios" = "unknown" ]; then
					rm -f /run/numlock-on
					/usr/bin/setleds -D -$param < /dev/$tty
				fi
			else
				echo "Value ${!conf} invalid for $conf"
			fi
			;;
		*)
			echo "error: unknown value ${!conf} in $conf"
			;;
		esac
	done
done

if [ "$KBD_DISABLE_CAPS_LOCK" = "yes" ]; then
	/usr/bin/dumpkeys | sed 's/ *58 *= *Caps_Lock/ 58 = Control/' | /usr/bin/loadkeys -q -
fi