Halcyon for Tmux
A port of the Halcyon theme based on Catppuccin for Tmux.
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 bellow on the options available.
- Install TPM
- Add the Halcyon plugin:
set -g @plugin 'michelegera/tmux-halcyon'
# ...alongside
set -g @plugin 'tmux-plugins/tpm'
- Copy your desired theme's configuration contents into your Tmux config (usually stored at
~/.tmux.conf
) - Reload Tmux by either restarting the session or reloading it with
tmux source-file ~/.tmux.conf
This is a diagram on how the theme is split between it's components.
To customize the appearance of the theme, add any of the following options to your Tmux configuration.
set -g @halcyon_window_left_separator "█"
set -g @halcyon_window_middle_separator "█"
set -g @halcyon_window_right_separator "█"
set -g @halcyon_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
set -g @halcyon_window_status_enable "yes"
Values:
- yes - this will enable the window status part
- no - this will disable the window status part
set -g @halcyon_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
set -g @halcyon_icon_window_last ""
set -g @halcyon_icon_window_current ""
set -g @halcyon_icon_window_zoom ""
set -g @halcyon_icon_window_mark ""
set -g @halcyon_icon_window_silent ""
set -g @halcyon_icon_window_activity ""
set -g @halcyon_icon_window_bell ""
set -g @halcyon_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
set -g @halcyon_window_default_text "#{b:pane_current_path}" # use "#W" for application instead of directory
set -g @halcyon_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
set -g @halcyon_window_current_text "#{b:pane_current_path}" # use "#W" for application instead of directory
set -g @halcyon_window_current_format_directory_text "#{b:pane_current_path}"
Use this to overide the way the current directory is displayed.
set -g @halcyon_window_format_directory_text "#{b:pane_current_path}"
Use this to overide the way the directory is displayed.
set -g @halcyon_status_left_separator ""
set -g @halcyon_status_right_separator "█"
set -g @halcyon_status_right_separator_inverse "no"
Values:
- yes - the colors will be inverted for the right separator
- no - the colors will not be inverted for the right separator
set -g @halcyon_status_connect_separator "yes"
Values:
- yes - the background color of the separator will not blend in with the brackground color of tmux
- no - the background color of the separator will blend in with the brackground color of tmux
set -g @halcyon_status_fill "icon"
Values:
- icon - only the icon of the module will have color
- all - the entire module will have the same color
set -g @halcyon_status_modules "application session"
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
- battery - display the battery
Every module (except the module "session") supports the following overrides:
set -g @halcyon_[module_name]_icon "icon"
set -g @halcyon_[module_name]_color "color"
set -g @halcyon_[module_name]_text "text"
set -g @halcyon_[module_name]_[option] "null"
This is for the situation where you want to remove the icon from a module. Ex:
set -g @halcyon_date_time_icon "null"
This module depends on tmux-battery.
The prefered way to install tmux-battery is using TPM.
Load tmux-battery after you load halcyon.
set -g @plugin 'michelegera/tmux-halcyon'
...
set -g @plugin 'tmux-plugins/tmux-battery'
Add the battery module to the status modules list.
set -g @halcyon_status_modules "... battery ..."
It is possible to add a new custom module or overrite any of the existing modules.
Look into custom/README.md for more details.
Any file added to the custom folder will be preserved when updating halcyon.
Below are provided a few configurations as examples or starting points.
Note: When switching bettwen configurations run:
tmux kill-server
In order to kill the tmux server and clear all global variables.
set -g @halcyon_window_right_separator "█ "
set -g @halcyon_window_number_position "right"
set -g @halcyon_window_middle_separator " | "
set -g @halcyon_window_default_fill "none"
set -g @halcyon_window_current_fill "all"
set -g @halcyon_status_modules "application session user host date_time"
set -g @halcyon_status_left_separator "█"
set -g @halcyon_status_right_separator "█"
set -g @halcyon_date_time_text "%Y-%m-%d %H:%M:%S"
set -g @halcyon_window_left_separator "█"
set -g @halcyon_window_right_separator "█ "
set -g @halcyon_window_number_position "right"
set -g @halcyon_window_middle_separator " █"
set -g @halcyon_window_default_fill "number"
set -g @halcyon_window_current_fill "number"
set -g @halcyon_window_current_text "#{pane_current_path}"
set -g @halcyon_status_modules "application session date_time"
set -g @halcyon_status_left_separator ""
set -g @halcyon_status_right_separator " "
set -g @halcyon_status_right_separator_inverse "yes"
set -g @halcyon_status_fill "all"
set -g @halcyon_status_connect_separator "no"
set -g @halcyon_window_left_separator ""
set -g @halcyon_window_right_separator " "
set -g @halcyon_window_middle_separator " █"
set -g @halcyon_window_number_position "right"
set -g @halcyon_window_default_fill "number"
set -g @halcyon_window_default_text "#W"
set -g @halcyon_window_current_fill "number"
set -g @halcyon_window_current_text "#W"
set -g @halcyon_status_modules "directory user host session"
set -g @halcyon_status_left_separator " "
set -g @halcyon_status_right_separator ""
set -g @halcyon_status_right_separator_inverse "no"
set -g @halcyon_status_fill "icon"
set -g @halcyon_status_connect_separator "no"
set -g @halcyon_directory_text "#{pane_current_path}"
Copyright © 2021-present Catppuccin Org