Skip to content

catppuccin/tmux

Repository files navigation

Logo
Catppuccin for Tmux

Content

  1. Themes
  2. Installation
  3. Overview
  4. Configuration options
    1. Window
    2. Window default
    3. Window current
    4. Status
    5. Pane
    6. Customizing modules
    7. Battery module
    8. CPU module
    9. Weather modules
    10. Load module
    11. Uptime module
  5. Create a custom module
  6. Configuration Examples
    1. Config 1
    2. Config 2
    3. Config 3

Themes

Installation

In order to have the icons displayed correctly please use/update your favorite patched font. If you do not have a patched font installed, you can override or remove any icon. Check the documentation below on the options available.

TPM

  1. Install TPM
  2. Add the Catppuccin plugin:
set -g @plugin 'catppuccin/tmux'
# ...alongside
set -g @plugin 'tmux-plugins/tpm'
  1. (Optional) Set your preferred flavor, it defaults to "mocha":
set -g @catppuccin_flavour 'latte' # or frappe, macchiato, mocha

Manual

  1. Clone this repository to your desired location (e.g. ~/.config/tmux/plugins/catppuccin)
  2. Add the following line to your tmux.conf file: run ~/.config/tmux/plugins/catppuccin/catppuccin.tmux
  3. (Optional) Set your preferred flavor and/or add configuration options as listed in Configuration Options.
  4. Reload Tmux by either restarting the session or reloading it with tmux source-file ~/.tmux.conf

Overview

Default This is a diagram of how the theme is split between its components.

Configuration options

All flavors support certain levels of customization that match our Catppuccin Style Guide. To add these customizations, add any of the following options to your Tmux configuration.

Window

Set the window separator

set -g @catppuccin_window_separator ""

Set the window left separator:

set -g @catppuccin_window_left_separator "β–ˆ"

Set the window middle separator:

set -g @catppuccin_window_middle_separator "β–ˆ"

Set the window right separator:

set -g @catppuccin_window_right_separator "β–ˆ"

Position the number:

set -g @catppuccin_window_number_position "left"

Values:

  • left - the number will be on the left part of the window
  • right - the number will be on the right part of the window

Enable window status:

set -g @catppuccin_window_status_enable "yes"

Values:

  • yes - this will enable the window status part
  • no - this will disable the window status part

Enable window status icons instead of text:

set -g @catppuccin_window_status_icon_enable "yes"

Values:

  • yes - this will replace the windows status text with icons
  • no - this will keep the windows status in text format

Override windows status icons

set -g @catppuccin_icon_window_last "σ°–° "
set -g @catppuccin_icon_window_current "σ°–― "
set -g @catppuccin_icon_window_zoom "󰁌 "
set -g @catppuccin_icon_window_mark "󰃀 "
set -g @catppuccin_icon_window_silent "σ°‚› "
set -g @catppuccin_icon_window_activity "σ±…« "
set -g @catppuccin_icon_window_bell "σ°‚ž "

Window default

Set the window default color fill:

set -g @catppuccin_window_default_fill "number"

Values:

  • number - only the number of the window part will have color
  • all - the entire window part will have the same color
  • none - the entire window part will have no color

Override the window default colors:

set -g @catppuccin_window_default_color "color" # text color
set -g @catppuccin_window_default_background "color"

Values:

  • color - a hexadecimal color value

Override the window default text:

set -g @catppuccin_window_default_text "#{b:pane_current_path}" # use "#W" for application instead of directory

Window current

Set the window current color fill:

set -g @catppuccin_window_current_fill "number"

Values:

  • number - only the number of the window part will have color
  • all - the entire window part will have the same color
  • none - the entire window part will have no color

Override the window current colors:

set -g @catppuccin_window_current_color "color" # text color
set -g @catppuccin_window_current_background "color"

Values:

  • color - a hexadecimal color value

Override the window current text:

set -g @catppuccin_window_current_text "#{b:pane_current_path}" # use "#W" for application instead of directory

Set the current directory format

set -g @catppuccin_window_current_format_directory_text "#{b:pane_current_path}"

Use this to override the way the current directory is displayed.

Set the directory format

set -g @catppuccin_window_format_directory_text "#{b:pane_current_path}"

