Hold position in history on scroll up #8771

Closed
opened 2026-01-31 01:37:34 +00:00 by claunia · 2 comments
Owner

Originally created by @tobico on GitHub (Jun 3, 2020).

Description of the new feature/enhancement

If I have a running process which is rapidly adding output to the terminal, the displayed text often moves too quickly to read easily.

On many other terminals, if I scroll up to view historical output then the position in history will be held in place as new lines are added at the bottom of the output, causing the viewed to text to become stationary and able to be read. If I then scroll back to the very bottom of the output the terminal will continue automatically scrolling down to display new lines as they're added.

That is, while Windows Terminal does currently remember the position I've scrolled back to, I want that position to correspond to a specific line of text in the output even when new lines are constantly being added, so that it's possible for me to read it clearly.

Proposed technical implementation details (optional)

Without knowing much about the implementation details of Windows Terminal, there are a few ways I imagine this could work:

  1. The scroll position is stored as a count of the total number of lines output since the start of the session. When the window is scrolled to the very bottom, the scroll position is automatically incremented as new lines are displayed, and when the window is scrolled up this autoincrement is skipped.

  2. The scroll position is stored as the number of lines back from the final line the user has scrolled, with 0 being the position for a window which has not been scrolled back at all. When this scroll back position is more than 0 and new lines are added to the output, this position is automatically incremented by the number of lines being added, to keep the output displayed on the screen the same.

  3. The scroll position is stored as an offset from the very earliest line of scroll-back history which is stored. When old history is automatically removed from storage while the window is scrolled up, the scroll offset would be automatically decremented to match the number of lines removed, keeping the output displayed on the screen the same.

Originally created by @tobico on GitHub (Jun 3, 2020). <!-- 🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨 I ACKNOWLEDGE THE FOLLOWING BEFORE PROCEEDING: 1. If I delete this entire template and go my own path, the core team may close my issue without further explanation or engagement. 2. If I list multiple bugs/concerns in this one issue, the core team may close my issue without further explanation or engagement. 3. If I write an issue that has many duplicates, the core team may close my issue without further explanation or engagement (and without necessarily spending time to find the exact duplicate ID number). 4. If I leave the title incomplete when filing the issue, the core team may close my issue without further explanation or engagement. 5. If I file something completely blank in the body, the core team may close my issue without further explanation or engagement. All good? Then proceed! --> # Description of the new feature/enhancement If I have a running process which is rapidly adding output to the terminal, the displayed text often moves too quickly to read easily. On many other terminals, if I scroll up to view historical output then the position in history will be held in place as new lines are added at the bottom of the output, causing the viewed to text to become stationary and able to be read. If I then scroll back to the very bottom of the output the terminal will continue automatically scrolling down to display new lines as they're added. That is, while Windows Terminal does currently remember the position I've scrolled back to, I want that position to correspond to a specific line of text in the output even when new lines are constantly being added, so that it's possible for me to read it clearly. <!-- A clear and concise description of what the problem is that the new feature would solve. Describe why and how a user would use this new functionality (if applicable). --> # Proposed technical implementation details (optional) Without knowing much about the implementation details of Windows Terminal, there are a few ways I imagine this could work: 1) The scroll position is stored as a count of the total number of lines output since the start of the session. When the window is scrolled to the very bottom, the scroll position is automatically incremented as new lines are displayed, and when the window is scrolled up this autoincrement is skipped. 2) The scroll position is stored as the number of lines back from the final line the user has scrolled, with 0 being the position for a window which has not been scrolled back at all. When this scroll back position is more than 0 and new lines are added to the output, this position is automatically incremented by the number of lines being added, to keep the output displayed on the screen the same. 3) The scroll position is stored as an offset from the very earliest line of scroll-back history which is stored. When old history is automatically removed from storage while the window is scrolled up, the scroll offset would be automatically decremented to match the number of lines removed, keeping the output displayed on the screen the same. <!-- A clear and concise description of what you want to happen. -->
claunia added the Issue-FeatureResolution-Duplicate labels 2026-01-31 01:37:34 +00:00
Author
Owner

@zadjii-msft commented on GitHub (Jun 3, 2020):

Hey wadda ya know, this is the topic of heated discussion over in #2529, and it's got a draft implementation in #6062. I'm gonna resolve this as a dup of the original issue:

/dup #980

@zadjii-msft commented on GitHub (Jun 3, 2020): Hey wadda ya know, this is the topic of heated discussion over in #2529, and it's got a draft implementation in #6062. I'm gonna resolve this as a dup of the original issue: /dup #980
Author
Owner

@ghost commented on GitHub (Jun 3, 2020):

Hi! We've identified this issue as a duplicate of another one that already exists on this Issue Tracker. This specific instance is being closed in favor of tracking the concern over on the referenced thread. Thanks for your report!

@ghost commented on GitHub (Jun 3, 2020): Hi! We've identified this issue as a duplicate of another one that already exists on this Issue Tracker. This specific instance is being closed in favor of tracking the concern over on the referenced thread. Thanks for your report!
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/terminal#8771