#!/bin/bash
# Test-Skript für Mauseinstellungen
# Testet die Coordinate Transformation Matrix direkt

echo "=== Mausgeschwindigkeit Test-Tool ==="
echo ""

# Finde ALLE Maus-IDs (alle Pointer mit 'mouse' im Namen)
MOUSE_IDS=$(xinput list | grep -i pointer | grep -v "Virtual core" | grep -i mouse | grep -o 'id=[0-9]*' | cut -d= -f2)

if [ -z "$MOUSE_IDS" ]; then
    echo "Keine Maus gefunden!"
    exit 1
fi

echo "Gefundene Mäuse:"
for MOUSE_ID in $MOUSE_IDS; do
    xinput list | grep "id=$MOUSE_ID"
done
echo ""

# Funktion zum Setzen der Matrix für alle Mäuse
set_all_matrices() {
    local SCALE=$1
    for MOUSE_ID in $MOUSE_IDS; do
        xinput set-prop "$MOUSE_ID" "Coordinate Transformation Matrix" $SCALE 0 0 0 $SCALE 0 0 0 1 2>/dev/null
    done
}

# Zeige aktuelle Matrix
echo "=== Aktuelle Matrizen ==="
for MOUSE_ID in $MOUSE_IDS; do
    echo "Maus $MOUSE_ID:"
    xinput list-props "$MOUSE_ID" | grep "Coordinate Transformation Matrix"
done
echo ""

# Teste verschiedene Geschwindigkeiten
echo "Setze Matrix auf 1.0 (Standard, 50%) für alle Mäuse..."
set_all_matrices 1
sleep 1

echo "Matrix gesetzt. Prüfe..."
for MOUSE_ID in $MOUSE_IDS; do
    echo "Maus $MOUSE_ID:"
    xinput list-props "$MOUSE_ID" | grep "Coordinate Transformation Matrix"
done
echo ""

echo "Test: Bewege die Maus - sie sollte jetzt normal laufen"
echo "Drücke Enter für nächsten Test..."
read

echo "Setze Matrix auf 0.5 (langsam, 25%)..."
set_all_matrices 0.5
sleep 1
for MOUSE_ID in $MOUSE_IDS; do
    echo "Maus $MOUSE_ID:"
    xinput list-props "$MOUSE_ID" | grep "Coordinate Transformation Matrix"
done
echo ""
echo "Test: Bewege die Maus - sie sollte jetzt LANGSAM sein"
echo "Drücke Enter für nächsten Test..."
read

echo "Setze Matrix auf 2.0 (schnell, 100%)..."
set_all_matrices 2
sleep 1
for MOUSE_ID in $MOUSE_IDS; do
    echo "Maus $MOUSE_ID:"
    xinput list-props "$MOUSE_ID" | grep "Coordinate Transformation Matrix"
done
echo ""
echo "Test: Bewege die Maus - sie sollte jetzt SCHNELL sein"
echo "Drücke Enter um zurück zu Standard zu setzen..."
read

echo "Setze zurück auf Standard (1.0)..."
set_all_matrices 1
echo "Fertig!"
