Skip to content

Bug: Wrong background color in catppuccin-frappe tmux theme #530

@LucEast

Description

@LucEast

I am not requesting help with my configuration and believe something is genuinely broken.

  • Something is really actually broken.

Is there an existing issue outlining your problem?

Describe your problem.

When using the catppuccin-frappe theme in tmux alongside the official iTerm2 Frappe color scheme, the background color used by tmux is noticeably too light. Instead of the expected #303446, it shows as #53586b.

Paste your configuration.

tmux.conf
# .tmux.conf of Lucas "LucEast" Ostmann, based on others (see below)
# last modified: 01 Mai 2025
# Using tmux 3.5a
#
# Remember: prefix-? shows all keybindings
# Priority: prefix key and reloading tmux.conf:
#-------------------------------------------------------#

# === LOOK & FEEL === #
set -g default-terminal "tmux-256color"
set -g @catppuccin_flavor 'frappe' # latte, frappe, macchiato or mocha
set -gq @catppuccin_status_left_separator ""
set -gq @catppuccin_window_text "#(t=\$(tmux display-message -p ' #T'); [ \${#t} -le 15 ] && echo \"\$t\" || echo \" ...\${t: -15}\")"
set -gq @catppuccin_window_current_text "#(t=\$(tmux display-message -p ' #T'); [ \${#t} -le 15 ] && echo \"\$t\" || echo \" ...\${t: -15}\")"

# Load catppuccin
run ~/.config/tmux/plugins/catppuccin/tmux/catppuccin.tmux

# Make the status line pretty and add some modules
set -g status-right-length 100
set -g status-left-length 100
set -g status-justify "left"
set -g status-left ""
set -g status-right "#{E:@catppuccin_status_application}"
set -ag status-right "#{E:@catppuccin_status_directory}"
set -ag status-right "#{E:@catppuccin_status_user}"
set -ag status-right "#{E:@catppuccin_status_host}"
set -ag status-right "#{E:@catppuccin_status_date_time}"

# === PREFIX KEY SETTINGS === #
unbind C-b 
set -g prefix C-a  
bind C-a send-prefix
bind r source-file ~/.tmux.conf \; display "Reloaded ~/.tmux.conf"

# === R DEVELOPMENT ENVIRONMENT SETUP === #
bind F4 \
    select-window -t :=1 \;\
    rename-window 'R' \;\
    split-window -h -c '#{pane_current_path}' \;\
    new-window -c '#{pane_current_path}' \;\
    rename-window 'scripts' \;\
    new-window -c '#{pane_current_path}' \;\
    rename-window 'git' \;\
    new-window -c '#{pane_current_path}' \;\
    rename-window 'tests' \;\
    select-window -t :=1 \;\
    display "R development environment created"

# === WINDOW NAVIGATION === #
bind -r b previous-window
bind -r n next-window
bind -r p last-window

# === TERMINAL ADMINISTRATION === #
set -g mouse on
set -g default-terminal "xterm-256color"
set -g base-index 1
set -g pane-base-index 1
setw -g mode-keys vi
set -g status-keys vi

# === PANE COLORS (commented out for now) === #
# set -g window-style 'fg=colour247,bg=colour236'
# set -g window-active-style 'fg=colour250,bg=black'
# set -g pane-border-bg colour235
# set -g pane-border-fg colour238
# set -g pane-active-border-bg colour236
# set -g pane-active-border-fg colour51
# set -g pane-border-style fg=colour6

# === PANE NAVIGATION AND MANAGEMENT === #
bind _ split-window -h -c '#{pane_current_path}'
bind - split-window -v -c '#{pane_current_path}'
bind c new-window -c '#{pane_current_path}'

bind -n M-Left select-pane -L
bind -n M-Right select-pane -R
bind -n M-Up select-pane -U
bind -n M-Down select-pane -D

bind -r j resize-pane -D 2
bind -r k resize-pane -U 2
bind -r h resize-pane -L 2
bind -r l resize-pane -R 2

# Pane Movement
bind J switch-client -T joinops
bind -T joinops v command-prompt -p "join vertical from:" "join-pane -v -s '%%' ; switch-client -T root"
bind -T joinops h command-prompt -p "join horizontal from:" "join-pane -h -s '%%' ; switch-client -T root"

bind S switch-client -T sendops
bind -T sendops v command-prompt -p "send vertical to:" "join-pane -v -t '%%' ; switch-client -T root"
bind -T sendops h command-prompt -p "send horizontal to:" "join-pane -h -t '%%' ; switch-client -T root"

