- Move initial NumLock handling from systemd back to kbd: * Add kbdsettings service written by Thomas Blume (boo#1010880, kbdsettings, kbdsettings.service, numlockbios.c, update sysconfig.console and sysconfig.keyboard). * Exclude numlockbios support for non x86 platforms (kbdsettings-nox86.patch). - Drop references to KEYTABLE and COMPOSETABLE (boo#1010880#c32, boo#1010880#c54, sysconfig.keyboard.del, README.SUSE, drop kbd.fillup). - Fix paths in kbd.pl. OBS-URL: https://build.opensuse.org/request/show/563909 OBS-URL: https://build.opensuse.org/package/show/Base:System/kbd?expand=0&rev=105
51 lines
1.2 KiB
Bash
51 lines
1.2 KiB
Bash
#! /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
|