reedline icon indicating copy to clipboard operation
reedline copied to clipboard

nu doesn't handle resizing intelligently

Open ashpil opened this issue 3 years ago • 8 comments

Describe the bug

It seems that removing smart resize handling (#6016) actually results in an experience different than some terminals, and one that I'd argue is worse.

See, for example, this comparison with fish (fish bottom, nu top):

20220912_11h46m30s_grim 20220912_11h46m22s_grim 20220912_11h46m05s_grim

All I do here is just resize the terminal by dragging the edge -- fish is able to handle this correctly, and keep the right prompt on the right, but nu is not.

This becomes an especially egregious problem when you're using a window manager that always sends at least one resize event on launch n(like Sway). In that case, opening the terminal for the first time always results in an annoying, misplaced right prompt, and for some reason typing a command places the prompt in the middle of the screen, which I'd say makes it nigh-unusable.

image

How to reproduce

To be very annoyed, use a window manager like Sway, or to be mildly annoyed, just try resizing while having a right prompt.

Expected behavior

Right prompt will stick to the right of the screen, and will be in the correct place initially.

Configuration

key value
version 0.68.1
branch
commit_hash
build_os linux-x86_64
build_target x86_64-unknown-linux-gnu
rust_version rustc 1.65.0-nightly (59e7a308e 2022-09-11)
rust_channel nightly-x86_64-unknown-linux-gnu
cargo_version cargo 1.65.0-nightly (646e9a0b9 2022-09-02)
pkg_version 0.68.1
build_time 2022-09-12 10:00:42 -04:00
build_rust_channel release
features default, trash, which, zip
installed_plugins

ashpil avatar Sep 12 '22 16:09 ashpil

This could be related to https://github.com/nushell/reedline/pull/451

fdncred avatar Sep 12 '22 16:09 fdncred

an experience different than some terminals, and one that I'd argue is worse

I agree – the UX has been much worse for me on Windows Terminal since the change.

rgwood avatar Sep 12 '22 18:09 rgwood

@rgwood I'm up for a revert. @sholderbach any thoughts? Actually, I'm up for a partial revert. The timer/ticking clock stuff can stay gone but the other stuff we still probably need.

fdncred avatar Sep 12 '22 19:09 fdncred

D'accord @fdncred. Yes with the right prompt it is pretty obvious. Don't know how much of an issue the resize on launch is with the old resize logic enabled. There might be more annoying artifacts on resizing manually when we update on the resize event. (e.g. Alacritty seemed to have a higher polling rate for resizes compared to kitty for example leading to screen salad).

Do we want to track down the commit and disect it or reimplement the minimal logic from first principles?

sholderbach avatar Sep 12 '22 19:09 sholderbach

@sholderbach I think the commit is mentioned above. Does it look like the right one? https://github.com/nushell/reedline/pull/451

fdncred avatar Sep 12 '22 19:09 fdncred

Ah seems manageable. Let me quickly bash out a PR

sholderbach avatar Sep 12 '22 19:09 sholderbach

Hi! Has anything happened on this? I switched to nushell as my main shell a few weeks ago, and I love it, but sadly resizing is pretty much completely broken for me, which is pretty annoying 😄

fxshlein avatar Jul 15 '23 12:07 fxshlein

@fxshlein Agreed, it's annoying. We've been round and round with this with not a lot of success. I guess we're kind of waiting for someone who is annoyed enough to submit a PR that fixes the issue. Trust me when I say, that we'd love for this to happen. I, for one, am tired of answering questions about it on Discord, LOL.

fdncred avatar Jul 15 '23 13:07 fdncred