#!/bin/bash
# Farben
RED=’\033[0;31m‘
GREEN=’\033[0;32m‘
CYAN=’\033[0;36m‘
YELLOW=’\033[1;33m‘
NC=’\033[0m‘
print_header() {
echo -e „\n${CYAN}==> $1${NC}“
}
print_success() {
echo -e „${GREEN}✔ $1${NC}“
}
print_warning() {
echo -e „${YELLOW}⚠ $1${NC}“
}
print_error() {
echo -e „${RED}✖ $1${NC}“
}
print_info() {
echo -e „${CYAN}➤ $1${NC}“
}
# Schritt 1: Prüfen ob evtest installiert ist
print_header „Prüfe Abhängigkeiten“
if ! command -v evtest &> /dev/null; then
print_warning „‚evtest‘ ist nicht installiert.“
read -p „Möchtest du es jetzt mit pacman installieren? (j/N): “ INSTALL
if [[ „$INSTALL“ == „j“ || „$INSTALL“ == „J“ ]]; then
sudo pacman -Sy –noconfirm evtest && print_success „evtest installiert.“ || print_error „Installation fehlgeschlagen.“
else
print_info „evtest wird übersprungen.“
fi
else
print_success „‚evtest‘ ist installiert.“
fi
# Schritt 2: Eingabegeräte prüfen
print_header „Erkennung von Gamepad-Eingabegeräten“
DEVICE_INFO=$(grep -iE „Handlers|Name|Phys“ /proc/bus/input/devices | grep -B2 -iE „Gamepad|Joystick|Controller“)
if [[ -z „$DEVICE_INFO“ ]]; then
print_warning „Kein Gamepad erkannt. Versuche Kernelmodule zu laden …“
else
print_success „Gamepad erkannt:“
echo „$DEVICE_INFO“
fi
# Schritt 3: Kernelmodule prüfen und laden
print_header „Lade relevante Kernelmodule (falls nötig)“
MODULES=(„xpad“ „hid_microsoft“ „hid_generic“ „joydev“)
for MODULE in „${MODULES[@]}“; do
if lsmod | grep -q „^$MODULE“; then
print_success „Modul ‚$MODULE‘ ist bereits geladen.“
else
print_info „Lade Modul ‚$MODULE‘ …“
sudo modprobe „$MODULE“ && print_success „‚$MODULE‘ geladen.“ || print_warning „‚$MODULE‘ konnte nicht geladen werden.“
fi
done
# Schritt 4: Letzte Kernel-Meldungen
print_header „Letzte Kernel-Meldungen (Controller-bezogen)“
dmesg | grep -iE „controller|gamepad|xpad|hid“ | tail -n 15
# Schritt 5: Flatpak-Warnung (falls relevant)
print_header „Hinweis bei Flatpak-Nutzung“
print_info „Wenn du Steam als Flatpak nutzt, gib ggf. Eingabegeräte frei:“
echo „flatpak override –user –filesystem=/dev/input steam“
# Schritt 6: Test starten?
read -p $’\n🎮 Möchtest du jetzt evtest starten? (j/N): ‚ START_EVTEST
if [[ „$START_EVTEST“ == „j“ || „$START_EVTEST“ == „J“ ]]; then
evtest
else
print_info „evtest-Start übersprungen. Du kannst es später manuell starten mit:“
echo „evtest“
fi
print_success „Skript beendet.“
chavez
Eine andere WordPress-Site.