Re:Workflow in tmux
by rogerbinns on Saturday April 13, 2013 @03:04PM
(#5544248)
Since I use byobu I neither know nor care what is going on under the hood. I use 4 keystrokes - F2 to start a new shell, F3 to cycle back, F4 to cycle forwards and ctrl-F5 to reconnect sockets (GPG agent, DBUS etc).
I did switch it from screen to tmux because tmux definitely works better for other things and seems more responsive when there is lots of output. By default screen did let each client view independent of any other.
I don't see how to automate getting the behaviour I want (independent client views) as typing commands and feeding them into tmux would be a huge pain (especially as byobu is already doing that).
It really depends on what your workflow is. If you only ever have a single tmux session, then you could write a quick script that starts a session if it doesn't exist, but if it does, automatically creates a mirrored session and connects to it. In this workflow, you can assume which session you want to group with, but if you work with multiple sessions, then there is no way to automatically do this. E.g., you could run something like:
$ tmux.sh session-name
which would create the session the first time, and create a grouped session, the second time.Edit:
I've created a little script for this: https://github.com/bsandrow/tmux.sh
Re:Workflow in tmux
by rogerbinns on Saturday April 13, 2013 @08:29PM
(#5545292)
I created a byobu ticket to cover this issue as it is what ultimately starts/connects tmux pointing to this thread. Thanks for the solution. https://bugs.launchpad.net/byobu/+bug/1168734
You could petition for an option to the `attach-session` command that automatically creates a new session grouped to the session that you're 'attaching' to. IIRC, you can't attach two 'clients' to the same (GNU) screen session unless you use the -x option, so it's not like it's the 'default' behaviour for screen either.
Edit:
I wasn't thinking, but `new-session` will automatically connect to the new session you created, so there is no need for an option to `attach-session`. So when you want to connect a second client, just:
Edit 2: Depends. If you're using byobu, then you're already attempting to abstract away a bunch of the complexity of GNU screen, so it's not like you would find less complexity if you dove into the screen internals. It's also this design that makes it easier to do complex things that screen can't do with its windows. Maybe you're misunderstanding. You still use the same tmux bindings to switch windows, it's just the setting up of the session that requires slightly more work when connecting a second client.