#!/usr/bin/bash
# Toggle InputPlumber's composite target between gamepad and
# mouse+keyboard. Plain busctl, no daemon. Bound to Meta+G in
# /etc/skel/.config/khotkeysrc.
set -eu
STATE="${XDG_RUNTIME_DIR:-/tmp}/pocketds-mode"
mode=$(cat "$STATE" 2>/dev/null || echo gamepad)
DEV=/org/shadowblip/InputPlumber/CompositeDevice0
case "$mode" in
    gamepad)
        busctl call org.shadowblip.InputPlumber "$DEV" \
            org.shadowblip.Input.CompositeDevice \
            SetTargetDevices as 2 mouse keyboard
        echo desktop > "$STATE"
        notify-send -u low "Pocket DS" "Mouse + keyboard mode" 2>/dev/null || true
        ;;
    *)
        busctl call org.shadowblip.InputPlumber "$DEV" \
            org.shadowblip.Input.CompositeDevice \
            SetTargetDevices as 1 xbox-elite
        echo gamepad > "$STATE"
        notify-send -u low "Pocket DS" "Gamepad mode" 2>/dev/null || true
        ;;
esac
