I am trying to find a way to easily toggle between light/dark solarized themes without needing to create a new terminal/tmux session. I am running mintty on a Windows machine and usually log into a Linux machine and connect to a tmux session.

Using mavnn's solarized mintty colors and seebi's solarized tmux colors, I have written some bash functions that can change the terminal colors on the fly. This is in my .bashrc:

function godark()
    tmux source-file ~/tmux/tmuxcolors-dark.conf

function golight()
    tmux source-file ~/tmux/tmuxcolors-light.conf

So inside of sol.dark there are instructions such as:

echo -ne '\eP\e]10;#839496\a' # Foreground -> base0
echo -ne '\eP\e]11;#002B36\a' # Background -> base03

and inside of my tmuxcolors-dark.conf I'll have things such as:

set-option -g status-bg colour235 #base02
set-option -g status-fg colour130 #yellow

This is almost working. If I do not have tmux open I can type "godark" and mintty will change to a dark theme, but if I type this in tmux, it will change my tmux status bar to the correct theme, but my terminal background does not change color. I do not really understand ANSI escape sequences so maybe I'm doing something silly here. I'd appreciate any help in getting this working!

  • Try starting tmux as tmux -2 to support 256 colors, from inside a terminal set as screen-256color. For more info see this article.
    – harrymc
    Mar 16, 2015 at 19:32
  • Thanks, @harrymc. I did try this and unfortunately it did not help. From what I can tell I have 256 colors working fine, I just cannot switch between light and dark themes.
    – Jeff
    Mar 17, 2015 at 3:13

1 Answer 1


You can send an escape sequence from inside tmux to the containing terminal by transforming your escape sequence like this:

  1. double all occurrences of \e
  2. prepend \ePtmux;
  3. append \e\\

For example, using st as my terminal emulator, I can redefine color #1 (red) of its palette by executing

printf '\e]4;1;#aa0000\a'

To do the same from within tmux, I have to use

printf '\ePtmux;\e\e]4;1;#aa0000\a\e\\'

When using a shell script/function to switch colors, check for the $TMUX environment variable. If it is not empty, then you are inside tmux.


You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .