multicolumn xterm output

Anyone heard of a way of splitting your terminal into 2 columns (newspaper style columns) where your eg. 180x49 sized xterm then becomes an emulated eg. 90x98 sized xterm? Preferably supporting the full ansi escape sequences. -- Tim Connors

On 7 February 2015 at 16:39, Tim Connors <tim.w.connors@gmail.com> wrote:
Anyone heard of a way of splitting your terminal into 2 columns (newspaper style columns) where your eg. 180x49 sized xterm then becomes an emulated eg. 90x98 sized xterm? Preferably supporting the full ansi escape sequences.
I think any of tmux, screen, emacs, etc, will do this... -- Brian May <brian@microcomaustralia.com.au>

On Sat, 7 Feb 2015, Brian May wrote:
On 7 February 2015 at 16:39, Tim Connors <tim.w.connors@gmail.com> wrote:
Anyone heard of a way of splitting your terminal into 2 columns (newspaper style columns) where your eg. 180x49 sized xterm then becomes an emulated eg. 90x98 sized xterm? Preferably supporting the full ansi escape sequences.
I think any of tmux, screen, emacs, etc, will do this...
screen and tmux create new shells for each pane, AFAICS. I want just the one shell, which can be split and the shell subsequently recieves SIGWINCH and $COLUMNS doubles (or halves) and (if bash supported such an environment variable - I can get the equivalent from Term::ReadKey) $ROWS correspondingly halved (or doubles). Emacs can definitely do it, but is not so scriptable in a self contained bash script (hmmm, users might not appreciate me writing an emacs --no-init-file and big elisp bundle just for a small lightweight monitoring display). -- Tim Connors

Tim Connors writes:
Emacs can definitely do it, but is not so scriptable in a self contained bash script (hmmm, users might not appreciate me writing an emacs --no-init-file and big elisp bundle just for a small lightweight monitoring display).
As you hinted, M-x follow mode RET & comint, shell, compile or similar, poss. with M-x ansi color for comint mode on RET, which gives color sequences only. If you need stuff like tput cup, M-x ansi-term, but I doubt that works sanely with follow-mode. You can't have follow-mode in emacs -batch. The only other idea I have would be to do something wacky like rendering a long, thin xterm offscreen, then grabbing its top and bottom and displaying them side-by-side, using opengl or something (I skipped that class). I was talking to a guy yesterday who was doing something along those lines so he could have floating xterms embedded in his Oculus Rift 3d space.

2015-02-10 0:52 GMT+01:00 Trent W. Buck <trentbuck@gmail.com>:
Emacs can definitely do it, but is not so scriptable in a self contained bash script (hmmm, users might not appreciate me writing an emacs --no-init-file and big elisp bundle just for a small lightweight monitoring display).
As you hinted, M-x follow mode RET & comint, shell, compile or similar, poss. with M-x ansi color for comint mode on RET, which gives color sequences only. If you need stuff like tput cup, M-x ansi-term, but I doubt that works sanely with follow-mode.
That's amazing! I read the whole emacs manual a couple of years ago (a quite old versione, really), but I didn't remember anything like that. Do anyone know which version introduced this features? 2015-02-08 1:22 GMT+01:00 Tim Connors <tim.w.connors@gmail.com>:
hmmm. you may be able to do something with groff. or pr, maybe with something like '... | pr --columns=2 -a -l90 -t'
Heh, I like it.
I like it so much too. Thanks all! -- Mick

Michele Bert <micbert75@gmail.com> writes:
That's amazing! I read the whole emacs manual a couple of years ago (a quite old versione, really), but I didn't remember anything like that. Does anyone know which version introduced this features?
follow-mode has been there since at least 22. You might try reading the NEWS or ANTINEWS docs that ship with emacs. Emacs has a discoverability problem. (You know, that thing MS Word tried to solve with Clippy?) The best way I've found to discover emacs functionality is to lurk in the IRC channel or ML. That and to study other's init.el's.

Il giorno 07/feb/2015, alle ore 06:42, Brian May <brian@microcomaustralia.com.au> ha scritto:
On 7 February 2015 at 16:39, Tim Connors <tim.w.connors@gmail.com> wrote:
Anyone heard of a way of splitting your terminal into 2 columns (newspaper style columns) where your eg. 180x49 sized xterm then becomes an emulated eg. 90x98 sized xterm? Preferably supporting the full ansi escape sequences.
I think any of tmux, screen, emacs, etc, will do this... Not emacs, neither screen as far as I know. Maybe tmux.
Why such an interesting request! What's the purpose? Mick

