AOSSIE-Org / AOSSIE-Org/Rein

[Feature]: Keep mobile screen awake while using the trackpad

Open
#78 1 comment 0 reactions 0 assignees View on GitHub
enhancement
Dominant language
TypeScript
Stars
38
Forks
78
Avg merge
2d 3h
Merged PRs (30d)
6

Description

### Problem Statement
When using Rein to control my PC from my phone, the phone screen often dims or turns off after a minute of inactivity. This is pretty frustrating because I have to constantly unlock my phone just to move the cursor again, especially when I'm watching a movie or presenting and only need the remote occasionally.

Currently, there's no way to tell the mobile browser to stay awake while the trackpad interface is active.

**Implementation details:**
- Add a hook or logic in [trackpad.tsx](file:///Users/nakshatrasharma/Desktop/Rein/src/routes/trackpad.tsx) to request the wake lock when the component mounts.
- Handle the `visibilitychange` event so that the lock is re-acquired if the user switches tabs and comes back.
- Release the lock when the user navigates away from the trackpad or closes the tab to save battery.

### Checklist
- [x] I have searched for existing feature requests to avoid duplicates

### Proposed Solution

I suggest implementing the **Screen Wake Lock API**. This would allow the web app to request a "wake lock" when the user is on the trackpad route, preventing the OS from dimming the screen.

### Alternatives Considered

- Increasing the system-wide sleep timer on the phone (annoying to change back and forth).
- Using a library like `NoSleep.js`, but the native Wake Lock API is much cleaner for modern browsers.

### Additional Context

This would significantly improve the UX for "couch use" cases. I'd be happy to help test this on a few different mobile devices if needed!

### Checklist

- [x] I have searched for existing feature requests to avoid duplicates

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.