Change background color of active or inactive pane in Tmux

It seems that tmux-2.1 (released 18 October 2015) now allows the colours of individual panes to be specified. From the changelog:

* 'select-pane' now understands '-P' to set window/pane background colours.

e.g. [from the manual] to change pane 1's foreground (text) to blue and background to red use:

select-pane -t:.1 -P 'fg=blue,bg=red'

To mimic iTerm colour scheme:

To answer the original question, I use the following lines in my ~/.tmux.conf for setting the background/foreground colours to mimic the behaviour in iTerm:

#set inactive/active window styles
set -g window-style 'fg=colour247,bg=colour236'
set -g window-active-style 'fg=colour250,bg=black'

# set the pane border colors 
set -g pane-border-style 'fg=colour235,bg=colour238' 
set -g pane-active-border-style 'fg=colour51,bg=colour236'

I hadn't seen the window-style and window-active-style commands before, but maybe they were available in previous tmux versions.

Also, these two lines are pretty useful for splitting panes easily:

bind | split-window -h
bind - split-window -v

EDIT: as Jamie Schembri mentions in the comments, tmux version 2.1 (at least) will now be installed with:

brew install tmux

EDIT (Oct 2017): brew now installs tmux 2.6, and the above still works.

EDIT Vim panes: If you find that the "inactive colouring" does not work with a Vim pane, it might be due to the colourscheme you are using. Try with the pablo scheme; i.e. in the Vim pane:

:colo pablo

To make it work with your own custom Vim colourscheme, make sure that the setting for Normal highlighting does not have ctermbg or guibg specified. As an example, the "inactive colouring" does not work with the murphy colourscheme, because in murphy.vim there is the line:

hi Normal    ctermbg=Black   ctermfg=lightgreen   guibg=Black   guifg=lightgreen

that sets ctermbg or guibg to Black. However, changing this line to:

hi Normal    ctermfg=lightgreen  guifg=lightgreen

will make the "inactive colouring" work.

EDIT July 2019 Augusto provided a good suggestion for also changing the background colour for the line numbers. What I use in my vim colourscheme is the following (you need to find and edit the colourscheme file):

hi Normal    guifg=#e6e1de ctermfg=none gui=none
hi LineNr    guifg=#e6e1de ctermfg=none gui=none

There is no option to change the background color of a pane, but there is option to set the pane-border color (style)

 pane-active-border-style style
                     Set the pane border style for the currently active 
pane.  For how to specify style, see the message-command-style option. 
 Attributes are ignored.


 pane-border-style style
                     Set the pane border style for paneas aside from the 
active pane.  For how to specify style, see the message-command-style option. 
 Attributes are
                     ignored.

Tags:

Tmux