Use this to override the way the directory is displayed.

Pane

Set the pane border style:

set -g @catppuccin_pane_border_style "fg=blue" # Use a value compatible with the standard tmux 'pane-border-style'

Set the pane active border style:

set -g @catppuccin_pane_active_border_style "fg=red" # Use a value compatible with the standard tmux 'pane-border-active-style'

Status

Set the default status bar visibility

set -g @catppuccin_status_default "off" # defaults to "on"

Override the default status background color

set -g @catppuccin_status_background "theme"

This will overwrite the status bar background:

  • "theme" will use the color from the selected theme
  • "default" will make the status bar transparent
  • use hex color codes for other colors

Note: you need to restart tmux for this to take effect:

tmux kill-server & tmux

Set the status module left separator:

set -g @catppuccin_status_left_separator "ξ‚Ά"

Set the status module right separator:

set -g @catppuccin_status_right_separator "β–ˆ"

Set the status connect separator:

set -g @catppuccin_status_connect_separator "yes"

Values:

  • yes - the background color of the separator will not blend in with the background color of tmux
  • no - the background color of the separator will blend in with the background color of tmux

Set the status module color fill:

set -g @catppuccin_status_fill "icon"

Values:

  • icon - only the icon of the module will have color
  • all - the entire module will have the same color

Set the status module justify value:

set -g @catppuccin_status_justify "left"

Values:

  • left
  • centre - puts the window list in the relative centre of the available free space
  • right
  • absolute-centre - uses the centre of the entire horizontal space

Pane

tmux_orange="#fab387"
set -g @catppuccin_pane_status_enabled "yes"
set -g @catppuccin_pane_border_status "top"
set -g @catppuccin_pane_left_separator "ξ‚Ά"
set -g @catppuccin_pane_right_separator "ξ‚΄"
set -g @catppuccin_pane_middle_separator "β–ˆ "
set -g @catppuccin_pane_number_position "left"
set -g @catppuccin_pane_default_fill "number"
set -g @catppuccin_pane_default_text "#{b:pane_current_path}"
set -g @catppuccin_pane_border_style "fg=$tmux_orange"
set -g @catppuccin_pane_active_border_style "fg=$tmux_orange"
set -g @catppuccin_pane_color "$tmux_orange"
set -g @catppuccin_pane_background_color "$tmux_orange"

Set the module list

set -g @catppuccin_status_modules_right "application session"
set -g @catppuccin_status_modules_left ""

Provide a list of modules and the order in which you want them to appear in the status.

Available modules:

  • application - display the current window running application
  • directory - display the basename of the current window path
  • session - display the number of tmux sessions running
  • user - display the username
  • host - display the hostname
  • date_time - display the date and time
  • uptime - display the uptime
  • battery - display the battery

Customizing modules

Every module (except the module "session") supports the following overrides:

Override the specific module icon

set -g @catppuccin_[module_name]_icon "icon"

Override the specific module color

set -g @catppuccin_[module_name]_color "color"

Override the specific module text

set -g @catppuccin_[module_name]_text "text"

Removing a specific module option

set -g @catppuccin_[module_name]_[option] "null"

This is for the situation where you want to remove the icon from a module. Ex:

set -g @catppuccin_date_time_icon "null"

Battery module

Requirements

This module depends on tmux-battery.

Install

The preferred way to install tmux-battery is using TPM.

Configure

Load tmux-battery after you load catppuccin.

set -g @plugin 'catppuccin/tmux'
...
set -g @plugin 'tmux-plugins/tmux-battery'

Add the battery module to the status modules list.

set -g @catppuccin_status_modules_right "... battery ..."

CPU module

Requirements

This module depends on tmux-cpu.

Install

The preferred way to install tmux-cpu is using TPM.

Configure

Load tmux-cpu after you load catppuccin.

set -g @plugin 'catppuccin/tmux'
...
set -g @plugin 'tmux-plugins/tmux-cpu'

Add the cpu module to the status modules list.

set -g @catppuccin_status_modules_right "... cpu ..."

Weather modules

tmux-weather

Requirements

This module depends on tmux-weather.

Install

The preferred way to install tmux-weather is using TPM.

