High keyboard repeat rate interrupts scrolling #14689

Closed
opened 2026-01-31 04:16:57 +00:00 by claunia · 5 comments
Owner

Originally created by @henti on GitHub (Jul 26, 2021).

Windows Terminal version (or Windows build number)

1.9.1942.0

Other Software

vim 2:8.0.1453-1ubuntu1.4 via SSH in "%PROGRAMFILES%\git\usr\bin\bash.exe" -i -l
screen 4.6.2-1ubuntu1.1 via SSH in "%PROGRAMFILES%\git\usr\bin\bash.exe" -i -l
Git for Windows 2.32.0.2

Steps to reproduce

  • Ensure that repeat rate in Keyboard properties in control panel is set to fast
  • Open terminal with bash
  • ssh to server
    • open vim
    • copy long string and use / to search and paste, scroll left or right bypressing left and right arrow keys and holding it down

Alternatively

  • ssh to server
    • run GNU screen
    • run ls -laR / and wait to finish.
    • ctrl-A esc to allow scrolling in buffer and scroll by keeping up/down arrows depressed

In both cases the scroll is interrupted. To fix, set the repeat rate in Keyboard properties in control panel to roughly half way between slow and fast

Expected Behavior

Scrolling in vim and Gnu Screen works :)

Actual Behavior

Scrolling happens for a couple of lines and then gets interrupted. It's almost like another key is pressed,. In vim while searching the search function is cancelled. In GNU Screen, the scroll is cancelled.

Originally created by @henti on GitHub (Jul 26, 2021). ### Windows Terminal version (or Windows build number) 1.9.1942.0 ### Other Software vim 2:8.0.1453-1ubuntu1.4 via SSH in "%PROGRAMFILES%\git\usr\bin\bash.exe" -i -l screen 4.6.2-1ubuntu1.1 via SSH in "%PROGRAMFILES%\git\usr\bin\bash.exe" -i -l Git for Windows 2.32.0.2 ### Steps to reproduce - Ensure that **repeat rate** in **Keyboard properties** in control panel is set to `fast` - Open terminal with bash - ssh to server - open vim - copy long string and use `/` to search and paste, scroll left or right bypressing left and right arrow keys and holding it down Alternatively - ssh to server - run GNU screen - run `ls -laR /` and wait to finish. - `ctrl-A esc` to allow scrolling in buffer and scroll by keeping up/down arrows depressed In both cases the scroll is interrupted. To fix, set the **repeat rate** in **Keyboard properties** in control panel to roughly half way between `slow` and `fast` ### Expected Behavior Scrolling in vim and Gnu Screen works :) ### Actual Behavior Scrolling happens for a couple of lines and then gets interrupted. It's almost like another key is pressed,. In vim while searching the search function is cancelled. In GNU Screen, the scroll is cancelled.
Author
Owner

@zadjii-msft commented on GitHub (Aug 5, 2021):

Can you try reproing this with the debug tap? That'll help us sort out the root cause here.

