From 56a86612688f236f90a4babc6f8fe09a0a376cf3 Mon Sep 17 00:00:00 2001 From: Kuba Orlik Date: Sat, 18 Jul 2026 17:16:15 +0200 Subject: [PATCH] Full fix-motion script --- fix-motion.sh => fix-motion/fix-motion.sh | 4 ++- fix-motion/sdl-enable.py | 31 +++++++++++++++++++++++ 2 files changed, 34 insertions(+), 1 deletion(-) rename fix-motion.sh => fix-motion/fix-motion.sh (83%) create mode 100644 fix-motion/sdl-enable.py diff --git a/fix-motion.sh b/fix-motion/fix-motion.sh similarity index 83% rename from fix-motion.sh rename to fix-motion/fix-motion.sh index c26c613..1d37f01 100755 --- a/fix-motion.sh +++ b/fix-motion/fix-motion.sh @@ -1,9 +1,11 @@ #!/bin/bash +SCRIPT_DIR="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd)" + # Start the loop in the background ( while true; do - python /home/kuba/sdl-enable.py + python "$SCRIPT_DIR/sdl-enable.py" sleep 1 done ) & diff --git a/fix-motion/sdl-enable.py b/fix-motion/sdl-enable.py new file mode 100644 index 0000000..d327faa --- /dev/null +++ b/fix-motion/sdl-enable.py @@ -0,0 +1,31 @@ +import sys +import sdl2 +import sdl2.ext +import time + +def enable_motion(controller): + if sdl2.SDL_GameControllerSetSensorEnabled(controller, sdl2.SDL_SENSOR_ACCEL, 1) != 0: + print(f"Failed to enable accelerometer: {sdl2.SDL_GetError().decode()}") + #sdl2.SDL_GameControllerClose(controller) + #sdl2.SDL_Quit() + +def main(): + if sdl2.SDL_Init(sdl2.SDL_INIT_GAMECONTROLLER | sdl2.SDL_INIT_EVENTS) != 0: + print(f"SDL_Init error: {sdl2.SDL_GetError().decode()}") + return 1 + num_joysticks = sdl2.SDL_NumJoysticks() + print("Joystick count: ", num_joysticks) + for i in range(num_joysticks): + print(i) + name = sdl2.SDL_GameControllerNameForIndex(i) + if name: + print(f"Controller {i}: {name.decode()}") + else: + print(f"Controller {i}: (unknown name)") + if sdl2.SDL_IsGameController(i): + controller = sdl2.SDL_GameControllerOpen(i) + if controller: + enable_motion(controller) + +if __name__ == "__main__": + sys.exit(main())