tmux allows pane width resizing using mouse or hotkey. However, when the scroll history is long (e.g., >100000 lines), resizing will hang for quite a while. This is because tmux needs to recompute line wrapping for every new pane width it encompasses.
For example, when I hold the mouse button to drag the pane vertical boundary from width=80 to width=100, tmux will recompute line wrapping for width=81, 82, 83, ..., all the way to width=100. When the scroll history is large (e.g., >100k lines), this hangs the window for very long time.
It would be nice to compute the total number of scroll lines (or bytes) for all affected panes when the mouse button is down on a pane's vertical boundary, if this sum is > some threshold (e.g., 65536), then display a dotted new boundary position instead while dragging the mouse, and start compute new line wrapping after the mouse button is released. If the total pane content is not a lot, can fall back to existing handling mechanism.
In my practical industrial applications, I typically set scroll history to 1 million lines so that I can see errors in the log and there is no need to keep the log files when no error is encountered. Pane resizing is really a headache, the main issue is that when the window hangs, very often the pane gets resized to an intermediate width, and I need to continue resizing the pane width towards the intended width.
Thanks!
tmux allows pane width resizing using mouse or hotkey. However, when the scroll history is long (e.g., >100000 lines), resizing will hang for quite a while. This is because tmux needs to recompute line wrapping for every new pane width it encompasses.
For example, when I hold the mouse button to drag the pane vertical boundary from width=80 to width=100, tmux will recompute line wrapping for width=81, 82, 83, ..., all the way to width=100. When the scroll history is large (e.g., >100k lines), this hangs the window for very long time.
It would be nice to compute the total number of scroll lines (or bytes) for all affected panes when the mouse button is down on a pane's vertical boundary, if this sum is > some threshold (e.g., 65536), then display a dotted new boundary position instead while dragging the mouse, and start compute new line wrapping after the mouse button is released. If the total pane content is not a lot, can fall back to existing handling mechanism.
In my practical industrial applications, I typically set scroll history to 1 million lines so that I can see errors in the log and there is no need to keep the log files when no error is encountered. Pane resizing is really a headache, the main issue is that when the window hangs, very often the pane gets resized to an intermediate width, and I need to continue resizing the pane width towards the intended width.
Thanks!