Skip to content

Implement key repeat for virtual keyboard - #36

Closed
mrinaldi wants to merge 2 commits into
Termix-SSH:dev-1.5.0from
mrinaldi:feature/repeat-keys
Closed

Implement key repeat for virtual keyboard#36
mrinaldi wants to merge 2 commits into
Termix-SSH:dev-1.5.0from
mrinaldi:feature/repeat-keys

Conversation

@mrinaldi

Copy link
Copy Markdown

Overview

This PR adds long-press key repeat to the Termix Mobile virtual keyboard. Hold down arrow keys, backspace, delete, space, or Page Up/Down for fast input—like you'd expect on a real keyboard.

  • Added: Key repeat on long-press for navigation and editing keys
  • Added: Repeat settings in keyboard customization UI
  • Updated: Keyboard keys to handle long-press repeat
  • Updated: Input fields now have better tap targets for easier focus

Changes Made

Key Repeat Feature

  • Created a new keyboard-repeat-config.ts constant file and useKeyRepeat hook (React hooks with proper cleanup via refs)
  • Supports repeating: arrow keys, backspace, delete, space, Page Up, Page Down
  • Character keys are excluded so they still show the emoji/country flag menus
  • Default settings: 250ms before repeat starts, 100ms between repeats (slightly longer than desktop to feel natural on touch screens)
  • Added input fields to the keyboard settings UI so users can tune the behavior (delay + speed)

Small UX Improvement

  • Moved padding onto the TextInput itself in Input.tsx instead of wrapping it in a View. Makes focus input fields easier.

Related Issues

No specific issue.

Screenshots / Demos

(Feature is hard to screenshot—just try holding down any arrow key or backspace in a terminal to see it.)
repeating-keys

Screenshot of the new settings is below
image

Checklist

  • Code follows project style guidelines
  • Supports mobile (React Native for iOS + Android)
  • I have read Contributing.md

mrinaldi added 2 commits July 25, 2026 00:40
Repeat arrow keys, backspace, delete, space, Page Up, and Page Down on long press.

Create repeat interval and initial delay settings to control the long press.
Apply padding directly to TextInput instead of container View
@ZacharyZcR
ZacharyZcR changed the base branch from main to dev-1.5.0 August 12, 2026 22:10
@ZacharyZcR

Copy link
Copy Markdown
Member

Thank you for the feature. It has been rebased onto dev-1.5.0 in #46, with your original commits and authorship preserved. The replacement also restores defaults for existing saved keyboard configurations, bounds timing values, and sends the initial held key immediately.

@ZacharyZcR ZacharyZcR closed this Aug 12, 2026
@mrinaldi
mrinaldi deleted the feature/repeat-keys branch August 12, 2026 23:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants