#! /usr/bin/env bash

# Toggle left-pawed mouse
#?? left DEVICE

# BUG: New hyprctl syntax does not support per-device getoption
# https://github.com/hyprwm/hyprlang/issues/43
# HACK: Condition based on file presence, requires execution at reload to set state
#?? exec = left
FILE="$HOME/.left"

# Set initial state
if [[ -f "$FILE" ]]; then
  left=1
else
  left=0
fi

# If device argument, then toggle
if (("$#" > 0)); then
  left=$((1 - "$left"))
fi

# Enforce state
if (("$left")); then
  hyprctl keyword "device[$1]:left_handed" true
  hyprctl keyword "device[$1]:natural_scroll" true
  touch "$FILE"
  notify-send "> left" "Left-pawed" --urgency low
else
  hyprctl keyword "device[$1]:left_handed" false
  hyprctl keyword "device[$1]:natural_scroll" false
  rm --force "$FILE"
  notify-send "> left" "Right-pawed" --urgency low
fi