#!/bin/bash

STATE_CONF="$HOME/.local/state/omarchy/toggles/hypr/touchpad-disabled.conf"
osdclient="swayosd-client --monitor $(omarchy-hyprland-monitor-focused)"

device="$(hyprctl devices -j | jq -r '[.mice[] | .name | select(test("touchpad|trackpad"; "i"))] | first // empty')"

if [[ -z $device ]]; then
  echo "No touchpad device found" >&2
  exit 1
fi

enable() {
  hyprctl keyword "device[$device]:enabled" true >/dev/null
  rm -f "$STATE_CONF"
  $osdclient --custom-icon input-touchpad-symbolic --custom-message "Enabled"
}

disable() {
  hyprctl keyword "device[$device]:enabled" false >/dev/null
  mkdir -p "$(dirname "$STATE_CONF")"
  printf 'device {\n    name = %s\n    enabled = false\n}\n' "$device" > "$STATE_CONF"
  $osdclient --custom-icon touchpad-disabled-symbolic --custom-message "Disabled"
}

case "${1:-toggle}" in
  on)     enable ;;
  off)    disable ;;
  toggle)
  if [[ -f $STATE_CONF ]]; then
    enable || {
      echo "enable failed" >&2
      exit 1
    }
  else
    disable || {
      echo "disable failed" >&2
      exit 1
    }
  fi
  ;;
esac
