|
|
|
|
|
by em-bee
1988 days ago
|
|
tmux supports multiple sessions and switching between those. sessions behave independently like your screen windows. you can of course have multiple windows in each session, which then behave the tmux way.
you can also have the same window show up in multipe sessions and use that to emulate screen behavior. (i saw a script to help with that some time ago) for me, multiple sessions alone provide enough flexibility. |
|
I actually did try to get the behavior I wanted out of nested tmux invocations and a hairy mess of scripts. There was no 'next-session' command (though now it looks like 'switch-client -l/-n/-p' would work. Hmm.)
I couldn't get it to work right, only a half-done approximation, and it involved way too many tmux interpositions.
Screen: client -> per client view of P panes -> P of entire pool of T terminals in session.
Tmux: client -> 1 of S sessions -> 1 of W windows -> P panes
To get splitting at the top level I need one top-level tmux client and its associated top-level session managed by one server. It can actually be locked to one window for what I care about.
In each of its panes, I need to run another tmux client so as to be able to actually change what final pty each pane will display. And each of these need to be separate sessions, so that I can display separate things in each of them. Each of these separate sessions will generally only have one window, with its implicit single pane. I should, of course, run all of these inner tmux sessions as a separate server from the top one.
Now I just have to make restricted keybindings for both the top and inner clients, and make make sure that any binding for the inner clients are replicated as "self-insert" in the top-level client. And remember that there are multiple places I can direct the command-lines (so need two bindings).
This results in the top level server having: client -> session -> 1 window -> P Panes -> P clients
And the bottom server having: P clients -> T sessions -> T windows -> T panes
And this doesn't yet let you have multiple top-level clients attached the way screen does.
I'm sure I could eventually sand off all the sharp edges where it doesn't do what I want and make this work.
Or I could just use screen.