Hacker News new | ask | show | jobs
by laumars 4499 days ago
That tmux broadcast trick sounds interesting. Are you able to provide some more details about it please?
2 comments

Pull up the command line with "Ctrl-b :" Synchronize your panes: "setw synchronize-panes on" Now you can send the same commands to all panes in the current window. To turn synchronization off: "setw synchronize-panes off"

My shell script takes in a list of tuples (hostname plus a special id that I need to paste for my tasks that's unique to each host), splits off a window pane for each hostname(tmux split-window -h), ssh's into each host in it's own pane, and turns on synchronization.

I did a little trick to setup pastebuffers to hold that special id from the tuple i passed in. And setup keybindings so that I can press a key combination to paste in that ID whenever I need it to each respective pane.

If I ever need to temporarily remove a pane or several panes from the syncronized session but keep the others synced, I just change focus to the pane I want to unsync and put it into copy mode with "Ctrl-b [". Can take the pane back out of copy mode by hitting "q".

So far it's made me much more productive when I have to run a bunch of identical commands on a cluster of nodes for which we have no defined process (i.e. I'm figuring it out as I go).

I'll need to sanitize the script, but I'll try to put up a github gist of the script later on.

Thanks for that :)

> I'll need to sanitize the script, but I'll try to put up a github gist of the script later on.

If you wouldn't mind, I'd be hugely grateful as I often find myself having to do similar tasks as what you describe (and even wanted to set up a script to auto start sessions in different panes like you do but wasn't aware that was possible).

While I do use tmux quite heavily (to the point where I found myself needing to rebind a lot of the keys to be more vi like or more convenient to manage one handed), I reckon I still only use about 10% of it's functionality. So it would be good to see other solutions based around tmux.

So, for those looking to make synching easy, you can add this to .tmux.conf

    bind S setw synchronize-panes
Without the on/off option, it acts as a toggle, making it a keystroke away.
I didn't know about it either but found this:

https://twitter.com/j_melis/status/179173797285478400

Seems like a neat trick