"The entire argument for zmx instead of something like tmux that has windows, panes, splits, etc. is that job should be handled by your os window manager."
For me, tmux is the "os window manager"
I work in textmode; I do not use a terminal emulator
Before tmux I used NetBSD's window(1) which used to be included in the userland, i.e., the "base system"
Tried 3/4 of the tools, and none helped me reattach neovim.
Ended up using dtach. Needs to be run ahead of time, but very direct and minimal stdin/stdout piping tool that's worked great with everything I've thrown at it.
https://github.com/crigler/dtach
Awesome, I was imagining how something like this would be good for me at home. This almost seems perfect, and autossh + the ssh 'aliases' (d.term) in the readme are new to me so TIL. Thanks for sharing.
It would be nice if the "prior art" section did a compare/contrast. Like, it sounds like abduco does the same thing; why should I prefer this over that?
To answer your question directly: abduco does not restore terminal state or history. All it does is force a redraw on re-attach. This works for some programs but for many it does not (e.g. htop).
zmx holds onto terminal state and history and sends a snapshot on re-attach.
if you want anything other than "switch to another full terminal window, no splits, no status bar" then you want tmux or screen or zellij - this tool and the others like it are explicitly avoiding becoming (nested) terminal emulators like tmux and screen and zellij.
at least I think it would be possible to do "switch to another full terminal window, no splits, no status bar" without being a terminal emulator, I haven't tried.
"The entire argument for zmx instead of something like tmux that has windows, panes, splits, etc. is that job should be handled by your os window manager."
For me, tmux is the "os window manager"
I work in textmode; I do not use a terminal emulator
Before tmux I used NetBSD's window(1) which used to be included in the userland, i.e., the "base system"
If you like this tool, you might also be interested in reptyr, which lets you reparent a process to a different tty.
https://blog.nelhage.com/2011/02/changing-ctty/
and some other tools similar to reptyr:
https://github.com/jerome-pouiller/reredirect/
https://github.com/pasky/retty
https://github.com/trishume/telefork
Tried 3/4 of the tools, and none helped me reattach neovim.
Ended up using dtach. Needs to be run ahead of time, but very direct and minimal stdin/stdout piping tool that's worked great with everything I've thrown at it. https://github.com/crigler/dtach
have you tried diss, shpool or abduco?
also vmux appears to be specifically tailored to vim/neovim
https://github.com/yazgoo/vmux
Awesome, I was imagining how something like this would be good for me at home. This almost seems perfect, and autossh + the ssh 'aliases' (d.term) in the readme are new to me so TIL. Thanks for sharing.
It would be nice if the "prior art" section did a compare/contrast. Like, it sounds like abduco does the same thing; why should I prefer this over that?
Great point! I'll add a comparison to the readme.
To answer your question directly: abduco does not restore terminal state or history. All it does is force a redraw on re-attach. This works for some programs but for many it does not (e.g. htop).
zmx holds onto terminal state and history and sends a snapshot on re-attach.
Does zmx have the ability to send keys to other terminals, as in Tmux ?
I want this, but with the window switcher from tmux
if you want anything other than "switch to another full terminal window, no splits, no status bar" then you want tmux or screen or zellij - this tool and the others like it are explicitly avoiding becoming (nested) terminal emulators like tmux and screen and zellij.
at least I think it would be possible to do "switch to another full terminal window, no splits, no status bar" without being a terminal emulator, I haven't tried.
I want to add a `zmx switch` command to detach+reattach to another session. Still thinking through the impl.
[dead]