Configure

Load tmux-weather after you load catppuccin.

set -g @plugin 'catppuccin/tmux'
...
set -g @plugin 'xamut/tmux-weather'

Add the weather module to the status modules list.

set -g @catppuccin_status_modules_right "... weather ..."

tmux-clima

Requirements

This module depends on tmux-clima.

Install

The preferred way to install tmux-clima is using TPM.

Configure

Load tmux-clima after you load catppuccin.

set -g @plugin 'catppuccin/tmux'
...
set -g @plugin 'vascomfnunes/tmux-clima'

Add the weather module to the status modules list.

set -g @catppuccin_status_modules_right "... clima ..."

Load module

Requirements

This module depends on tmux-loadavg.

Install

The preferred way to install tmux-loadavg is using TPM.

Configure

Load tmux-loadavg after you load catppuccin.

set -g @plugin 'catppuccin/tmux'
...
set -g @plugin 'jamesoff/tmux-loadavg'

Add the load module to the status modules list.

set -g @catppuccin_status_modules_right "... load ..."

Gitmux module

Requirements

This module depends on gitmux.

Install

To install gitmux, follow the instructions in the gitmux documentation.

Configure

Add the gitmux module to the status modules list.

set -g @catppuccin_status_modules_right "... gitmux ..."

To customize the gitmux module, you can follow the instrucctions in the gitmux documentation and add this line in your tmux configuration:

set -g @catppuccin_gitmux_text "#(gitmux -cfg $HOME/.gitmux.conf \"#{pane_current_path}\")"

Create a custom module

It is possible to add a new custom module or overwrite any of the existing modules.

For further details, see the documentation in custom/README.md

Any file added to the custom folder will be preserved when updating catppuccin.

Configuration Examples

Below are provided a few configurations as examples or starting points.

Note: When switching between configurations run:

tmux kill-server

To kill the tmux server and clear all global variables.

Config 1

Default

set -g @catppuccin_window_right_separator "β–ˆΒ "
set -g @catppuccin_window_number_position "right"
set -g @catppuccin_window_middle_separator " | "

set -g @catppuccin_window_default_fill "none"

set -g @catppuccin_window_current_fill "all"

set -g @catppuccin_status_modules_right "application session user host date_time"
set -g @catppuccin_status_left_separator "β–ˆ"
set -g @catppuccin_status_right_separator "β–ˆ"

set -g @catppuccin_date_time_text "%Y-%m-%d %H:%M:%S"

Config 2

Default

set -g @catppuccin_window_left_separator "ξ‚Ίβ–ˆ"
set -g @catppuccin_window_right_separator "β–ˆξ‚ΌΒ "
set -g @catppuccin_window_number_position "right"
set -g @catppuccin_window_middle_separator "  ξ‚Ίβ–ˆ"

set -g @catppuccin_window_default_fill "number"

set -g @catppuccin_window_current_fill "number"
set -g @catppuccin_window_current_text "#{pane_current_path}"

set -g @catppuccin_status_modules_right "application session date_time"
set -g @catppuccin_status_left_separator  "ξ‚Ά"
set -g @catppuccin_status_right_separator " ξ‚Ά"
set -g @catppuccin_status_fill "all"
set -g @catppuccin_status_connect_separator "yes"

Config 3

Default

set -g @catppuccin_window_left_separator "ξ‚Ά"
set -g @catppuccin_window_right_separator "ξ‚΄Β "
set -g @catppuccin_window_middle_separator " β–ˆ"
set -g @catppuccin_window_number_position "right"

set -g @catppuccin_window_default_fill "number"
set -g @catppuccin_window_default_text "#W"

set -g @catppuccin_window_current_fill "number"
set -g @catppuccin_window_current_text "#W"

set -g @catppuccin_status_modules_right "directory user host session"
set -g @catppuccin_status_left_separator  " ξ‚Ά"
set -g @catppuccin_status_right_separator "ξ‚΄"
set -g @catppuccin_status_fill "icon"
set -g @catppuccin_status_connect_separator "no"

set -g @catppuccin_directory_text "#{pane_current_path}"

πŸ’ Thanks to

Β 

Copyright Β© 2021-present Catppuccin Org