On Sat, 7 Feb 2015, Michele Bert wrote:
Il giorno 07/feb/2015, alle ore 06:42, Brian May <brian@microcomaustralia.com.au> ha scritto:
On 7 February 2015 at 16:39, Tim Connors <tim.w.connors@gmail.com> wrote:
Anyone heard of a way of splitting your terminal into 2 columns (newspaper style columns) where your eg. 180x49 sized xterm then becomes an emulated eg. 90x98 sized xterm? Preferably supporting the full ansi escape sequences.
I think any of tmux, screen, emacs, etc, will do this... Not emacs, neither screen as far as I know. Maybe tmux.
Why such an interesting request! What's the purpose?
Too many output lines in a machine status health display. Added a bunch more webservers yesterday that I want to be able to see! Modern screens are wide enough, but the manufacturers are still too cheap to make vertical pixels. -- Tim Connors

On 7 February 2015 at 19:05, Tim Connors <tim.w.connors@gmail.com> wrote:
Modern screens are wide enough, but the manufacturers are still too cheap to make vertical pixels.
Rotate the display 90 degrees, i.e. portrait instead of landscape? -- Brian May <brian@microcomaustralia.com.au>

On Sat, 2015-02-07 at 19:05 +1100, Tim Connors wrote:
On Sat, 7 Feb 2015, Michele Bert wrote:
Il giorno 07/feb/2015, alle ore 06:42, Brian May <brian@microcomaustralia.com.au> ha scritto:
On 7 February 2015 at 16:39, Tim Connors <tim.w.connors@gmail.com> wrote:
Anyone heard of a way of splitting your terminal into 2 columns (newspaper style columns) where your eg. 180x49 sized xterm then becomes an emulated eg. 90x98 sized xterm? Preferably supporting the full ansi escape sequences.
I think any of tmux, screen, emacs, etc, will do this... Not emacs, neither screen as far as I know. Maybe tmux.
Why such an interesting request! What's the purpose?
Too many output lines in a machine status health display. Added a bunch more webservers yesterday that I want to be able to see!
Modern screens are wide enough, but the manufacturers are still too cheap to make vertical pixels.
How about a wide display rotated in both software and physically. A large modern relatively high resolution TV should do a lot on that score. Might also be a lot less trouble to research and set up and configure. I seem to remember something about a utility to resize and reorient the display on the screen, especially linked to multi-headed display environments. Regards, Mark Trickett

On 7 February 2015 at 21:50, Mark Trickett <marktrickett@gmail.com> wrote:
How about a wide display rotated in both software and physically. A large modern relatively high resolution TV should do a lot on that score. Might also be a lot less trouble to research and set up and configure. I seem to remember something about a utility to resize and reorient the display on the screen, especially linked to multi-headed display environments.
Coincidence? Looks like we both sent the same response at pretty much the same time... (seems your clock is fast however, when I got it my clock was still saying 21:48) -- Brian May <brian@microcomaustralia.com.au>

On Sat, 7 Feb 2015, Mark Trickett <marktrickett@gmail.com> wrote:
How about a wide display rotated in both software and physically. A large modern relatively high resolution TV should do a lot on that score. Might also be a lot less trouble to research and set up and configure. I seem to remember something about a utility to resize and reorient the display on the screen, especially linked to multi-headed display environments.
http://mjg59.dreamwidth.org/8705.html TVs apparently tend to be bad for computer use. http://accessories.ap.dell.com/sna/sna.aspx?c=au&cs=audhs1&l=en&s=dhs&~topic... n-up-ultrasharp-monitors FullHd (1920*1080) isn't high resoltion anyway. Dell has a selection of monitors with higher resolutions and a list price of less than $700. Note that RACV members get discounts on the Dell web site so it's even cheaper. -- My Main Blog http://etbe.coker.com.au/ My Documents Blog http://doc.coker.com.au/

On Sat, Feb 07, 2015 at 07:05:09PM +1100, Tim Connors wrote:
Too many output lines in a machine status health display. Added a bunch more webservers yesterday that I want to be able to see!
i think you'll have to modify your status display program to support multi-column or perhaps tabulated output. as i mentioned before, you can do that with curses. or if you don't want any of that fancy text windowing crap, you could write a filter that takes your output as input and prints it as two columns (perhaps as simple as reading the input into a buffer and then printing it with "row[n] row[n+90]" joined on the same line). hmmm. you may be able to do something with groff. or pr, maybe with something like '... | pr --columns=2 -a -l90 -t' craig -- craig sanders <cas@taz.net.au>

On Sun, 8 Feb 2015, Craig Sanders wrote:
On Sat, Feb 07, 2015 at 07:05:09PM +1100, Tim Connors wrote:
Too many output lines in a machine status health display. Added a bunch more webservers yesterday that I want to be able to see!
i think you'll have to modify your status display program to support multi-column or perhaps tabulated output. as i mentioned before, you can do that with curses. or if you don't want any of that fancy text windowing crap, you could write a filter that takes your output as input and prints it as two columns (perhaps as simple as reading the input into a buffer and then printing it with "row[n] row[n+90]" joined on the same line).
hmmm. you may be able to do something with groff. or pr, maybe with something like '... | pr --columns=2 -a -l90 -t'
Heh, I like it. -- Tim Connors

On Sun, 8 Feb 2015, Craig Sanders wrote:
On Sat, Feb 07, 2015 at 07:05:09PM +1100, Tim Connors wrote:
Too many output lines in a machine status health display. Added a bunch more webservers yesterday that I want to be able to see!
i think you'll have to modify your status display program to support multi-column or perhaps tabulated output. as i mentioned before, you can do that with curses. or if you don't want any of that fancy text windowing crap, you could write a filter that takes your output as input and prints it as two columns (perhaps as simple as reading the input into a buffer and then printing it with "row[n] row[n+90]" joined on the same line).
hmmm. you may be able to do something with groff. or pr, maybe with something like '... | pr --columns=2 -a -l90 -t'
Duh, don't know what google-fu I was missing last time I looked at this, but: http://stackoverflow.com/questions/9148497/outputting-terminal-to-multiple-c... I've just written a bloody paginator in shell script. Gosh I'm evil. -- Tim Connors

2015-04-15 9:24 GMT+02:00 Tim Connors <tim.w.connors@gmail.com>:
Duh, don't know what google-fu I was missing last time I looked at this, but:
http://stackoverflow.com/questions/9148497/outputting-terminal-to-multiple-c...
I've just written a bloody paginator in shell script. Gosh I'm evil.
Limitation: it does not work interactivelly. It reads all the output, determines the number of columns based on the length of the longest row, and after an EOF it displays the output. In case you'd need interaction, emacs follow-mode is better ;-) -- Mick

On Sat, Feb 07, 2015 at 04:39:17PM +1100, Tim Connors wrote:
Anyone heard of a way of splitting your terminal into 2 columns (newspaper style columns) where your eg. 180x49 sized xterm then becomes an emulated eg. 90x98 sized xterm? Preferably supporting the full ansi escape sequences.
i used to use splitvt for this. screen can do it as well. BTW, many programs will use the ROWS and COLUMNS environment variables - so you might be able to set COLUMNS=90 before running the program. actually, the coffee's kicked in and i just re-read your question so ignore all that. you want ONE terminal with two linked columns (bottom of first column extends to top of second column, like a newspaper). screen and splitvt (and tmux and others) create two (or more) completely independent ptys inside the terminal. i don't know of anything that does what you want - it would probably have to be written into the application itself, ncurses can be made to support multiple columns.....and web browsers can do it if the CSS and HTML tell them to. otherwise, if 90x98 is what you really need (and the two columns is just a compromise for a small monitor), you could buy a really big pivot screen and turn it on it's side so that it's tall rather than wide. craig -- craig sanders <cas@taz.net.au>

On 07/02/15 16:39, Tim Connors wrote:
Anyone heard of a way of splitting your terminal into 2 columns (newspaper style columns) where your eg. 180x49 sized xterm then becomes an emulated eg. 90x98 sized xterm? Preferably supporting the full ansi escape sequences.
Helmut Grohne has Python code for a rudimentary multicolumn terminal which runs inside another terminal (BSD licence). It supports some ANSI sequences. http://subdivi.de/~helmut/tcvt/ Glenn -- sks-keyservers.net 0x6d656d65
participants (8)
-
Brian May
-
Craig Sanders
-
Glenn McIntosh
-
Mark Trickett
-
Michele Bert
-
Russell Coker
-
Tim Connors
-
trentbuck@gmail.com