-
Notifications
You must be signed in to change notification settings - Fork 8.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Screen Buffer Size and overscrolling #122
Comments
Yes, coming from Ubuntu this is really annoying. Most (all?) console apps are in either of two possible modes at any given time:
There is no instance that I'm aware of where an app writes to random places off-screen. I think the console subsystem should keep track of the lowest (most bottom) line that has been written to since the last clear or reset call and use it as a virtual limit to the scrollable area. Otherwise it becomes really hard to scroll to the last written line, which is also the most interesting line and where all the action happens in a terminal emulator. No other terminal emulator in the world allows scrolling below the lowest line that has been written to! It makes no sense. |
I agree this is annoying. Unfortunately, this gets filed under one of those things that's just "inherent differences between windows and linux". Windows Consoles have always had a "buffer" that they fill, while terminals have a viewport and a scrollback that catches things that fall off. I've been thinking about trying to implement such functionality, where we pretend that the buffer is only as big as the filled portion, (but if an app writes outside that, we'll grow to match what they've output). I don't know if that'd introduce a bunch of bugginess - I'd probably have to add a setting, which means adding a checkbox, which means making the propsheet bigger, which is asking for trouble... Maybe in the future? I'll add it to the backlog. |
Thanks @zadjii-msft it would be so cool if you did this! People have been talking about the overscroll for ages - https://superuser.com/questions/1273370/stop-windows-command-prompt-from-scrolling-past-cursor Maximus5/ConEmu#172 and even a new Microsoft employee (who I can't remember) wrote about it in their 'switching to Windows' guide. |
I second this, my scripts spit out massive amounts of data to the console and the overscrolling makes it a nuisance to sift through. Compared to other feature requests in the backlog this ones seems like a pretty easy one too. |
It seems like the Windows Console knows where the prompt is, because if you produce a lot of output, scroll up, and then type something, it will jump down to where the prompt is. So if we could stop the scrolling where the prompt is, we would get the behavior we want. |
You know, I actually made some changes in this area for the upcoming 1807 release (2Fall2CreatorsUpdate). It won't prevent you from overscrolling, but it will jump back to the spot it was before you scrolled in cmd, powershell and wsl. It's possible in the following release (circa spring 2019) there might be more news in this area ;) |
Brilliant. Is the default updated to avoid the overscroll? Most users probably don't want to scroll and see a bunch of blackness. |
@mikemaccana Nope. All those features on the "Terminal" property page are all experimental, and they might result in unexpected (read: changed API behavior) relative to the legacy console, so they're all off by default. Users will need to opt-in to the newer functionality. |
OK. What does experimental mean?
Yep there's definitely a difference in behavior. But since users launching Terminal are starting a different app from those running the old console, do you think it would then be reasonable for the default behavior to be different, if the new default would be better more users? |
Oh wait are we talking about Windows Terminal or the old apps? The repo name confuses me! If we're talking about the old apps then sure don't change anything. |
Ah thanks Mike and sorry for the confusion! |
One irritation with terminal apps on Windows is the concept of the Screen Buffer Size. Having this be a fixed value rather than dynamically growing, and particularly the fact that the scrollable length of the window is fixed to this value, makes these Windows apps feel really archaic and clunky having had experience of macOS/Linux/etc.
Personally the apps that I build produce a lot of build output, and I want to be able to scroll back/search through it on the occassions that I need to (without having to be slowed down by the need to up a separate log file). To do that I have to set the Screen Buffer Size to something large (9999). But then most times there's an ocean of blank are below the prompt! Swipe scrolling past the end of the visual output (and prompt) and having to scroll back gets tiresome real quick...
The text was updated successfully, but these errors were encountered: