210

I know that it's possible in tmux to join a window as a pane, but is it possible to move a pane to it's own window (tab)? I tried searching it up the man page but couldn't find it. I guess it is possible doing it through a shell script, but is there some other, more elegant way?

4 Answers 4

213

Relevant tmux Commands

  • join-pane -s
  • join-pane -t
  • break-pane

Bindings

You could add the following bindings to your ~/.tmux.conf:

## Join windows: <prefix> s, <prefix> j
bind-key j command-prompt -p "join pane from:"  "join-pane -s '%%'"
bind-key s command-prompt -p "send pane to:"  "join-pane -t '%%'"

The above can move panes between existing windows.

For breaking a pane to a new window, use break-pane (which can also be bound).

Alterative Use

All three commands can be used from the tmux's prompt like: <prefix>+: then break-pane
Or at the shell's prompt (inside tmux) with: tmux break-pane.

5
  • 16
    It's worth noting that you target a pane using the following format: "mysession:mywindow.mypane" (if in a different session), and "mywindow.mypane" (if in the same session). You can also use "mysession:progname" if the program running in that pane is unique.
    – Ben Davis
    Feb 13, 2014 at 0:32
  • 34
    bind-key ! from the other answer is all I need.
    – the
    Nov 10, 2014 at 15:22
  • And what is the difference between join-pane -s and join-pane -t?
    – Jean Paul
    Jan 19, 2021 at 13:48
  • @JeanPaul well, if the Answer didn't give you context, the tldr; is -s == "get the pane from there and bring it here"; while -t == "take this current pane and send it there".
    – demure
    Jan 20, 2021 at 14:34
  • 2
    Thanks. I also found by reading the man that if there are several panes in the window we want to import, we can choose the pane by doing for exampe join-pane -s 4.0 (a bad habit from computer scientists to always want to start numerotation from 0 but it's another issue).
    – Jean Paul
    Jan 20, 2021 at 15:36
197

From the commands list, you can see that it's called break-pane and the command is just

bind-key !

where bind-key is defaulted to Ctrl+B

4
  • 7
    is there a away to attach back "breaked" pane?
    – nazikus
    Jun 29, 2014 at 11:27
  • 5
    @nazikus you can use join-pane. If you don't see any bindings for it in bind-key ? (I didn't), you can summon the command prompt with bind-key : and execute join-pane -t <destination pane index>. Jul 15, 2015 at 19:14
  • 6
    Don't forget the colon! It's join-pane -t <optional session name>:<destination pane index> e.g. join-pane -t :0
    – Walf
    Jul 28, 2016 at 7:11
  • WOW!! Thanks! :) +1!
    – rmbianchi
    Aug 5, 2020 at 11:10
13

In the latest version of tmux, installed from homebrew on OSx - 1.9a - the default key-binding implements join-pane with a menu

bind-key          S choose-window "join-pane -v -s "%%""
bind-key          V choose-window "join-pane -h -s "%%""
6

tmux 1.8 or above:

If you are intending to go to a "fullscreen" mode, you can use:

bind-keyz

to "zoom in" (and also zoom-out after you finished your work).

1
  • Yes, but if from there I want to keep opening new windows and don't want the old context taking up space, I need to break away.
    – Francesco
    Oct 23, 2020 at 18:48

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.