Zmx: Session Persistence for Terminal Processes

(github.com)

46 points | by birdculture 2 days ago ago

13 comments

  • planckscnst 2 days ago ago

    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/

  • 000ooo000 2 days ago ago

    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.

  • yjftsjthsd-h a day ago ago

    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?

    • qudat a day ago ago

      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.

  • 1vuio0pswjnm7 a day ago ago

    "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"

  • d4rkp4ttern a day ago ago

    Does zmx have the ability to send keys to other terminals, as in Tmux ?

  • perrohunter a day ago ago

    I want this, but with the window switcher from tmux

    • bananapub a day ago ago

      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.

      • qudat a day ago ago

        I want to add a `zmx switch` command to detach+reattach to another session. Still thinking through the impl.

  • philzdev 2 days ago ago

    [dead]