Resizing pane is not working for tmux on mac?

After searching through, I figured ctrl+b ( PREFIX ) then ctrl + arrow should resize the current pane. But it is not working. Am I missing anything ?

Thanks.


Solution 1:

Probably your terminal is not sending a (distinct) sequence when you hold Control and press an arrow key.

Try running cat and typing the keys into it (Control-C to quit). You will probably find that (e.g.) Up and Control-Up both generate the same sequence.

OS X Terminal application

In its default configuration the OS X Terminal application sends the sequence ^[[A (or ^[OA) whether you type Up or Control-Up (also any combination with Shift and Option, too).

However, you can reconfigure Terminal to send appropriate codes. It is a bit tedious, but you usually only have to do it once.

  1. Terminal > Preferences…
  2. Settings top-level tab
  3. pick the profile you want to modify
  4. Keyboard tab
  5. click the plus button to add a new binding

    • pick a cursor key
    • set the modifier to control
    • use the Send Text: action
    • type Escape (will show up as \033) followed by [1;5 and one more character:
      • A for Up,
      • B for Down,
      • C for Right, or
      • D for Left
    • click OK to add the binding

For example, the final sequence for Control-Up should end up looking like \033[1;5A.

These sequences are the ones that XTerm generates (see the ctlseqs documentation for details).

Repeat the last step for the other arrow keys.

iTerm 2

iTerm 2 sends the expected sequence by default.

Solution 2:

You can use the meta key instead of the control key in the ctrl-↑ and ctrl-↓ combinations. In OSX Terminal the default meta key is the escape key. For example, to increase the size of a pane type ctrl-b esc-↑.

I find the escape key a pain to reach so I use the option key as the meta key instead. In Terminal.app you can change it by going to Terminal > Preferences > Profiles > Keyboard : check the "Use Option as Meta Key".

Now you can type ctrl-b option-↑ to increase the size or ctrl-b option-↓ to decrease the size and you don't have to remap the mission control keys.

Solution 3:

On at least Mavericks and iTerm2, you have to hold Control, then press b (instead of holding), then hold down a directional button. This sends pretty much the same sequences as holding down Control-b with a directional button so it works.

Also, make sure to head over to keyboard settings and in shortcuts tab disable any mission control and such keyboard shortcuts you may have for Control plus a directional key.