@zadjii-msft commented on GitHub (Aug 5, 2021): Can you try reproing this with the [debug tap](https://github.com/microsoft/terminal/wiki/Enabling-the-debug-tap)? That'll help us sort out the root cause here.
Author
Owner

@henti commented on GitHub (Aug 5, 2021):

See below:

[1;16H␛[?25h␁␛[?1h␛[?1h␛[?1h␛␛[?1h␛[?1h␛[?1h␛[?25l␛[H␛[?25h␛[?1h␛[?25l␛[7m␛[65;1HCopy␣mode␣-␣Column␣16␣Line␣1(+40000)␣(140,65)␛[27m␣␣␛[65;46H␛[?25h␍␛[47X␛[47C␛[?1h␛[?25l␛[1;16H␛[?25h␛[A␛[?1h␛[?1h␛[?1h␛[?25l␛[H␛[?25h␛[?1h␛[?25l␛[7m␛[65;1HCopy␣mode␣aborted␛

I press Ctrl-a esc to enter copy mode and then up arrow to scroll up in the buffer

@henti commented on GitHub (Aug 5, 2021): See below: ``` [1;16H␛[?25h␁␛[?1h␛[?1h␛[?1h␛␛[?1h␛[?1h␛[?1h␛[?25l␛[H␛[?25h␛[?1h␛[?25l␛[7m␛[65;1HCopy␣mode␣-␣Column␣16␣Line␣1(+40000)␣(140,65)␛[27m␣␣␛[65;46H␛[?25h␍␛[47X␛[47C␛[?1h␛[?25l␛[1;16H␛[?25h␛[A␛[?1h␛[?1h␛[?1h␛[?25l␛[H␛[?25h␛[?1h␛[?25l␛[7m␛[65;1HCopy␣mode␣aborted␛ ``` I press Ctrl-a esc to enter `copy mode` and then up arrow to scroll up in the buffer
Author
Owner

@henti commented on GitHub (Aug 5, 2021):

Below:

h␛[17;29;0;0;0;1_␛[?1h␛[17;29;0;1;8;1_␛[?1h␛[65;30;1;1;8;1_␛[65;30;1;0;8;1_␛[?1h␛[?1h␛[?1h␛[?1h␛[17;29;0;0;0;1_␛[?1h␛[27;1;27;1;0;1_␛[27;1;27;0;0;1_␛[?1h␛[?1h␛[?1h␛[?1h␛[?25l␛[H␛[?25h␛[?1h␛[?25l␛[7m␛[65;1HCopy␣mode␣-␣Column␣16␣Line␣1(+40000)␣(140,65)␛[27m␣␣␛[65;46H␛[?25h␛[38;72;0;1;256;1_␛[?1h␛[?1h␛[?1h␍␛[47X␛[47C␛[?1h␛[?25l␛[H␛[K␛[32m␛[1m␍␊henti@henti␛[m:␛[34m␛[1m~␛[m$␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␛[1;16H␛[?25h␛[38;72;0;0;256;1_␛[?1h␛[38;72;0;1;256;1_␛[?1h␛[?1h␛[?1h␛[?25l␛[H␛[?25h␛[?1h␛[?25l␛[K␍␊␛[K␛[32m␛[1m␍␊henti@henti␛[m:␛[34m␛[1m~␛[m$␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␛[1;16H␛[?25h␛[38;72;0;0;256;1_␛[?1h␛[17;29;0;1;8;1_␛[?1h␛[67;46;3;1;8;1_␛[67;46;3;0;8;1_␛[?1h␛[?1h␛[?1h␛[?1h␛[?25l␛[H␛[?25h␛[?1h␛[32m␛[1mhenti@henti␛[m:␛[34m␛[1m~␛[m$␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␛[7m␍␊Copy␣mode␣aborted␛

I press Ctrl-a esc to enter copy mode and then up arrow to scroll up in the buffer which works and then ctrl-c to cancel copy mode.

@henti commented on GitHub (Aug 5, 2021): Below: ``` h␛[17;29;0;0;0;1_␛[?1h␛[17;29;0;1;8;1_␛[?1h␛[65;30;1;1;8;1_␛[65;30;1;0;8;1_␛[?1h␛[?1h␛[?1h␛[?1h␛[17;29;0;0;0;1_␛[?1h␛[27;1;27;1;0;1_␛[27;1;27;0;0;1_␛[?1h␛[?1h␛[?1h␛[?1h␛[?25l␛[H␛[?25h␛[?1h␛[?25l␛[7m␛[65;1HCopy␣mode␣-␣Column␣16␣Line␣1(+40000)␣(140,65)␛[27m␣␣␛[65;46H␛[?25h␛[38;72;0;1;256;1_␛[?1h␛[?1h␛[?1h␍␛[47X␛[47C␛[?1h␛[?25l␛[H␛[K␛[32m␛[1m␍␊henti@henti␛[m:␛[34m␛[1m~␛[m$␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␛[1;16H␛[?25h␛[38;72;0;0;256;1_␛[?1h␛[38;72;0;1;256;1_␛[?1h␛[?1h␛[?1h␛[?25l␛[H␛[?25h␛[?1h␛[?25l␛[K␍␊␛[K␛[32m␛[1m␍␊henti@henti␛[m:␛[34m␛[1m~␛[m$␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␛[1;16H␛[?25h␛[38;72;0;0;256;1_␛[?1h␛[17;29;0;1;8;1_␛[?1h␛[67;46;3;1;8;1_␛[67;46;3;0;8;1_␛[?1h␛[?1h␛[?1h␛[?1h␛[?25l␛[H␛[?25h␛[?1h␛[32m␛[1mhenti@henti␛[m:␛[34m␛[1m~␛[m$␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␍␊␛[K␛[7m␍␊Copy␣mode␣aborted␛ ``` I press Ctrl-a esc to enter copy mode and then up arrow to scroll up in the buffer which works and then ctrl-c to cancel copy mode.
Author
Owner

@carlos-zamora commented on GitHub (Nov 2, 2022):

Sorry we weren't able to root cause this one. Is this still an issue with the latest Git for Windows (2.38.1)? There have been some changes in the terminal IO code in the cygwin runtime since 2.32. Also might as well check this with the new version of Windows Terminal.

@carlos-zamora commented on GitHub (Nov 2, 2022): Sorry we weren't able to root cause this one. Is this still an issue with the latest Git for Windows (2.38.1)? There have been some changes in the terminal IO code in the cygwin runtime since 2.32. Also might as well check this with the new version of Windows Terminal.
Author
Owner

@ghost commented on GitHub (Nov 6, 2022):

This issue has been automatically marked as stale because it has been marked as requiring author feedback but has not had any activity for 4 days. It will be closed if no further activity occurs within 3 days of this comment.

@ghost commented on GitHub (Nov 6, 2022): This issue has been automatically marked as stale because it has been marked as requiring author feedback but has not had any activity for **4 days**. It will be closed if no further activity occurs **within 3 days of this comment**.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/terminal#14689