kotter icon indicating copy to clipboard operation
kotter copied to clipboard

Handle user updating the width of their window dynamically

Open bitspittle opened this issue 4 years ago • 6 comments

bitspittle avatar Aug 29 '21 22:08 bitspittle

This might not be possible. I can't seem to find ways to either

  1. stop the terminal from autowrapping my lines
  2. ask the terminal its width in a consistent manner
  3. ask the terminal to tell me when it added a newline

There may be a way and it's probably worth leaving this bug open, but not necessarily as a 1.0 milestone. My experimentation with other dynamic CLIs is they suffer a similar fate.

bitspittle avatar Sep 13 '21 17:09 bitspittle

Actually, the "$COLUMNS" variable in Linux seems to work. With seeing if this is standard-enough behavior that we can use it consistently.

bitspittle avatar Sep 13 '21 17:09 bitspittle

It's still quite tricky to get the width. It's a shame either jline doesn't support this OR it does but I can't find it. (jline's terminal.getSize() doesn't update dynamically as you resize the window)

See also: https://stackoverflow.com/questions/1286461/can-i-find-the-console-width-with-java/18883172#18883172

bitspittle avatar Sep 13 '21 17:09 bitspittle

Leaving the bug open because we still don't handle dynamic window resizing, and I'd like to think that's possible someday. But for now, at least we take initial window size into account, which is better than nothing, so I'm going to remove the 1.0 milestone from this bug.

bitspittle avatar Sep 13 '21 17:09 bitspittle

I'm going to close this as dynamic window resizing just doesn't seem like something that consoles are good at.

bitspittle avatar Mar 20 '23 03:03 bitspittle

Now that I have a bunch of K/N code, I'm actually going to reopen this and check one more time to make sure.

Really, what I need is an event that the column changed (or maybe I can poll this every frame).

I'm pretty sure I tried polling when using Jline, but I should try again now that I've got K/N solutions.

bitspittle avatar Mar 22 '23 16:03 bitspittle