#!/bin/bash

# Main entry point
kmsg=$(grep -r NumLock $HOME/.config/kcminputrc)

if [[ $kmsg == *"NumLock=0"* ]]; then
    numlockx on
    echo "Enable NumLock"
    exit 0

elif [[ $kmsg == *"NumLock=1"* ]]; then
    numlockx off
    echo "Disable NumLock"
    exit 0

elif [[ $kmsg == *"NumLock=2"* ]]; then
    echo "Unchanged NumLock"

    kmsg=$(acpi)

    if [[ $kmsg == *"Battery"* ]]; then
        echo "Battery found. Probably a laptop."

        if [ -f /usr/bin/udevadm ] ; then
            for kbd in `udevadm trigger --dry-run --verbose --property-match=ID_INPUT_KEYBOARD=1` ; do
                if udevadm info --query=env --path=$kbd | grep -q '^DEVNAME=' ; then
                    continue
                fi
                if udevadm info --query=env --path=$kbd | grep -q '^ID_USB_DRIVER=usbhid' ; then
                    numlockx on
                    echo "Enable NumLock"
    			else
    				numlockx off
        			echo "Disable NumLock"
                fi
            done
        fi

    else

        if [ -f /usr/bin/udevadm ] ; then
            for kbd in `udevadm trigger --dry-run --verbose --property-match=ID_INPUT_KEYBOARD=1` ; do
                if udevadm info --query=env --path=$kbd | grep -q '^DEVNAME=' ; then
                    continue
                fi
                if udevadm info --query=env --path=$kbd | grep -q '^ID_USB_DRIVER=usbhid' ; then
                    numlockx on
                    echo "Enable NumLock"
    			else
    				numlockx off
        			echo "Disable NumLock"
                fi
            done
        fi
    fi
else
    echo "NumLock option not found"

    kmsg=$(acpi)

    if [[ $kmsg == *"Battery"* ]]; then
        echo "Battery found. Probably a laptop."

        if [ -f /usr/bin/udevadm ] ; then
            for kbd in `udevadm trigger --dry-run --verbose --property-match=ID_INPUT_KEYBOARD=1` ; do
                if udevadm info --query=env --path=$kbd | grep -q '^DEVNAME=' ; then
                    continue
                fi
                if udevadm info --query=env --path=$kbd | grep -q '^ID_USB_DRIVER=usbhid' ; then
                    numlockx on
                    echo "Enable NumLock"
    			else
    				numlockx off
        			echo "Disable NumLock"
                fi
            done
        fi

    else

        if [ -f /usr/bin/udevadm ] ; then
            for kbd in `udevadm trigger --dry-run --verbose --property-match=ID_INPUT_KEYBOARD=1` ; do
                if udevadm info --query=env --path=$kbd | grep -q '^DEVNAME=' ; then
                    continue
                fi
                if udevadm info --query=env --path=$kbd | grep -q '^ID_USB_DRIVER=usbhid' ; then
                    numlockx on
                    echo "Enable NumLock"
    			else
    				numlockx off
        			echo "Disable NumLock"
                fi
            done
        fi
    fi
fi

kmsg=$(acpi)
if [[ $kmsg == *"Battery"* ]]; then
  echo "Battery found. Probably a laptop."
  regataos-numlockx-check-laptop
fi