# === PANE COPY/PASTING === #
bind C-v paste-buffer

# === ESCAPE TIME === #
set -s escape-time 1

# === STATUS LINE AND MESSAGES === #
set -g status-bg black
setw -g monitor-activity on
set -g visual-activity on

# === macOS SPECIFIC SETTINGS === #
if-shell 'test "$(uname)" = "Darwin"' 'source ~/.tmux-osx.conf'

# === LaTeX ADDITIONS === #
# F6: pdflatex
bind-key -n F6 send-keys Escape :w C-m \; split-window -v -p 20 -c '#{pane_current_path}' \; send-keys clear C-m\; send-keys 'thistexfile=$(ls -1t *.tex | head -1)' C-m \; send-keys 'pdflatex $thistexfile && exit' C-m 

# F5: xelatex
bind-key -n F5 send-keys Escape :w C-m \; split-window -v -p 20 -c '#{pane_current_path}' \; send-keys clear C-m\; send-keys 'thistexfile=$(ls -1t *.tex | head -1)' C-m \; send-keys 'xelatex $thistexfile && exit' C-m 

# F7: masterfile compile
bind-key -n F7 send-keys Escape :w C-m \; split-window -v -p 20  -c '#{pane_current_path}' \; send-keys 'thistexfile=$(ls -1t *.tex | head -1)' C-m \; send-keys 'mastertexfile=$(ls -1t *.latexmaster | head -1)' C-m \; send-keys 'echo $mastertexfile' C-m  \; send-keys clear C-m \; send-keys 'texfiletocompile=`echo $mastertexfile | sed -E ' \; send-keys "'s/(.*).latexmaster(.*)/\\1/'`" C-m  \; send-keys 'if [ -z "$texfiletocompile" ] ; then exit ;  else pdflatex $texfiletocompile && exit; fi' C-m

# F8: bibtex
bind-key -n F8 send-keys Escape :w C-m \; split-window -v -p 20 -c '#{pane_current_path}'   \; send-keys 'thistexfile=$(ls -1t *.tex | head -1)' C-m \; send-keys clear C-m \; send-keys 'thisfilebase=`echo $thistexfile | sed -E ' \; send-keys "'s/(.*).tex(.*)/\\1/'`" C-m  \; send-keys 'echo $thisfilebase' C-m \; send-keys 'auxext=.aux' C-m \; send-keys 'thisauxfile=$thisfilebase$auxext' C-m \; send-keys 'echo $thisauxfile' C-m \; send-keys 'bibtex $thisauxfile && exit || printf "\nError while compiling $thisauxfile ; perhaps no .bib file/references for $thistexfile \n\n"' C-m

# === PLUGINS === #
set -g @plugin 'tmux-plugins/tpm'
set -g @plugin 'tmux-plugins/tmux-sensible'

# Initialize TMUX plugin manager (keep this line at the very bottom of tmux.conf)
run '~/.tmux/plugins/tpm/tpm'

### End of tmux.conf
tmux-osx.conf
# === KEYS === #

unbind C-b
set-option -g prefix C-a
bind C-a send-prefix

unbind /
bind / last-window

unbind o
bind o select-pane -t :.-

bind C-q command-prompt -I "htop" -p "Quick window command: " "new-window '%%'"

bind p paste-buffer

bind C-c run "tmux save-buffer - | pbcopy"
bind C-v run "tmux set-buffer \"$(pbpaste)\"; tmux paste-buffer"

bind C-s choose-session

# === OPTIONS === #

set-option -g status-keys vi
set-option -g mode-keys vi

set -sg escape-time 0

set -g base-index 1
setw -g pane-base-index 1

Attach screenshots.

Image

What tmux version are you seeing the issue on?

tmux 3.5a

What shell are you using?

zsh

Any additional comments?

How to reproduce:

  1. Set iTerm2 to use the official Catppuccin Frappe theme
  2. Configure tmux with the following:
set -g @catppuccin_flavour 'frappe'
run-shell ~/.tmux/plugins/catppuccin-tmux/catppuccin.tmux
  1. Open a new tmux session: tmux new -As
  2. Observe the background color mismatch

This issue seems to be related to how tmux picks up the background color from the terminal emulator.
When I switch the color scheme in iTerm2, the tmux background changes accordingly — it doesn’t appear to be set explicitly by the tmux theme.
I’ve observed the same behavior with MobaXTerm on Windows: tmux background inherits the terminal’s background rather than applying the expected #303446 from the theme

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions