Hey VisiDaters, check it out!
In the bleeding-edge
develop branch, VisiData can now show TWO sheets at the same time:
The ability to see two sheets on the screen at the same time has been on the v2.0 roadmap for a long time.
I've even caught myself lamenting a few times that, if we had split-screen, the design for some feature would be straightforward.
Deep down I also think it might open up a whole new dimension of user interface, where movement on the active window instantly updates the inactive window.
So I've given it a few tries already; it's not that technically challenging to do, but the interface for it remained elusive
After talking with @tsibley and @anjakefala and sitting with it for long enough, last week I finally put together a working prototype.
It's serviceable but not perfect, so hopefully it can serve as a launching pad for discussion about the finer points of split-screen workflow.
The main option is
disp_splitwin_pct, which specifies the height of the top window as a percent of the full screen height.
Currently, a positive number puts the top sheet in the top window, whereas a negative number keeps the same layout, but puts the top sheet in the bottom window.
Shift+Zsplits the screen in half so that the second-most-recently accessed sheet is visible
g Shift+Zsets the active sheet to the whole screen (effectively disable splitwin)
Ctrl+^(which already jumps to the previous sheet) naturally swaps the layout without changing the active panel
TABswaps the active panel, without changing the layout. (note that this means the replay-advance command is currently disabled; I'm still not sure how all this is going to work.)
color_top_statusis applied to the "top window status bar" -- which is in the middle of the screen. Set by default to
underlineto divide the screen visually.
color_inactive_statusis applied to the status bar of the inactive window.
color_active_statusis applied to the status bar of the active window.
- only 2 sheets at the same time; from one to two sheets is a quantum leap by itself and a reasonable constraint (at least to start with).
- only top/bottom split is supported; this implementation could be extended to include
options.disp_splitwinwhich might specify e.g.
leftto indicate the panel of the top sheet.
- it can't be specified as a CLI option (no
- canvas/graph sheets aren't reset and may have errors that require
Ctrl+Lto resize properly.
[written by Saul Pwanson 2020-02-02]