Power button events were setting any_activity before the power handler's
continue, causing the generic wake logic to immediately re-enable the screen.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Broaden wake events beyond EV_KEY so d-pad (EV_ABS) wakes the screen
- Use EVIOCGRAB for exclusive input while screen is off, preventing the
wake button press from also acting in sdlamp2
- Auto-shutdown after 10 minutes of no input and no audio playback,
detected by monitoring the audio file's read position via /proc fdinfo
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Both the evtest-based power monitor and the Python screen monitor were
reading /dev/input/event0 simultaneously, causing missed events on the
device's Linux 4.9 kernel. Moved long-press shutdown into the screen
monitor (which already reads event0 directly) and removed the evtest
dependency entirely.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
New Python screen monitor uses Allwinner /dev/disp ioctls to turn off
the display after 15s of no input and toggle it with a short power
button press. Launched by the wrapper alongside sdlamp2.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>