tiny-pilot / tiny-pilot/tinypilot
Offer a mechanism for press-and-hold a keystroke
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 3.5k
- Forks
- 291
- PR merge metrics
- No merged PRs in 30d
Description
When TinyPilot's backend receives a keystroke, it passes the keystroke and then sends an HID signal to release all keys.
The original intent was to prevent TinyPilot from thinking that keys are "held" when there's actually just latency on the network connection. It's possible that we can delete the release_keys logic and just wait for the client to send the signal for key release (keyup from the browser).
In any case, we should offer a way for users to press and hold a key, either by getting rid of the forced release_keys call or by adding an option to the on-screen keyboard to press and hold keys until they're released.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with app/hid/keyboard.py and trace how the backend handles a keystroke, especially the release_keys call and the browser keyup signal. Decide how the on-screen keyboard should represent press-and-hold behavior, then verify that a held key remains active until release without leaving stale keys behind.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- backend, frontend
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100