From 51b85e07a981d531ae18ea79dba2f665be2adee2 Mon Sep 17 00:00:00 2001 From: YongJieYongJie Date: Wed, 7 Feb 2024 00:22:10 -0800 Subject: [PATCH 01/49] feat(pane): different border color if pane_synchronized --- catppuccin.tmux | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/catppuccin.tmux b/catppuccin.tmux index da1e5f4c..bae70b3b 100755 --- a/catppuccin.tmux +++ b/catppuccin.tmux @@ -336,7 +336,10 @@ main() { local pane_status_enable=$(get_tmux_option "@catppuccin_pane_status_enabled" "no") # yes local pane_border_status=$(get_tmux_option "@catppuccin_pane_border_status" "off") # bottom local pane_border_style=$(get_tmux_option "@catppuccin_pane_border_style" "fg=${thm_gray}") - local pane_active_border_style=$(get_tmux_option "@catppuccin_pane_active_border_style" "fg=${thm_orange}") + local pane_active_border_style=$(\ + get_tmux_option "@catppuccin_pane_active_border_style" \ + "#{?pane_in_mode,fg=${thm_yellow},#{?pane_synchronized,fg=${thm_magenta},fg=${thm_orange}}}" + ) local pane_left_separator=$(get_tmux_option "@catppuccin_pane_left_separator" "█") local pane_middle_separator=$(get_tmux_option "@catppuccin_pane_middle_separator" "█") local pane_right_separator=$(get_tmux_option "@catppuccin_pane_right_separator" "█") From 1882a279257176258ac60a3eda441ed17062c581 Mon Sep 17 00:00:00 2001 From: Henri Sota Date: Sat, 17 Feb 2024 21:04:18 +0100 Subject: [PATCH 02/49] feat(uptime): add uptime module based on robhurring/tmux-uptime --- README.md | 22 ++++++++++++++++++++++ status/uptime.sh | 11 +++++++++++ 2 files changed, 33 insertions(+) create mode 100644 status/uptime.sh diff --git a/README.md b/README.md index 6ef5d288..11c3dfd7 100644 --- a/README.md +++ b/README.md @@ -30,6 +30,7 @@ 6. [Battery module](#battery-module) 7. [CPU module](#CPU-module) 8. [Weather module](#weather-module) + 9. [Uptime module](#uptime-module) 5. [Create a custom module](#create-a-custom-module) 6. [Configuration Examples](#configuration-examples) 1. [Config 1](#config-1) @@ -369,6 +370,27 @@ Add the weather module to the status modules list. set -g @catppuccin_status_modules_right "... weather ..." ``` +### Uptime module + +#### Requirements +This module depends on [tmux-uptime](https://github.com/robhurring/tmux-uptime). + +#### Install +The prefered way to install tmux-uptime is using [TPM](https://github.com/tmux-plugins/tpm). + +#### Configure +Load tmux-uptime after you load catppuccin. +```sh +set -g @plugin 'catppuccin/tmux' +... +set -g @plugin 'robhurring/tmux-uptime' +``` + +Add the uptime module to the status modules list. +```sh +set -g @catppuccin_status_modules_right "... uptime ..." +``` + ## Create a custom module It is possible to add a new custom module or overrite any of the existing modules. diff --git a/status/uptime.sh b/status/uptime.sh new file mode 100644 index 00000000..f531d573 --- /dev/null +++ b/status/uptime.sh @@ -0,0 +1,11 @@ +# Requires https://github.com/robhurring/tmux-uptime. +show_uptime() { + local index=$1 + local icon="$(get_tmux_option "@catppuccin_uptime_icon" "󰔟")" + local color="$(get_tmux_option "@catppuccin_uptime_color" "$thm_green")" + local text="$(get_tmux_option "@catppuccin_uptime_text" "#{uptime}")" + + local module=$( build_status_module "$index" "$icon" "$color" "$text" ) + + echo "$module" +} From 307edce7da9aa241cec79a80789682b7042fd372 Mon Sep 17 00:00:00 2001 From: Henri Sota Date: Sun, 18 Feb 2024 10:34:21 +0100 Subject: [PATCH 03/49] feat(load): add load module based on jamesoff/tmux-loadavg --- README.md | 22 ++++++++++++++++++++++ status/load.sh | 11 +++++++++++ 2 files changed, 33 insertions(+) create mode 100644 status/load.sh diff --git a/README.md b/README.md index 6ef5d288..745ae9eb 100644 --- a/README.md +++ b/README.md @@ -30,6 +30,7 @@ 6. [Battery module](#battery-module) 7. [CPU module](#CPU-module) 8. [Weather module](#weather-module) + 9. [Load module](#load-module) 5. [Create a custom module](#create-a-custom-module) 6. [Configuration Examples](#configuration-examples) 1. [Config 1](#config-1) @@ -369,6 +370,27 @@ Add the weather module to the status modules list. set -g @catppuccin_status_modules_right "... weather ..." ``` +### Load module + +#### Requirements +This module depends on [tmux-loadavg](https://github.com/jamesoff/tmux-loadavg). + +#### Install +The prefered way to install tmux-loadavg is using [TPM](https://github.com/tmux-plugins/tpm). + +#### Configure +Load tmux-weather after you load catppuccin. +```sh +set -g @plugin 'catppuccin/tmux' +... +set -g @plugin 'jamesoff/tmux-loadavg' +``` + +Add the weather module to the status modules list. +```sh +set -g @catppuccin_status_modules_right "... load ..." +``` + ## Create a custom module It is possible to add a new custom module or overrite any of the existing modules. diff --git a/status/load.sh b/status/load.sh new file mode 100644 index 00000000..942c7f35 --- /dev/null +++ b/status/load.sh @@ -0,0 +1,11 @@ +show_load() { + local index=$1 + local icon="$(get_tmux_option "@catppuccin_load_icon" "󰊚")" + local color="$(get_tmux_option "@catppuccin_load_color" "$thm_blue")" + local text="$(get_tmux_option "@catppuccin_load_text" "#{load_full}")" + + local module=$( build_status_module "$index" "$icon" "$color" "$text" ) + + echo "$module" +} + From e321a25dabfda6c91301cbc0501eecf453f79b06 Mon Sep 17 00:00:00 2001 From: Connor Deckers Date: Sat, 2 Mar 2024 13:51:49 +1100 Subject: [PATCH 04/49] feat(config): allow status bar to be disabled by default This allows setting the status bar visibility on load, rather than forcing it to be on by default. It also prevents flashing from the status bar if the status bar is disabled in config after plugins are loaded. --- README.md | 4 ++++ catppuccin.tmux | 3 ++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 6ef5d288..4141042b 100644 --- a/README.md +++ b/README.md @@ -207,6 +207,10 @@ set -g @catppuccin_pane_active_border_style "fg=red" # Use a value compatible wi ### Status +#### Set the default status bar visibility +```sh +set -g @catppuccin_status_default "off" # defaults to "on" +``` #### Set the status module left separator: ```sh diff --git a/catppuccin.tmux b/catppuccin.tmux index da1e5f4c..ecf619e6 100755 --- a/catppuccin.tmux +++ b/catppuccin.tmux @@ -322,7 +322,8 @@ main() { local modules_pane_path=$PLUGIN_DIR/pane # status - set status "on" + local status_default=$(get_tmux_option "@catppuccin_status_default" "on") + set status "$status_default" set status-bg "${thm_bg}" set status-justify "left" set status-left-length "100" From 36a5b0584cf585b867605d23c00960174afeaae5 Mon Sep 17 00:00:00 2001 From: Carlos Ortiz <574641+cortiz@users.noreply.github.com> Date: Wed, 6 Mar 2024 14:36:40 -0600 Subject: [PATCH 05/49] docs(README.md): fix minor spelling errors (#151) --- README.md | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/README.md b/README.md index 6ef5d288..503fc2c4 100644 --- a/README.md +++ b/README.md @@ -45,8 +45,8 @@ ## Installation -In order to have the icons displayed correctly please use / update your favorite [patched font](https://www.nerdfonts.com/font-downloads). -If you do not have a patched font installed, you can override or remove any icon. Check the documentation bellow on the options available. +In order to have the icons displayed correctly please use/update your favorite [patched font](https://www.nerdfonts.com/font-downloads). +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 @@ -59,7 +59,7 @@ set -g @plugin 'catppuccin/tmux' set -g @plugin 'tmux-plugins/tpm' ``` -3. (Optional) Set your preferred flavour, it defaults to `"mocha"`: +3. (Optional) Set your preferred flavor, it defaults to `"mocha"`: ```bash set -g @catppuccin_flavour 'latte' # or frappe, macchiato, mocha @@ -73,11 +73,11 @@ set -g @catppuccin_flavour 'latte' # or frappe, macchiato, mocha ## Overview ![Default](./assets/overview.png) -This is a diagram on how the theme is split between it's components. +This is a diagram of how the theme is split between its components. ## Configuration options -All flavours support certain levels of customization that match our [Catppuccin +All flavors support certain levels of customization that match our [Catppuccin Style Guide][style-guide]. To add these customizations, add any of the following options to your Tmux configuration. @@ -187,13 +187,13 @@ set -g @catppuccin_window_current_text "#{b:pane_current_path}" # use "#W" for a ```sh set -g @catppuccin_window_current_format_directory_text "#{b:pane_current_path}" ``` -Use this to overide the way the current directory is displayed. +Use this to override the way the current directory is displayed. #### Set the directory format ```sh set -g @catppuccin_window_format_directory_text "#{b:pane_current_path}" ``` -Use this to overide the way the directory is displayed. +Use this to override the way the directory is displayed. ### Pane @@ -231,8 +231,8 @@ Values: set -g @catppuccin_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 +- 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: @@ -312,7 +312,7 @@ set -g @catppuccin_date_time_icon "null" This module depends on [tmux-battery](https://github.com/tmux-plugins/tmux-battery/tree/master). #### Install -The prefered way to install tmux-battery is using [TPM](https://github.com/tmux-plugins/tpm). +The preferred way to install tmux-battery is using [TPM](https://github.com/tmux-plugins/tpm). #### Configure Load tmux-battery after you load catppuccin. @@ -333,7 +333,7 @@ set -g @catppuccin_status_modules_right "... battery ..." This module depends on [tmux-cpu](https://github.com/tmux-plugins/tmux-cpu/tree/master). #### Install -The prefered way to install tmux-cpu is using [TPM](https://github.com/tmux-plugins/tpm). +The preferred way to install tmux-cpu is using [TPM](https://github.com/tmux-plugins/tpm). #### Configure Load tmux-cpu after you load catppuccin. @@ -354,7 +354,7 @@ set -g @catppuccin_status_modules_right "... cpu ..." This module depends on [tmux-weather](https://github.com/xamut/tmux-weather). #### Install -The prefered way to install tmux-cpu is using [TPM](https://github.com/tmux-plugins/tpm). +The preferred way to install tmux-weather is using [TPM](https://github.com/tmux-plugins/tpm). #### Configure Load tmux-weather after you load catppuccin. @@ -371,7 +371,7 @@ set -g @catppuccin_status_modules_right "... weather ..." ## Create a custom module -It is possible to add a new custom module or overrite any of the existing modules. +It is possible to add a new custom module or overwrite any of the existing modules. Look into custom/README.md for more details. @@ -385,7 +385,7 @@ When switching between configurations run: ```sh tmux kill-server ``` -In order to kill the tmux server and clear all global variables. +To kill the tmux server and clear all global variables. ### Config 1 From cbaf76cdddd38ed0de93db73ab2383a189452e65 Mon Sep 17 00:00:00 2001 From: Hamothy <58985301+sgoudham@users.noreply.github.com> Date: Wed, 6 Mar 2024 21:09:55 +0000 Subject: [PATCH 06/49] docs(README.md): improve manual install steps (#152) --- README.md | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 503fc2c4..a4c9427b 100644 --- a/README.md +++ b/README.md @@ -67,8 +67,13 @@ set -g @catppuccin_flavour 'latte' # or frappe, macchiato, mocha ### Manual -1. Copy your desired theme's configuration contents into your Tmux config (usually stored at `~/.tmux.conf`) -2. Reload Tmux by either restarting the session or reloading it with `tmux source-file ~/.tmux.conf` +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](#configuration-options). +4. Reload Tmux by either restarting the session or reloading it with `tmux source-file ~/.tmux.conf` ## Overview From 0be44ee9bd226cf6b9779d4ebd7f3d95362efce5 Mon Sep 17 00:00:00 2001 From: Roeeeee <35409124+5c077m4n@users.noreply.github.com> Date: Wed, 6 Mar 2024 23:37:14 +0000 Subject: [PATCH 07/49] docs(README.md): add missing formatting for setting tmux options (#132) --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index a4c9427b..7dac28df 100644 --- a/README.md +++ b/README.md @@ -204,11 +204,15 @@ Use this to override the way the directory is displayed. #### Set the pane border style: +```sh 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: +```sh set -g @catppuccin_pane_active_border_style "fg=red" # Use a value compatible with the standard tmux 'pane-border-active-style' +``` ### Status From 0f1d4a365e05e2ad2f593ed73a2eaa0197a24949 Mon Sep 17 00:00:00 2001 From: Hamothy <58985301+sgoudham@users.noreply.github.com> Date: Thu, 7 Mar 2024 00:55:28 +0000 Subject: [PATCH 08/49] docs(custom): fix outdated module name (#153) --- .gitignore | 1 - custom/README.md | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) delete mode 100644 .gitignore diff --git a/.gitignore b/.gitignore deleted file mode 100644 index 0d82d79c..00000000 --- a/.gitignore +++ /dev/null @@ -1 +0,0 @@ -custom diff --git a/custom/README.md b/custom/README.md index e55aa9bf..b4a11cb8 100644 --- a/custom/README.md +++ b/custom/README.md @@ -13,7 +13,7 @@ Use the [Module template](#module-template) (or example.sh) as a starting point Save the new module under this folder using the module name as the file name and .sh as the extension. Update the status module list with your module. ```sh -set -g @catppuccin_status_modules "... ..." +set -g @catppuccin_status_modules_right "... ..." ``` From 219ff4330b00e7011c429fbc2bd082db0c83624d Mon Sep 17 00:00:00 2001 From: Henri Sota <56848082+henrisota@users.noreply.github.com> Date: Thu, 7 Mar 2024 02:02:05 +0100 Subject: [PATCH 09/49] docs(README.md) use correct option for default window color (#137) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 7dac28df..31abd5ba 100644 --- a/README.md +++ b/README.md @@ -151,7 +151,7 @@ Values: #### Override the window default colors: ```sh -set -g @catppuccin_window_default_text "color" # text color +set -g @catppuccin_window_default_color "color" # text color set -g @catppuccin_window_default_background "color" ``` From 32df6db4b44ce901b7a9a10d1299d507dd218641 Mon Sep 17 00:00:00 2001 From: vdbe <44153531+vdbe@users.noreply.github.com> Date: Thu, 7 Mar 2024 17:58:25 +0100 Subject: [PATCH 10/49] refactor: re-include gitignore (#154) Ignore custom (with the exception of documentation/examples) so no custom user modules make it upstream --- .gitignore | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..beab4f17 --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +custom +!custom/README.md +!custom/example.sh From 8cb36097d19cef6a0ab42b05b58322965eb01110 Mon Sep 17 00:00:00 2001 From: Wen Sun Date: Fri, 8 Mar 2024 14:33:28 +0900 Subject: [PATCH 11/49] Add space to default window status icons --- README.md | 14 +++++++------- catppuccin.tmux | 15 +++++++-------- 2 files changed, 14 insertions(+), 15 deletions(-) diff --git a/README.md b/README.md index 207235b7..1c72e25f 100644 --- a/README.md +++ b/README.md @@ -131,13 +131,13 @@ Values: #### Override windows status icons ```sh -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 "󰂞" +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 diff --git a/catppuccin.tmux b/catppuccin.tmux index be45bb54..0f94bf1b 100755 --- a/catppuccin.tmux +++ b/catppuccin.tmux @@ -37,14 +37,13 @@ setw() { build_window_icon() { local window_status_icon_enable=$(get_tmux_option "@catppuccin_window_status_icon_enable" "yes") - - local custom_icon_window_last=$(get_tmux_option "@catppuccin_icon_window_last" "󰖰") - local custom_icon_window_current=$(get_tmux_option "@catppuccin_icon_window_current" "󰖯") - local custom_icon_window_zoom=$(get_tmux_option "@catppuccin_icon_window_zoom" "󰁌") - local custom_icon_window_mark=$(get_tmux_option "@catppuccin_icon_window_mark" "󰃀") - local custom_icon_window_silent=$(get_tmux_option "@catppuccin_icon_window_silent" "󰂛") - local custom_icon_window_activity=$(get_tmux_option "@catppuccin_icon_window_activity" "󰖲") - local custom_icon_window_bell=$(get_tmux_option "@catppuccin_icon_window_bell" "󰂞") + local custom_icon_window_last=$(get_tmux_option "@catppuccin_icon_window_last" "󰖰 ") + local custom_icon_window_current=$(get_tmux_option "@catppuccin_icon_window_current" "󰖯 ") + local custom_icon_window_zoom=$(get_tmux_option "@catppuccin_icon_window_zoom" "󰁌 ") + local custom_icon_window_mark=$(get_tmux_option "@catppuccin_icon_window_mark" "󰃀 ") + local custom_icon_window_silent=$(get_tmux_option "@catppuccin_icon_window_silent" "󰂛 ") + local custom_icon_window_activity=$(get_tmux_option "@catppuccin_icon_window_activity" "󱅫 ") + local custom_icon_window_bell=$(get_tmux_option "@catppuccin_icon_window_bell" "󰂞 ") if [ "$window_status_icon_enable" = "yes" ] then From 45e4dec2bb683e1aef0111b1ca154277bedb27e3 Mon Sep 17 00:00:00 2001 From: Jesse Storms Date: Wed, 13 Mar 2024 18:36:53 +0100 Subject: [PATCH 12/49] Fixed typos and formatting oversight in readme.md --- README.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 1c72e25f..29ef238f 100644 --- a/README.md +++ b/README.md @@ -393,16 +393,17 @@ This module depends on [tmux-loadavg](https://github.com/jamesoff/tmux-loadavg). The prefered way to install tmux-loadavg is using [TPM](https://github.com/tmux-plugins/tpm). #### Configure -Load tmux-weather after you load catppuccin. +Load tmux-loadavg after you load catppuccin. ```sh set -g @plugin 'catppuccin/tmux' ... set -g @plugin 'jamesoff/tmux-loadavg' ``` -Add the weather module to the status modules list. +Add the load module to the status modules list. ```sh set -g @catppuccin_status_modules_right "... load ..." +``` ### Uptime module @@ -414,6 +415,7 @@ The prefered way to install tmux-uptime is using [TPM](https://github.com/tmux-p #### Configure Load tmux-uptime after you load catppuccin. + ```sh set -g @plugin 'catppuccin/tmux' ... From 4eb10fa510548891ac9c5afc5b43679096361fe3 Mon Sep 17 00:00:00 2001 From: vdbe <44153531+vdbe@users.noreply.github.com> Date: Fri, 15 Mar 2024 16:34:04 +0100 Subject: [PATCH 13/49] ci: add testing & shellcheck workflows (#159) --- .github/scripts/test.bash | 71 ++++++++++++++++++++++++++++++++ .github/workflows/shellcheck.yml | 33 +++++++++++++++ .github/workflows/test.yml | 53 ++++++++++++++++++++++++ 3 files changed, 157 insertions(+) create mode 100755 .github/scripts/test.bash create mode 100644 .github/workflows/shellcheck.yml create mode 100644 .github/workflows/test.yml diff --git a/.github/scripts/test.bash b/.github/scripts/test.bash new file mode 100755 index 00000000..513800a7 --- /dev/null +++ b/.github/scripts/test.bash @@ -0,0 +1,71 @@ +#!/usr/bin/env bash + +# +# Usage: +# ./test.bash catpuccin-tmux/catpuccin-tmux.tmux +# ./test.bash catpuccin-tmux/catpuccin-tmux.tmux ./config-example1 +# + +SOCKET_NAME="${SOCKET_NAME:-test}" + +tmux() { + command tmux -L "$SOCKET_NAME" "$@" +} + +start_tmux_server() { + echo "Starting tmux server" >&2 + tmux new -s dummy -d +} + +kill_tmux_server() { + echo "Stopping tmux server" >&2 + tmux kill-server +} + +check() { + local out exit_code + exit_code="$1" + out="$2" + + if [ "$exit_code" -ne 0 ] || [ -n "$out" ]; then + echo "Failed with exit code $exit_code and output:" + echo "$out" + exit 1 + fi + +} + +main() { + local config_file plugin output exit_code + + plugin="$1" + config_file="$2" + + echo "Using socket '$SOCKET_NAME'" >&2 + + # Make sure its a new/clean server + kill_tmux_server 2>/dev/null + start_tmux_server + + if [ -z "$config_file" ]; then + echo "No config file provided" >&2 + else + echo "sourcing config file '$config_file'" >&2 + tmux source-file "$config_file" + fi + + if [ -z "$plugin" ]; then + echo "ERROR: No path to the plugin provided" >&2 + exit 1 + else + echo "Running plugin: $plugin" >&2 + output=$(tmux run-shell "$plugin" 2>&2) + exit_code="$?" + + check "$exit_code" "$output" + fi + + kill_tmux_server +} + +main "$@" diff --git a/.github/workflows/shellcheck.yml b/.github/workflows/shellcheck.yml new file mode 100644 index 00000000..127b0241 --- /dev/null +++ b/.github/workflows/shellcheck.yml @@ -0,0 +1,33 @@ +--- +name: Shellcheck +permissions: + contents: read +on: + pull_request: + paths-ignore: + - "*.md" + - "assets/**" + push: + paths-ignore: + - "*.md" + - "assets/**" + branches: + - main + workflow_dispatch: +concurrency: + group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} + cancel-in-progress: true + +jobs: + shellcheck: + name: Shellcheck + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - name: Run ShellCheck + uses: ludeeus/action-shellcheck@master + with: + severity: error + additional_files: "catppuccin.tmux" + env: + SHELLCHECK_OPTS: "-s bash" diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml new file mode 100644 index 00000000..7b85e577 --- /dev/null +++ b/.github/workflows/test.yml @@ -0,0 +1,53 @@ +--- +name: Tests +permissions: + contents: read +on: + pull_request: + paths-ignore: + - "*.md" + - "assets/**" + push: + paths-ignore: + - "*.md" + - "assets/**" + branches: + - main + workflow_dispatch: +concurrency: + group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} + cancel-in-progress: true + +jobs: + ubuntu: + name: Test + runs-on: ubuntu-latest + + steps: + - name: Install tmux + run: sudo apt-get update && sudo apt-get install -y tmux=3.2a-4ubuntu0.2 + - uses: actions/checkout@v4 + - name: Config and Plugin + shell: bash + run: | + bash --version + tmux -V + ./.github/scripts/test.bash ./catppuccin.tmux + + old-bash: + name: "Old Bash" + runs-on: ubuntu-latest + container: + image: bash:3.2.57 # Bash version used by macos + steps: + - uses: actions/checkout@v4 + - name: Check Syntax is Valid + shell: bash + run: | + # No tmux available in this container + tmp="$(mktemp -d)" + touch "$tmp/tmux" + chmod +x "$tmp/tmux" + export PATH="$tmp:$PATH" + bash --version + ./.github/scripts/test.bash ./catppuccin.tmux From 2a3bc9ea9124e93c00e4aafff06f49974c3dcc45 Mon Sep 17 00:00:00 2001 From: qadzek <84473512+qadzek@users.noreply.github.com> Date: Sun, 17 Mar 2024 16:41:20 +0100 Subject: [PATCH 14/49] Clarify creating a custom module (#164) * Clarify creating a custom module * Fix path Co-authored-by: Hamothy <58985301+sgoudham@users.noreply.github.com> * Fix formatting and mention required plugins * docs: indentation & small tweaks --------- Co-authored-by: Hamothy <58985301+sgoudham@users.noreply.github.com> Co-authored-by: sgoudham --- README.md | 2 +- custom/README.md | 89 +++++++++++++++++++++++++++++++---------------- custom/example.sh | 18 ++++++---- 3 files changed, 72 insertions(+), 37 deletions(-) diff --git a/README.md b/README.md index 29ef238f..f14b54f9 100644 --- a/README.md +++ b/README.md @@ -431,7 +431,7 @@ set -g @catppuccin_status_modules_right "... uptime ..." It is possible to add a new custom module or overwrite any of the existing modules. -Look into custom/README.md for more details. +For further details, see the documentation in [custom/README.md](custom/README.md) Any file added to the custom folder will be preserved when updating catppuccin. diff --git a/custom/README.md b/custom/README.md index b4a11cb8..65f66bf3 100644 --- a/custom/README.md +++ b/custom/README.md @@ -1,43 +1,72 @@ -# User defined modules +# User Defined Modules -## Description +This folder is used to store user defined modules. You can use this folder to +add a new module or override any existing module. To override an existing +module, make sure that you use the same name for your module as the module you +want to override. You can also override the window module for the current and +default window. -This folder is used to store user defined modules. -You can use this folder to add a new module or override any existing module. -To override an existing module, make sure you use the same name for your module as the module you want to override. -You can also override the window module for current and default window. +## Creating A New Module -## Create a new module +> [!NOTE] +> Changes will only be applied after reloading your Tmux configuration by executing `tmux source-file ~/.tmux.conf`. -Use the [Module template](#module-template) (or example.sh) as a starting point when creating a new module. -Save the new module under this folder using the module name as the file name and .sh as the extension. -Update the status module list with your module. -```sh -set -g @catppuccin_status_modules_right "... ..." +You can create a custom module by following the steps outlined below. This can be something you create entirely by yourself or integrating an existing Tmux plugin. -``` +1. Create a new file in `~/.tmux/plugins/tmux/custom/.sh` to store the custom module. + - The file **must** end in `.sh` + - The file **does not** need to be set as executable. -## Module template -```sh -show_() { # save this module in a file with the name .sh - local index=$1 # this variable is used by the module loader in order to know the position of this module - local icon="$(get_tmux_option "@catppuccin__icon" "")" - local color="$(get_tmux_option "@catppuccin__color" "")" - local text="$(get_tmux_option "@catppuccin__text" "")" +2. Copy the following template to this new file. Make sure to replace every instance of `` by the name you chose as filename. - local module=$( build_status_module "$index" "$icon" "$color" "$text" ) + ```bash + # If this module depends on an external Tmux plugin, say so in a comment. + # E.g.: Requires https://github.com/aaronpowell/tmux-weather - echo "$module" -} -``` + show_() { # This function name must match the module name! + local index icon color text module -## Configure custom modules path + index=$1 # This variable is used internally by the module loader in order to know the position of this module -You can configure a custom path for your modules by setting the `@catppuccin_custom_plugin_dir` option. -```sh -set -g @catppuccin_custom_plugin_dir "" + icon="$( get_tmux_option "@catppuccin__icon" "" )" + color="$( get_tmux_option "@catppuccin__color" "$thm_orange" )" + text="$( get_tmux_option "@catppuccin__text" "hello world" )" + + module=$( build_status_module "$index" "$icon" "$color" "$text" ) + + echo "$module" + } + ``` + +3. Add the custom module to the list of modules in `.tmux.conf` + + ```bash + set -g @catppuccin_status_modules_right "... ..." + ``` + +## Customization + +Change the icon to one from [Nerd Fonts](https://www.nerdfonts.com/cheat-sheet). + +Change the color to one of the [official colors](../catppuccin-macchiato.tmuxtheme), for instance `"$thm_cyan"`, or to a hexadecimal color like `"#00ff00"`. + +The text to display can either be: + +- A static text, e.g. `"hello world"`. +- The output of a command, e.g. `"#( date +%T )"`. +- The output of a script, e.g. `"#( $HOME/my_script.sh )"` . Any script will do, e.g. a Bash or Python script that prints some text, but ensure that it is executable: `chmod u+x my_script.sh`. +- An existing Tmux plugin, e.g. `" #{forecast} "` for the [Tmux Weather plugin](https://github.com/aaronpowell/tmux-weather). + +Note that the icon and the color can be generated dynamically as well, for instance by having a Bash script `echo` a hexadecimal color. + +To modify how often the modules are updated, add the following to `.tmux.conf`: + +```tmux +set -g status-interval ``` -To use the output of a command, use e.g. `local text="$(get_tmux_option "@catppuccin_test_text" "#(date +%T)")"`. +To configure a custom path for your modules, set this option: -To use the output of a script, use e.g. `local text="$(get_tmux_option "@catppuccin_test_text" "#($HOME/my_script.sh)")"`. +```tmux +set -g @catppuccin_custom_plugin_dir "" +``` diff --git a/custom/example.sh b/custom/example.sh index 613caa75..3b093678 100644 --- a/custom/example.sh +++ b/custom/example.sh @@ -1,10 +1,16 @@ -show_example() { - local index=$1 - local icon="$(get_tmux_option "@catppuccin_test_icon" "󰙨")" - local color="$(get_tmux_option "@catppuccin_test_color" "$thm_blue")" - local text="$(get_tmux_option "@catppuccin_test_text" "It works!")" +# If this module depends on an external Tmux plugin, say so in a comment. +# E.g.: Requires https://github.com/aaronpowell/tmux-weather - local module=$( build_status_module "$index" "$icon" "$color" "$text" ) +show_test() { # This function name must match the module name! + local index icon color text module + + index=$1 # This variable is used internally by the module loader in order to know the position of this module + icon="$( get_tmux_option "@catppuccin_test_icon" "" )" + color="$( get_tmux_option "@catppuccin_test_color" "$thm_orange" )" + text="$( get_tmux_option "@catppuccin_test_text" "hello world" )" + + module=$( build_status_module "$index" "$icon" "$color" "$text" ) echo "$module" } + From 843946e1761c48b408aea6aec48633dcc4b70988 Mon Sep 17 00:00:00 2001 From: David Kaufman Date: Sun, 17 Mar 2024 16:43:29 +0100 Subject: [PATCH 15/49] make status_justify configurable (#145) * make status_justify configurable * added README * moved below status_default * refactor: pr comments --------- Co-authored-by: Hamothy <58985301+sgoudham@users.noreply.github.com> Co-authored-by: sgoudham --- README.md | 10 ++++++++++ catppuccin.tmux | 4 +++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index f14b54f9..75140821 100644 --- a/README.md +++ b/README.md @@ -258,6 +258,16 @@ 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: +```sh +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 ```sh diff --git a/catppuccin.tmux b/catppuccin.tmux index 0f94bf1b..ade93248 100755 --- a/catppuccin.tmux +++ b/catppuccin.tmux @@ -322,9 +322,11 @@ main() { # status local status_default=$(get_tmux_option "@catppuccin_status_default" "on") + local status_justify=$(get_tmux_option "@catppuccin_status_justify" "left") + set status "$status_default" + set status-justify "$status_justify" set status-bg "${thm_bg}" - set status-justify "left" set status-left-length "100" set status-right-length "100" From c0861b786123d5b375074e3649a2a8575694504e Mon Sep 17 00:00:00 2001 From: Ikko Eltociear Ashimine Date: Mon, 18 Mar 2024 07:26:48 +0900 Subject: [PATCH 16/49] docs(README.md): fix typo `prefered` -> `preferred` --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 75140821..6c3436ce 100644 --- a/README.md +++ b/README.md @@ -400,7 +400,7 @@ set -g @catppuccin_status_modules_right "... weather ..." This module depends on [tmux-loadavg](https://github.com/jamesoff/tmux-loadavg). #### Install -The prefered way to install tmux-loadavg is using [TPM](https://github.com/tmux-plugins/tpm). +The preferred way to install tmux-loadavg is using [TPM](https://github.com/tmux-plugins/tpm). #### Configure Load tmux-loadavg after you load catppuccin. @@ -421,7 +421,7 @@ set -g @catppuccin_status_modules_right "... load ..." This module depends on [tmux-uptime](https://github.com/robhurring/tmux-uptime). #### Install -The prefered way to install tmux-uptime is using [TPM](https://github.com/tmux-plugins/tpm). +The preferred way to install tmux-uptime is using [TPM](https://github.com/tmux-plugins/tpm). #### Configure Load tmux-uptime after you load catppuccin. From d0371badc7fe61819d0dbfb55acdcb4cbd40895e Mon Sep 17 00:00:00 2001 From: Muhammad Zafar Date: Tue, 19 Mar 2024 00:16:23 +1100 Subject: [PATCH 17/49] Add tmux-clima as another module for weather (#161) * Add tmux-clima as a module * Update tmux option names according to the clima module * Add README for tmux-clima * Update README.md according to suggestions * Remove unnecessary readme part --------- Co-authored-by: vdbewout --- README.md | 33 ++++++++++++++++++++++++++++----- status/clima.sh | 11 +++++++++++ 2 files changed, 39 insertions(+), 5 deletions(-) create mode 100644 status/clima.sh diff --git a/README.md b/README.md index 6c3436ce..271174a8 100644 --- a/README.md +++ b/README.md @@ -29,7 +29,7 @@ 5. [Customizing modules](#customizing-modules) 6. [Battery module](#battery-module) 7. [CPU module](#CPU-module) - 8. [Weather module](#weather-module) + 8. [Weather modules](#weather-modules) 9. [Load module](#load-module) 10. [Uptime module](#uptime-module) 5. [Create a custom module](#create-a-custom-module) @@ -373,15 +373,17 @@ Add the cpu module to the status modules list. set -g @catppuccin_status_modules_right "... cpu ..." ``` -### Weather module +### Weather modules -#### Requirements +#### tmux-weather + +##### Requirements This module depends on [tmux-weather](https://github.com/xamut/tmux-weather). -#### Install +##### Install The preferred way to install tmux-weather is using [TPM](https://github.com/tmux-plugins/tpm). -#### Configure +##### Configure Load tmux-weather after you load catppuccin. ```sh set -g @plugin 'catppuccin/tmux' @@ -394,6 +396,27 @@ 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](https://github.com/vascomfnunes/tmux-clima). + +##### Install +The preferred way to install tmux-clima is using [TPM](https://github.com/tmux-plugins/tpm). + +##### Configure +Load tmux-clima after you load catppuccin. +```sh +set -g @plugin 'catppuccin/tmux' +... +set -g @plugin 'vascomfnunes/tmux-clima' +``` + +Add the weather module to the status modules list. +```sh +set -g @catppuccin_status_modules_right "... clima ..." +``` + ### Load module #### Requirements diff --git a/status/clima.sh b/status/clima.sh new file mode 100644 index 00000000..46851d4e --- /dev/null +++ b/status/clima.sh @@ -0,0 +1,11 @@ +# Requires https://github.com/vascomfnunes/tmux-clima +show_clima() { + local index=$1 + local icon="$(get_tmux_option "@catppuccin_clima_icon" "")" + local color="$(get_tmux_option "@catppuccin_clima_color" "$thm_yellow")" + local text="$(get_tmux_option "@catppuccin_clima_text" "#{clima}")" + + local module=$( build_status_module "$index" "$icon" "$color" "$text" ) + + echo "$module" +} From 6e40906b2de115edbc438cbb34e6b56274581ee6 Mon Sep 17 00:00:00 2001 From: Valentin Uveges Date: Mon, 18 Mar 2024 17:33:08 +0200 Subject: [PATCH 18/49] fix(window_status): fix window space between text, window status, right separator (#168) --- catppuccin.tmux | 28 ++++++++++++++++++---------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/catppuccin.tmux b/catppuccin.tmux index ade93248..d243787c 100755 --- a/catppuccin.tmux +++ b/catppuccin.tmux @@ -37,23 +37,31 @@ setw() { build_window_icon() { local window_status_icon_enable=$(get_tmux_option "@catppuccin_window_status_icon_enable" "yes") - local custom_icon_window_last=$(get_tmux_option "@catppuccin_icon_window_last" "󰖰 ") - local custom_icon_window_current=$(get_tmux_option "@catppuccin_icon_window_current" "󰖯 ") - local custom_icon_window_zoom=$(get_tmux_option "@catppuccin_icon_window_zoom" "󰁌 ") - local custom_icon_window_mark=$(get_tmux_option "@catppuccin_icon_window_mark" "󰃀 ") - local custom_icon_window_silent=$(get_tmux_option "@catppuccin_icon_window_silent" "󰂛 ") - local custom_icon_window_activity=$(get_tmux_option "@catppuccin_icon_window_activity" "󱅫 ") - local custom_icon_window_bell=$(get_tmux_option "@catppuccin_icon_window_bell" "󰂞 ") + local custom_icon_window_last=$(get_tmux_option "@catppuccin_icon_window_last" "󰖰") + local custom_icon_window_current=$(get_tmux_option "@catppuccin_icon_window_current" "󰖯") + local custom_icon_window_zoom=$(get_tmux_option "@catppuccin_icon_window_zoom" "󰁌") + local custom_icon_window_mark=$(get_tmux_option "@catppuccin_icon_window_mark" "󰃀") + local custom_icon_window_silent=$(get_tmux_option "@catppuccin_icon_window_silent" "󰂛") + local custom_icon_window_activity=$(get_tmux_option "@catppuccin_icon_window_activity" "󱅫") + local custom_icon_window_bell=$(get_tmux_option "@catppuccin_icon_window_bell" "󰂞") if [ "$window_status_icon_enable" = "yes" ] then # #!~[*-]MZ - local show_window_status="#{?window_activity_flag,${custom_icon_window_activity},}#{?window_bell_flag,${custom_icon_window_bell},}#{?window_silence_flag,${custom_icon_window_silent},}#{?window_active,${custom_icon_window_current},}#{?window_last_flag,${custom_icon_window_last},}#{?window_marked_flag,${custom_icon_window_mark},}#{?window_zoomed_flag,${custom_icon_window_zoom},}" + local show_window_status="" + show_window_status+="#{?window_activity_flag, ${custom_icon_window_activity},}" + show_window_status+="#{?window_bell_flag, ${custom_icon_window_bell},}" + show_window_status+="#{?window_silence_flag, ${custom_icon_window_silent},}" + show_window_status+="#{?window_active, ${custom_icon_window_current},}" + show_window_status+="#{?window_last_flag, ${custom_icon_window_last},}" + show_window_status+="#{?window_marked_flag, ${custom_icon_window_mark},}" + show_window_status+="#{?window_zoomed_flag, ${custom_icon_window_zoom},}" + fi if [ "$window_status_icon_enable" = "no" ] then - local show_window_status="#F" + local show_window_status=" #F" fi echo "$show_window_status" @@ -132,7 +140,7 @@ build_window_format() { if [ "$window_status_enable" = "yes" ] then local icon="$( build_window_icon )" - text="$text $icon" + text="$text$icon" fi if [ "$fill" = "none" ] From e80cb735bbcd264ff971fdf7e58b219b60286c81 Mon Sep 17 00:00:00 2001 From: vdbe <44153531+vdbe@users.noreply.github.com> Date: Fri, 22 Mar 2024 19:29:25 +0100 Subject: [PATCH 19/49] feat(uptime): replace plugin with sed (#163) * module(uptime): replace plugin with custom sed * module(uptime): update doc --- README.md | 23 +---------------------- status/uptime.sh | 5 ++--- 2 files changed, 3 insertions(+), 25 deletions(-) diff --git a/README.md b/README.md index 271174a8..7b7ba3db 100644 --- a/README.md +++ b/README.md @@ -300,6 +300,7 @@ Available modules: - user - display the username - host - display the hostname - date_time - display the date and time +- uptime - display the uptime - [battery](#battery-module) - display the battery ### Customizing modules @@ -438,28 +439,6 @@ Add the load module to the status modules list. set -g @catppuccin_status_modules_right "... load ..." ``` -### Uptime module - -#### Requirements -This module depends on [tmux-uptime](https://github.com/robhurring/tmux-uptime). - -#### Install -The preferred way to install tmux-uptime is using [TPM](https://github.com/tmux-plugins/tpm). - -#### Configure -Load tmux-uptime after you load catppuccin. - -```sh -set -g @plugin 'catppuccin/tmux' -... -set -g @plugin 'robhurring/tmux-uptime' -``` - -Add the uptime module to the status modules list. -```sh -set -g @catppuccin_status_modules_right "... uptime ..." -``` - ## Create a custom module It is possible to add a new custom module or overwrite any of the existing modules. diff --git a/status/uptime.sh b/status/uptime.sh index f531d573..7b59173e 100644 --- a/status/uptime.sh +++ b/status/uptime.sh @@ -1,11 +1,10 @@ -# Requires https://github.com/robhurring/tmux-uptime. show_uptime() { local index=$1 local icon="$(get_tmux_option "@catppuccin_uptime_icon" "󰔟")" local color="$(get_tmux_option "@catppuccin_uptime_color" "$thm_green")" - local text="$(get_tmux_option "@catppuccin_uptime_text" "#{uptime}")" + local text="$(get_tmux_option "@catppuccin_uptime_text" "#(uptime | sed 's/^[^,]*up *//; s/, *[[:digit:]]* users.*//; s/ day.*, */d /; s/:/h /; s/ min//; s/$/m/')")" - local module=$( build_status_module "$index" "$icon" "$color" "$text" ) + local module=$(build_status_module "$index" "$icon" "$color" "$text") echo "$module" } From 809361f5c2a7b5eb2fa75d981dcb8e2f9454800b Mon Sep 17 00:00:00 2001 From: Valentin Uveges Date: Sun, 24 Mar 2024 10:36:51 +0200 Subject: [PATCH 20/49] =?UTF-8?q?feat(status,=20window):=20add=20option=20?= =?UTF-8?q?to=20make=20overwrite=20status=20background=20=E2=80=A6=20(#170?= =?UTF-8?q?)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat(status, window): add option to make overwrite status background color, add option to set the separator between windows * feat(window): update documentation * feat(window): update documentation --- README.md | 54 +++++++++++++++++++++++++++++------------- catppuccin.tmux | 63 +++++++++++++++++++++++++++++-------------------- 2 files changed, 74 insertions(+), 43 deletions(-) diff --git a/README.md b/README.md index 7b7ba3db..59a475e3 100644 --- a/README.md +++ b/README.md @@ -18,25 +18,25 @@ ## Content 1. [Themes](#themes) -2. [Installation](#installation) -3. [Overview](#overview) -4. [Configuration options](#configuration-options) +1. [Installation](#installation) +1. [Overview](#overview) +1. [Configuration options](#configuration-options) 1. [Window](#window) - 2. [Window default](#window-default) - 3. [Window current](#window-current) - 4. [Status](#status) - 4. [Pane](#pane) - 5. [Customizing modules](#customizing-modules) - 6. [Battery module](#battery-module) - 7. [CPU module](#CPU-module) - 8. [Weather modules](#weather-modules) - 9. [Load module](#load-module) - 10. [Uptime module](#uptime-module) -5. [Create a custom module](#create-a-custom-module) -6. [Configuration Examples](#configuration-examples) + 1. [Window default](#window-default) + 1. [Window current](#window-current) + 1. [Status](#status) + 1. [Pane](#pane) + 1. [Customizing modules](#customizing-modules) + 1. [Battery module](#battery-module) + 1. [CPU module](#CPU-module) + 1. [Weather modules](#weather-modules) + 1. [Load module](#load-module) + 1. [Uptime module](#uptime-module) +1. [Create a custom module](#create-a-custom-module) +1. [Configuration Examples](#configuration-examples) 1. [Config 1](#config-1) - 2. [Config 2](#config-2) - 3. [Config 3](#config-3) + 1. [Config 2](#config-2) + 1. [Config 3](#config-3) ## Themes @@ -90,6 +90,11 @@ options to your Tmux configuration. ### Window +### Set the window separator +```sh +set -g @catppuccin_window_separator "" +``` + #### Set the window left separator: ```sh set -g @catppuccin_window_left_separator "█" @@ -221,6 +226,21 @@ set -g @catppuccin_pane_active_border_style "fg=red" # Use a value compatible wi #### Set the default status bar visibility ```sh set -g @catppuccin_status_default "off" # defaults to "on" + +``` + +#### Override the default status background color +```sh +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: +```sh +tmux kill-server & tmux ``` #### Set the status module left separator: diff --git a/catppuccin.tmux b/catppuccin.tmux index d243787c..cbe65516 100755 --- a/catppuccin.tmux +++ b/catppuccin.tmux @@ -301,12 +301,18 @@ load_modules() { } main() { - local theme - theme="$(get_tmux_option "@catppuccin_flavour" "mocha")" - # Aggregate all commands in one array local tmux_commands=() + # module directories + local custom_path="$(get_tmux_option "@catppuccin_custom_plugin_dir" "${PLUGIN_DIR}/custom")" + local modules_custom_path=$custom_path + local modules_status_path=$PLUGIN_DIR/status + local modules_window_path=$PLUGIN_DIR/window + local modules_pane_path=$PLUGIN_DIR/pane + + # load local theme + local theme="$(get_tmux_option "@catppuccin_flavour" "mocha")" # NOTE: Pulling in the selected theme by the theme that's being set as local # variables. # shellcheck source=catppuccin-frappe.tmuxtheme @@ -321,23 +327,30 @@ main() { eval "local $key"="$val" done < "${PLUGIN_DIR}/catppuccin-${theme}.tmuxtheme" - # module directories - local custom_path="$(get_tmux_option "@catppuccin_custom_plugin_dir" "${PLUGIN_DIR}/custom")" - local modules_custom_path=$custom_path - local modules_status_path=$PLUGIN_DIR/status - local modules_window_path=$PLUGIN_DIR/window - local modules_pane_path=$PLUGIN_DIR/pane - - # status + # status general local status_default=$(get_tmux_option "@catppuccin_status_default" "on") - local status_justify=$(get_tmux_option "@catppuccin_status_justify" "left") - set status "$status_default" + + local status_justify=$(get_tmux_option "@catppuccin_status_justify" "left") set status-justify "$status_justify" - set status-bg "${thm_bg}" + + local status_background=$(get_tmux_option "@catppuccin_status_background" "theme") + if [ "${status_background}" = "theme" ]; + then + set status-bg "${thm_bg}" + else + if [ "${status_background}" = "default" ] + then + set status-style bg=default + else + set status-bg "${status_background}" + fi + fi + set status-left-length "100" set status-right-length "100" + # messages set message-style "fg=${thm_cyan},bg=${thm_gray},align=centre" set message-command-style "fg=${thm_cyan},bg=${thm_gray},align=centre" @@ -361,14 +374,13 @@ main() { setw pane-border-style "$pane_border_style" setw pane-border-format "$pane_format" + # window + local window_status_separator=$(get_tmux_option "@catppuccin_window_separator" "") + setw window-status-separator "$window_status_separator" - # windows setw window-status-activity-style "fg=${thm_fg},bg=${thm_bg},none" - setw window-status-separator "" setw window-status-style "fg=${thm_fg},bg=${thm_bg},none" - # --------=== Statusline - local window_left_separator=$(get_tmux_option "@catppuccin_window_left_separator" "█") local window_right_separator=$(get_tmux_option "@catppuccin_window_right_separator" "█") local window_middle_separator=$(get_tmux_option "@catppuccin_window_middle_separator" "█ ") @@ -376,28 +388,27 @@ main() { local window_status_enable=$(get_tmux_option "@catppuccin_window_status_enable" "no") # right, left local window_format=$(load_modules "window_default_format" "$modules_custom_path" "$modules_window_path") - local window_current_format=$(load_modules "window_current_format" "$modules_custom_path" "$modules_window_path") - setw window-status-format "$window_format" + + local window_current_format=$(load_modules "window_current_format" "$modules_custom_path" "$modules_window_path") setw window-status-current-format "$window_current_format" + # status module local status_left_separator=$(get_tmux_option "@catppuccin_status_left_separator" "") local status_right_separator=$(get_tmux_option "@catppuccin_status_right_separator" "█") local status_right_separator_inverse=$(get_tmux_option "@catppuccin_status_right_separator_inverse" "no") local status_connect_separator=$(get_tmux_option "@catppuccin_status_connect_separator" "yes") local status_fill=$(get_tmux_option "@catppuccin_status_fill" "icon") - local status_modules_right=$(get_tmux_option "@catppuccin_status_modules_right" "application session") - local loaded_modules_right=$(load_modules "$status_modules_right" "$modules_custom_path" "$modules_status_path") - local status_modules_left=$(get_tmux_option "@catppuccin_status_modules_left" "") local loaded_modules_left=$(load_modules "$status_modules_left" "$modules_custom_path" "$modules_status_path") - set status-left "$loaded_modules_left" + + local status_modules_right=$(get_tmux_option "@catppuccin_status_modules_right" "application session") + local loaded_modules_right=$(load_modules "$status_modules_right" "$modules_custom_path" "$modules_status_path") set status-right "$loaded_modules_right" - # --------=== Modes - # + # modes setw clock-mode-colour "${thm_blue}" setw mode-style "fg=${thm_pink} bg=${thm_black4} bold" From e2d345648cb7e56302ee82fec6cafbbd8db23129 Mon Sep 17 00:00:00 2001 From: Valentin Uveges Date: Sun, 24 Mar 2024 13:33:34 +0200 Subject: [PATCH 21/49] Move code out of main (#172) * feat(status, window): add option to make overwrite status background color, add option to set the separator between windows * feat(window): update documentation * feat(window): update documentation * feat(refactor): move code out of main and into separated files * Update catppuccin.tmux Co-authored-by: vdbe <44153531+vdbe@users.noreply.github.com> * Update catppuccin.tmux Co-authored-by: vdbe <44153531+vdbe@users.noreply.github.com> --------- Co-authored-by: vdbe <44153531+vdbe@users.noreply.github.com> --- builder/module_builder.sh | 68 +++++++++ builder/pane_builder.sh | 64 ++++++++ builder/window_builder.sh | 101 +++++++++++++ catppuccin.tmux | 305 +------------------------------------- utils/module_utils.sh | 37 +++++ utils/tmux_utils.sh | 35 +++++ 6 files changed, 313 insertions(+), 297 deletions(-) create mode 100644 builder/module_builder.sh create mode 100644 builder/pane_builder.sh create mode 100644 builder/window_builder.sh create mode 100644 utils/module_utils.sh create mode 100644 utils/tmux_utils.sh diff --git a/builder/module_builder.sh b/builder/module_builder.sh new file mode 100644 index 00000000..114becdf --- /dev/null +++ b/builder/module_builder.sh @@ -0,0 +1,68 @@ +#!/bin/sh + +build_status_module() { + local index=$1 + local icon=$2 + local color=$3 + local text=$4 + + if [ "$status_fill" = "icon" ] + then + local show_left_separator="#[fg=$color,bg=$thm_gray,nobold,nounderscore,noitalics]$status_left_separator" + + local show_icon="#[fg=$thm_bg,bg=$color,nobold,nounderscore,noitalics]$icon " + local show_text="#[fg=$thm_fg,bg=$thm_gray] $text" + + local show_right_separator="#[fg=$thm_gray,bg=$thm_bg,nobold,nounderscore,noitalics]$status_right_separator" + + if [ "$status_connect_separator" = "yes" ] + then + local show_left_separator="#[fg=$color,bg=$thm_gray,nobold,nounderscore,noitalics]$status_left_separator" + local show_right_separator="#[fg=$thm_gray,bg=$thm_gray,nobold,nounderscore,noitalics]$status_right_separator" + + else + local show_left_separator="#[fg=$color,bg=$thm_bg,nobold,nounderscore,noitalics]$status_left_separator" + local show_right_separator="#[fg=$thm_gray,bg=$thm_bg,nobold,nounderscore,noitalics]$status_right_separator" + fi + + fi + + if [ "$status_fill" = "all" ] + then + local show_left_separator="#[fg=$color,bg=$thm_gray,nobold,nounderscore,noitalics]$status_left_separator" + + local show_icon="#[fg=$thm_bg,bg=$color,nobold,nounderscore,noitalics]$icon " + local show_text="#[fg=$thm_bg,bg=$color]$text" + + local show_right_separator="#[fg=$color,bg=$thm_gray,nobold,nounderscore,noitalics]$status_right_separator" + + if [ "$status_connect_separator" = "yes" ] + then + local show_left_separator="#[fg=$color,nobold,nounderscore,noitalics]$status_left_separator" + local show_right_separator="#[fg=$color,bg=$color,nobold,nounderscore,noitalics]$status_right_separator" + + else + local show_left_separator="#[fg=$color,bg=$thm_bg,nobold,nounderscore,noitalics]$status_left_separator" + local show_right_separator="#[fg=$color,bg=$thm_bg,nobold,nounderscore,noitalics]$status_right_separator" + fi + + fi + + if [ "$status_right_separator_inverse" = "yes" ] + then + if [ "$status_connect_separator" = "yes" ] + then + local show_right_separator="#[fg=$thm_gray,bg=$color,nobold,nounderscore,noitalics]$status_right_separator" + else + local show_right_separator="#[fg=$thm_bg,bg=$color,nobold,nounderscore,noitalics]$status_right_separator" + fi + fi + + if [ $(($index)) -eq 0 ] + then + local show_left_separator="#[fg=$color,bg=$thm_bg,nobold,nounderscore,noitalics]$status_left_separator" + fi + + echo "$show_left_separator$show_icon$show_text$show_right_separator" +} + diff --git a/builder/pane_builder.sh b/builder/pane_builder.sh new file mode 100644 index 00000000..1cc57598 --- /dev/null +++ b/builder/pane_builder.sh @@ -0,0 +1,64 @@ +#!/bin/sh + +build_pane_format() { + local number=$1 + local color=$2 + local background=$3 + local text=$4 + local fill=$5 + + if [ "$pane_status_enable" = "yes" ] + then + if [ "$fill" = "none" ] + then + local show_left_separator="#[fg=$thm_gray,bg=$thm_bg,nobold,nounderscore,noitalics]$pane_left_separator" + local show_number="#[fg=$thm_fg,bg=$thm_gray]$number" + local show_middle_separator="#[fg=$thm_fg,bg=$thm_gray,nobold,nounderscore,noitalics]$pane_middle_separator" + local show_text="#[fg=$thm_fg,bg=$thm_gray]$text" + local show_right_separator="#[fg=$thm_gray,bg=$thm_bg]$pane_right_separator" + fi + + if [ "$fill" = "all" ] + then + local show_left_separator="#[fg=$color,bg=$thm_bg,nobold,nounderscore,noitalics]$pane_left_separator" + local show_number="#[fg=$background,bg=$color]$number" + local show_middle_separator="#[fg=$background,bg=$color,nobold,nounderscore,noitalics]$pane_middle_separator" + local show_text="#[fg=$background,bg=$color]$text" + local show_right_separator="#[fg=$color,bg=$thm_bg]$pane_right_separator" + fi + + if [ "$fill" = "number" ] + then + local show_number="#[fg=$background,bg=$color]$number" + local show_middle_separator="#[fg=$color,bg=$background,nobold,nounderscore,noitalics]$pane_middle_separator" + local show_text="#[fg=$thm_fg,bg=$background]$text" + + if [ "$pane_number_position" = "right" ] + then + local show_left_separator="#[fg=$background,bg=$thm_bg,nobold,nounderscore,noitalics]$pane_left_separator" + local show_right_separator="#[fg=$color,bg=$thm_bg]$pane_right_separator" + fi + + if [ "$pane_number_position" = "left" ] + then + local show_right_separator="#[fg=$background,bg=$thm_bg,nobold,nounderscore,noitalics]$pane_right_separator" + local show_left_separator="#[fg=$color,bg=$thm_bg]$pane_left_separator" + fi + + fi + + local final_pane_format + + if [ "$pane_number_position" = "right" ] + then + final_pane_format="$show_left_separator$show_text$show_middle_separator$show_number$show_right_separator" + fi + + if [ "$pane_number_position" = "left" ] + then + final_pane_format="$show_left_separator$show_number$show_middle_separator$show_text$show_right_separator" + fi + + echo "$final_pane_format" + fi +} diff --git a/builder/window_builder.sh b/builder/window_builder.sh new file mode 100644 index 00000000..821163f9 --- /dev/null +++ b/builder/window_builder.sh @@ -0,0 +1,101 @@ +#!/bin/sh + +build_window_format() { + local number=$1 + local color=$2 + local background=$3 + local text=$4 + local fill=$5 + + if [ "$window_status_enable" = "yes" ] + then + local icon="$( build_window_icon )" + text="$text$icon" + fi + + if [ "$fill" = "none" ] + then + local show_left_separator="#[fg=$thm_gray,bg=$thm_bg,nobold,nounderscore,noitalics]$window_left_separator" + local show_number="#[fg=$thm_fg,bg=$thm_gray]$number" + local show_middle_separator="#[fg=$thm_fg,bg=$thm_gray,nobold,nounderscore,noitalics]$window_middle_separator" + local show_text="#[fg=$thm_fg,bg=$thm_gray]$text" + local show_right_separator="#[fg=$thm_gray,bg=$thm_bg]$window_right_separator" + + fi + + if [ "$fill" = "all" ] + then + local show_left_separator="#[fg=$color,bg=$thm_bg,nobold,nounderscore,noitalics]$window_left_separator" + local show_number="#[fg=$background,bg=$color]$number" + local show_middle_separator="#[fg=$background,bg=$color,nobold,nounderscore,noitalics]$window_middle_separator" + local show_text="#[fg=$background,bg=$color]$text" + local show_right_separator="#[fg=$color,bg=$thm_bg]$window_right_separator" + + fi + + if [ "$fill" = "number" ] + then + local show_number="#[fg=$background,bg=$color]$number" + local show_middle_separator="#[fg=$color,bg=$background,nobold,nounderscore,noitalics]$window_middle_separator" + local show_text="#[fg=$thm_fg,bg=$background]$text" + + if [ "$window_number_position" = "right" ] + then + local show_left_separator="#[fg=$background,bg=$thm_bg,nobold,nounderscore,noitalics]$window_left_separator" + local show_right_separator="#[fg=$color,bg=$thm_bg]$window_right_separator" + fi + + if [ "$window_number_position" = "left" ] + then + local show_right_separator="#[fg=$background,bg=$thm_bg,nobold,nounderscore,noitalics]$window_right_separator" + local show_left_separator="#[fg=$color,bg=$thm_bg]$window_left_separator" + fi + + fi + + local final_window_format + + if [ "$window_number_position" = "right" ] + then + final_window_format="$show_left_separator$show_text$show_middle_separator$show_number$show_right_separator" + fi + + if [ "$window_number_position" = "left" ] + then + final_window_format="$show_left_separator$show_number$show_middle_separator$show_text$show_right_separator" + fi + + echo "$final_window_format" +} + +build_window_icon() { + local window_status_icon_enable=$(get_tmux_option "@catppuccin_window_status_icon_enable" "yes") + local custom_icon_window_last=$(get_tmux_option "@catppuccin_icon_window_last" "󰖰") + local custom_icon_window_current=$(get_tmux_option "@catppuccin_icon_window_current" "󰖯") + local custom_icon_window_zoom=$(get_tmux_option "@catppuccin_icon_window_zoom" "󰁌") + local custom_icon_window_mark=$(get_tmux_option "@catppuccin_icon_window_mark" "󰃀") + local custom_icon_window_silent=$(get_tmux_option "@catppuccin_icon_window_silent" "󰂛") + local custom_icon_window_activity=$(get_tmux_option "@catppuccin_icon_window_activity" "󱅫") + local custom_icon_window_bell=$(get_tmux_option "@catppuccin_icon_window_bell" "󰂞") + + if [ "$window_status_icon_enable" = "yes" ] + then + # #!~[*-]MZ + local show_window_status="" + show_window_status+="#{?window_activity_flag, ${custom_icon_window_activity},}" + show_window_status+="#{?window_bell_flag, ${custom_icon_window_bell},}" + show_window_status+="#{?window_silence_flag, ${custom_icon_window_silent},}" + show_window_status+="#{?window_active, ${custom_icon_window_current},}" + show_window_status+="#{?window_last_flag, ${custom_icon_window_last},}" + show_window_status+="#{?window_marked_flag, ${custom_icon_window_mark},}" + show_window_status+="#{?window_zoomed_flag, ${custom_icon_window_zoom},}" + + fi + + if [ "$window_status_icon_enable" = "no" ] + then + local show_window_status=" #F" + fi + + echo "$show_window_status" +} diff --git a/catppuccin.tmux b/catppuccin.tmux index cbe65516..2663e782 100755 --- a/catppuccin.tmux +++ b/catppuccin.tmux @@ -1,304 +1,15 @@ #!/usr/bin/env bash -PLUGIN_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" - -get_tmux_option() { - local option value default - option="$1" - default="$2" - value=$(tmux show-option -gqv "$option") - - if [ -n "$value" ] - then - if [ "$value" = "null" ] - then - echo "" - - else - echo "$value" - fi - - else - echo "$default" - - fi -} - -set() { - local option=$1 - local value=$2 - tmux_commands+=(set-option -gq "$option" "$value" ";") -} - -setw() { - local option=$1 - local value=$2 - tmux_commands+=(set-window-option -gq "$option" "$value" ";") -} - -build_window_icon() { - local window_status_icon_enable=$(get_tmux_option "@catppuccin_window_status_icon_enable" "yes") - local custom_icon_window_last=$(get_tmux_option "@catppuccin_icon_window_last" "󰖰") - local custom_icon_window_current=$(get_tmux_option "@catppuccin_icon_window_current" "󰖯") - local custom_icon_window_zoom=$(get_tmux_option "@catppuccin_icon_window_zoom" "󰁌") - local custom_icon_window_mark=$(get_tmux_option "@catppuccin_icon_window_mark" "󰃀") - local custom_icon_window_silent=$(get_tmux_option "@catppuccin_icon_window_silent" "󰂛") - local custom_icon_window_activity=$(get_tmux_option "@catppuccin_icon_window_activity" "󱅫") - local custom_icon_window_bell=$(get_tmux_option "@catppuccin_icon_window_bell" "󰂞") - - if [ "$window_status_icon_enable" = "yes" ] - then - # #!~[*-]MZ - local show_window_status="" - show_window_status+="#{?window_activity_flag, ${custom_icon_window_activity},}" - show_window_status+="#{?window_bell_flag, ${custom_icon_window_bell},}" - show_window_status+="#{?window_silence_flag, ${custom_icon_window_silent},}" - show_window_status+="#{?window_active, ${custom_icon_window_current},}" - show_window_status+="#{?window_last_flag, ${custom_icon_window_last},}" - show_window_status+="#{?window_marked_flag, ${custom_icon_window_mark},}" - show_window_status+="#{?window_zoomed_flag, ${custom_icon_window_zoom},}" - - fi - - if [ "$window_status_icon_enable" = "no" ] - then - local show_window_status=" #F" - fi - - echo "$show_window_status" -} - -build_pane_format() { - local number=$1 - local color=$2 - local background=$3 - local text=$4 - local fill=$5 - - if [ "$pane_status_enable" = "yes" ] - then - if [ "$fill" = "none" ] - then - local show_left_separator="#[fg=$thm_gray,bg=$thm_bg,nobold,nounderscore,noitalics]$pane_left_separator" - local show_number="#[fg=$thm_fg,bg=$thm_gray]$number" - local show_middle_separator="#[fg=$thm_fg,bg=$thm_gray,nobold,nounderscore,noitalics]$pane_middle_separator" - local show_text="#[fg=$thm_fg,bg=$thm_gray]$text" - local show_right_separator="#[fg=$thm_gray,bg=$thm_bg]$pane_right_separator" - fi - - if [ "$fill" = "all" ] - then - local show_left_separator="#[fg=$color,bg=$thm_bg,nobold,nounderscore,noitalics]$pane_left_separator" - local show_number="#[fg=$background,bg=$color]$number" - local show_middle_separator="#[fg=$background,bg=$color,nobold,nounderscore,noitalics]$pane_middle_separator" - local show_text="#[fg=$background,bg=$color]$text" - local show_right_separator="#[fg=$color,bg=$thm_bg]$pane_right_separator" - fi - - if [ "$fill" = "number" ] - then - local show_number="#[fg=$background,bg=$color]$number" - local show_middle_separator="#[fg=$color,bg=$background,nobold,nounderscore,noitalics]$pane_middle_separator" - local show_text="#[fg=$thm_fg,bg=$background]$text" - - if [ "$pane_number_position" = "right" ] - then - local show_left_separator="#[fg=$background,bg=$thm_bg,nobold,nounderscore,noitalics]$pane_left_separator" - local show_right_separator="#[fg=$color,bg=$thm_bg]$pane_right_separator" - fi - - if [ "$pane_number_position" = "left" ] - then - local show_right_separator="#[fg=$background,bg=$thm_bg,nobold,nounderscore,noitalics]$pane_right_separator" - local show_left_separator="#[fg=$color,bg=$thm_bg]$pane_left_separator" - fi - - fi - - local final_pane_format - - if [ "$pane_number_position" = "right" ] - then - final_pane_format="$show_left_separator$show_text$show_middle_separator$show_number$show_right_separator" - fi - - if [ "$pane_number_position" = "left" ] - then - final_pane_format="$show_left_separator$show_number$show_middle_separator$show_text$show_right_separator" - fi - - echo "$final_pane_format" - fi -} - -build_window_format() { - local number=$1 - local color=$2 - local background=$3 - local text=$4 - local fill=$5 - - if [ "$window_status_enable" = "yes" ] - then - local icon="$( build_window_icon )" - text="$text$icon" - fi - - if [ "$fill" = "none" ] - then - local show_left_separator="#[fg=$thm_gray,bg=$thm_bg,nobold,nounderscore,noitalics]$window_left_separator" - local show_number="#[fg=$thm_fg,bg=$thm_gray]$number" - local show_middle_separator="#[fg=$thm_fg,bg=$thm_gray,nobold,nounderscore,noitalics]$window_middle_separator" - local show_text="#[fg=$thm_fg,bg=$thm_gray]$text" - local show_right_separator="#[fg=$thm_gray,bg=$thm_bg]$window_right_separator" - - fi - - if [ "$fill" = "all" ] - then - local show_left_separator="#[fg=$color,bg=$thm_bg,nobold,nounderscore,noitalics]$window_left_separator" - local show_number="#[fg=$background,bg=$color]$number" - local show_middle_separator="#[fg=$background,bg=$color,nobold,nounderscore,noitalics]$window_middle_separator" - local show_text="#[fg=$background,bg=$color]$text" - local show_right_separator="#[fg=$color,bg=$thm_bg]$window_right_separator" - fi - - if [ "$fill" = "number" ] - then - local show_number="#[fg=$background,bg=$color]$number" - local show_middle_separator="#[fg=$color,bg=$background,nobold,nounderscore,noitalics]$window_middle_separator" - local show_text="#[fg=$thm_fg,bg=$background]$text" - - if [ "$window_number_position" = "right" ] - then - local show_left_separator="#[fg=$background,bg=$thm_bg,nobold,nounderscore,noitalics]$window_left_separator" - local show_right_separator="#[fg=$color,bg=$thm_bg]$window_right_separator" - fi - - if [ "$window_number_position" = "left" ] - then - local show_right_separator="#[fg=$background,bg=$thm_bg,nobold,nounderscore,noitalics]$window_right_separator" - local show_left_separator="#[fg=$color,bg=$thm_bg]$window_left_separator" - fi - - fi - - local final_window_format - - if [ "$window_number_position" = "right" ] - then - final_window_format="$show_left_separator$show_text$show_middle_separator$show_number$show_right_separator" - fi - - if [ "$window_number_position" = "left" ] - then - final_window_format="$show_left_separator$show_number$show_middle_separator$show_text$show_right_separator" - fi - - echo "$final_window_format" -} - -build_status_module() { - local index=$1 - local icon=$2 - local color=$3 - local text=$4 - - if [ "$status_fill" = "icon" ] - then - local show_left_separator="#[fg=$color,bg=$thm_gray,nobold,nounderscore,noitalics]$status_left_separator" - - local show_icon="#[fg=$thm_bg,bg=$color,nobold,nounderscore,noitalics]$icon " - local show_text="#[fg=$thm_fg,bg=$thm_gray] $text" - - local show_right_separator="#[fg=$thm_gray,bg=$thm_bg,nobold,nounderscore,noitalics]$status_right_separator" - - if [ "$status_connect_separator" = "yes" ] - then - local show_left_separator="#[fg=$color,bg=$thm_gray,nobold,nounderscore,noitalics]$status_left_separator" - local show_right_separator="#[fg=$thm_gray,bg=$thm_gray,nobold,nounderscore,noitalics]$status_right_separator" - - else - local show_left_separator="#[fg=$color,bg=$thm_bg,nobold,nounderscore,noitalics]$status_left_separator" - local show_right_separator="#[fg=$thm_gray,bg=$thm_bg,nobold,nounderscore,noitalics]$status_right_separator" - fi - - fi - - if [ "$status_fill" = "all" ] - then - local show_left_separator="#[fg=$color,bg=$thm_gray,nobold,nounderscore,noitalics]$status_left_separator" - - local show_icon="#[fg=$thm_bg,bg=$color,nobold,nounderscore,noitalics]$icon " - local show_text="#[fg=$thm_bg,bg=$color]$text" - - local show_right_separator="#[fg=$color,bg=$thm_gray,nobold,nounderscore,noitalics]$status_right_separator" - - if [ "$status_connect_separator" = "yes" ] - then - local show_left_separator="#[fg=$color,nobold,nounderscore,noitalics]$status_left_separator" - local show_right_separator="#[fg=$color,bg=$color,nobold,nounderscore,noitalics]$status_right_separator" - - else - local show_left_separator="#[fg=$color,bg=$thm_bg,nobold,nounderscore,noitalics]$status_left_separator" - local show_right_separator="#[fg=$color,bg=$thm_bg,nobold,nounderscore,noitalics]$status_right_separator" - fi - - fi - - if [ "$status_right_separator_inverse" = "yes" ] - then - if [ "$status_connect_separator" = "yes" ] - then - local show_right_separator="#[fg=$thm_gray,bg=$color,nobold,nounderscore,noitalics]$status_right_separator" - else - local show_right_separator="#[fg=$thm_bg,bg=$color,nobold,nounderscore,noitalics]$status_right_separator" - fi - fi - - if [ $(($index)) -eq 0 ] - then - local show_left_separator="#[fg=$color,bg=$thm_bg,nobold,nounderscore,noitalics]$status_left_separator" - fi - - echo "$show_left_separator$show_icon$show_text$show_right_separator" -} - -load_modules() { - local modules_list=$1 - shift - local module_directories=("$@") - - local -i module_index=0; - local module_name - local module_path - local loaded_modules - local IN=$modules_list - - # https://stackoverflow.com/questions/918886/how-do-i-split-a-string-on-a-delimiter-in-bash#15988793 - while [ "$IN" != "$iter" ] ;do - # extract the substring from start of string up to delimiter. - iter=${IN%% *} - # delete this first "element" AND next separator, from $IN. - IN="${IN#$iter }" - # Print (or doing anything with) the first "element". - - module_name=$iter - - for module_dir in "${module_directories[@]}" ; do - module_path="$module_dir/$module_name.sh" +# Set path of script +PLUGIN_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" - if [ -r "$module_path" ]; then - source "$module_path" - loaded_modules="$loaded_modules$( "show_$module_name" "$module_index" )" - module_index+=1 - break - fi - done - done +# import +source "${PLUGIN_DIR}/builder/module_builder.sh" +source "${PLUGIN_DIR}/builder/window_builder.sh" +source "${PLUGIN_DIR}/builder/pane_builder.sh" +source "${PLUGIN_DIR}/utils/tmux_utils.sh" +source "${PLUGIN_DIR}/utils/module_utils.sh" - echo "$loaded_modules" -} main() { # Aggregate all commands in one array diff --git a/utils/module_utils.sh b/utils/module_utils.sh new file mode 100644 index 00000000..58dcef43 --- /dev/null +++ b/utils/module_utils.sh @@ -0,0 +1,37 @@ +#!/bin/sh + +load_modules() { + local modules_list=$1 + shift + local module_directories=("$@") + + local -i module_index=0; + local module_name + local module_path + local loaded_modules + local IN=$modules_list + + # https://stackoverflow.com/questions/918886/how-do-i-split-a-string-on-a-delimiter-in-bash#15988793 + while [ "$IN" != "$iter" ] ;do + # extract the substring from start of string up to delimiter. + iter=${IN%% *} + # delete this first "element" AND next separator, from $IN. + IN="${IN#$iter }" + # Print (or doing anything with) the first "element". + + module_name=$iter + + for module_dir in "${module_directories[@]}" ; do + module_path="$module_dir/$module_name.sh" + + if [ -r "$module_path" ]; then + source "$module_path" + loaded_modules="$loaded_modules$( "show_$module_name" "$module_index" )" + module_index+=1 + break + fi + done + done + + echo "$loaded_modules" +} diff --git a/utils/tmux_utils.sh b/utils/tmux_utils.sh new file mode 100644 index 00000000..10711d15 --- /dev/null +++ b/utils/tmux_utils.sh @@ -0,0 +1,35 @@ +#!/bin/sh + +get_tmux_option() { + local option value default + option="$1" + default="$2" + value=$(tmux show-option -gqv "$option") + + if [ -n "$value" ] + then + if [ "$value" = "null" ] + then + echo "" + + else + echo "$value" + fi + + else + echo "$default" + + fi +} + +set() { + local option=$1 + local value=$2 + tmux_commands+=(set-option -gq "$option" "$value" ";") +} + +setw() { + local option=$1 + local value=$2 + tmux_commands+=(set-window-option -gq "$option" "$value" ";") +} From a1079943b6850b2ebb8214f5067edd4d7f5b4deb Mon Sep 17 00:00:00 2001 From: Valentin Uveges Date: Thu, 28 Mar 2024 18:55:01 +0200 Subject: [PATCH 22/49] feat: improve transparent background (#175) * feat: improve transparent background * fix: fix for config2 * chore: remove status right separator invert * chore: update config presets in documentation --- README.md | 12 +---- assets/config1.png | Bin 93462 -> 30407 bytes assets/config2.png | Bin 79236 -> 31017 bytes assets/config3.png | Bin 84927 -> 28905 bytes builder/module_builder.sh | 52 ++++++---------------- builder/window_builder.sh | 91 +++++++++++++++++++++++--------------- catppuccin.tmux | 31 +++++-------- 7 files changed, 83 insertions(+), 103 deletions(-) diff --git a/README.md b/README.md index 59a475e3..860ebba9 100644 --- a/README.md +++ b/README.md @@ -253,14 +253,6 @@ set -g @catppuccin_status_left_separator "" set -g @catppuccin_status_right_separator "█" ``` -#### Set the status module right separator inverse: -```sh -set -g @catppuccin_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 the status connect separator: ```sh set -g @catppuccin_status_connect_separator "yes" @@ -514,9 +506,8 @@ 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_right_separator_inverse "yes" set -g @catppuccin_status_fill "all" -set -g @catppuccin_status_connect_separator "no" +set -g @catppuccin_status_connect_separator "yes" ``` ### Config 3 @@ -537,7 +528,6 @@ 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_right_separator_inverse "no" set -g @catppuccin_status_fill "icon" set -g @catppuccin_status_connect_separator "no" diff --git a/assets/config1.png b/assets/config1.png index d75206b16efb3e464485a30de1c9a81052441719..6eede6d810ce3ea8c5c8aec2c6e044bcbdf88a96 100644 GIT binary patch literal 30407 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 literal 93462 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 Ww=0IfE?OZWzI3$oHNR^(g#SOEUtYoh diff --git a/assets/config2.png b/assets/config2.png index eb5eb8c8736835014d800f957f79ba31487e1598..56958902b99096fef1c745031c34b1421f8af105 100644 GIT binary patch literal 31017 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 literal 79236 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 {D`qyWK>krPQuUZUzyPqkdeV5z>bf56u zKp+ta%VqkHLpV=;;K+l>)%bJy7<>U)i<_@n`$0xFow(#_Ad#7y8 z2cG`)8m%qu&r2DXm0`}7a^S?@&zUi?&_pa+;J2fTKE@hC)MrPBX;oj>&Ja{KC>T#BFDq8ftKoXi5d_l z!7=HjX^pY%8>GEHTzFC}`NoSB=Fyj9SCxX3gseD^lTXJ3&OXWUG!{!dj`msS8kL!Z zqOQj<=mIxvY<(G|J!nCTS4uiN`swM)t42o3Up!;FVK8T|P$Ns}asj7h%ZRO{rlmBd zsHiBC65qvV)ugL<%Y~Wj5uJtlX(olABj`L27!BAG#Bh)EjDA*TH%MYsIs5vbzi7x@ z*yI?Lzr#pJ{HsJ0MD`QKIyIk@bpBkDSaj?aBKUQX0fUH$H2q}lo-z6hq6i^<_GF=k zW1VkWW?~^&nVCo|yV+2$0)?YzfIxuuY3fPu_otJMHJX_~$LZi6cw!J#Br%U_{|;VC z*4x$KPWA4F^7s8JrFZQ0`qMpWGy2BddlNqux?o+EsLucsW7YM{ZC`#uXMsx#hc_+x z{1&tmS6a9@bC!iIEyQ9m4aRg^^CF@t1w~iE^W(UD2xe0R)Z37k2V^*b`}~iG!zrQ7 zf8;Qua==sF>o`RuQ?XA+PltyeQa_s+<44M$S#;0-L-}oiU(#X3Uc}-2m!ydK03aZk zx12$%jA>fa=K^nn4Q=mMqs`@~e`V*7sNpp&o7?k)+5 zkCG$?N4cr$9jq07`tfkZ1ZFw&?Y~BGa%i;K$t9qifafM*=u5iff@uJLV3%I|17dOc z>u=WtRVnkRv98#>NB?<$%V|og6)c#mB9w8Rx_O#pjkMEV3O0~}Hr8+qX1W{GxMfnb z?~VZ1z-H{ucmBGYGpsy1iYr+5YWebFB**r3*0@^I8cWF_R0KWG3<8WeH5}7dcEm`Nf)(G50UJ_kVP|^c={A1J)eGut!06yBb`7%466Aw|H{$ULJtK-8-Ls{09rXU+G0sVGU$(t!*2u0< zW}vaE)2s(=C_DX?>@J0DC+{IO!))f=AvH5{zn?l=MO_|M zPn6cXxWXONK+L7<@{RZTr~vxW6x*?>$}UR{Y444b)1P9e_e|S~^L=LcUa}*f!69|> zhmbUZ6KGBsTVhp7Ho26vib@TL>rk@q`WDqNn&s$8`wX>na5>h}m?-OZE_wGS;I!I|AK-?)Z&^6lQe;i1 zPL{w&q2FXM=*X6Bkh#_O-y(?>32j$BRCptq5`9pS-DN1p!}9hcw=zWDxYiLr#oK<{ zJK4Ux8cLC|153KB>X%_DMCoqcL$5E^+$~#a+-M64g&j;f_wvQXE|sUwmNqAp3y*x{ z!{_6+OC!0b2I|UiR-G$3r>F+JwKdlk@pftue(i$;dq*SIKF4O zb&`~c?pZVHb0UwY(!mS@S}pVvt=%xoTw>j`NSeQbB83UnAfhlxwerU6gGTY%xJ*cb zw;T_OGSR3*bXFYXu4xGm#g3%L1lv;GZ-`rg>*Q#Plv1~|@+7trl}{gj0?J5}ZvYSG z7L;Y8j`fu0?*nsHR5GfClntJpAEiJ3{phNwgA3Z5ic9bYB9oU#rlm2W`~M*QpohL3Acoav8c-T`y zDqCR?9z>;tgc@{`%d;syH*zn22;M9zSYKGsI48TRxoEVN3_#^(7~qQ1)YZhMH((P# zN6CkPAd~yU02>ZN_$Yq$kDCDsUi3EI=6D$dn`26thJbq6hO}d_ogTvKENbN~(SC^8MoUe$1 zEr~K@R9-rk91rM+r4qmPi5BU?7H!scBqbe~vUe8#DN!JtPwu6MW#e}{Y;dOu4x%y+ zVLa{AS)3-I%qInNHV-%>Exx9pVF%?r+^CdQW^#JNbUbbKT4Ecrv^S(yj!7znKzUX! zRGv{KyB8R6Yq)kd?Mdxf4Hx7|Ez1rEBeUqp_)ug^dyCU7NPq&u63V~EeZ<0 zt<}6tKP>#2*p82yj7P1&vD<)l7CJ<59^R}F&63$jNlnOLiM(bM$EXGg=*($ zWL84r_sFAu`e(L3BKGHgdfD1`-4I`K1{-Vdq{Cc^F679#{%Umn;Z|~KHTEdHD?A*= zylp>hN=2xB#M3|PYy_5`{o1N=%U$pOe5gBdQA-JP#g?!*|6G>iGe39A`Dx)r&h%(b*STf4BTmOI(E*F~Ces9Oh#TFe&H?0T{PI_zU{K6LSA#u?0~vemQ&h!!YU16v9?h^fkyuFp$qn)ln6B{64rp->+I*HA=AqW4XQ9P+NxoFu2wg3ofG z_Vk_2d6kl@W!VF(^$zE*N5*{EENr(zCTC%rVc&sA!r&2n-Db9FX@ft91s*S+lPcdg z>wOPOf0ybc#!a`2bm^stRMDIu_WoolLRhSy>5)o^Nmu!=U8Lu0A4cP;;@AuL%+KwG zqN95xh2XR-R9q8V&|AR=1z00_yizA@MsM=e$EgqAI<^gsooFX6TC7@4JT+6>c3=cX@A?1WSaSYb6r!v^#^3mfe_yuC4Saq}^M zDj1`YGEr;p2C1v-D~VB-kM!3c=SzJR;A}rrpdK0ztP9lSbTx!#vt7VBCd?q+96{u) zx{#SQ|53%aS~!Ti3n9&b!tC)HOGgu)&k8u_1mm1`lvPyhaT4LbcQ~P2j-1a9f3`mv zF-^#>C{nY&aYBZ58H^<8>poI%3T|Z>qOe6k`ZQ%&bGr(iaO7g)TJg0;nX+2j9W&%+ zMnPYN-5DcGy||m6z7=7fSap}XNrl|rWws)A5m&X;rL-jH)1EfCsbRV@lOIHon@a04 zg+jyq|WkAP7;PueG>T)agL@rYK1 zdq2Ru2?Gf48m-e0^0(y%NY%`*h_Iz+hsYg55gSk45!}f5k@#R74M`AC(>sVf{RLad_emz%4DdO^r24Id zIpHjj;&Hs0Hr55Sswr#^mvC))bN5q zLeV5y#1pUUA^r*ZppTSXh(DpTf#60J_zbKD13@j$UA zQS+k;#EC{{;c|Lt`@Dwg3Dt>#J@N>JMBN?7Me1{Wk2@x|lP`BvhH@aBogMSbPotG2 z8ZT_)w9z}pDu9)i5m6KxO>Wm(a9TTW=-#uyl&W`FCWNE~q(*914m*i)J~Qys=&{?m zCauQnW%HJVttuv%pmaTa09pxC3|AGZ(^t?`i1&i9yn=dziIyVUHI8b3^AK^>KErNu zQVGNU10g08kg_H$(|SgpEQGZ=1^h_~{xT^kcuo3_*l?R}5=lG`PgUpqGuVUaOwD(b z4@&DV0WjqtwvIgK%;%!&k2K7X>(8i$L+8wZ4cdNrz*&vM#ago!NxRVoorq`%H>gcA zY`D<5)S(R{>O=|2`vr0`&&&Xq-!i>sge@~4{86U)nX`d_+p#SBuo5utGntL}%k^afTWNpDtMtt;f0T z1v&(2g<4<>yzM%wc$!zz)n0JgJH)e8R{)Oas^@FLF{f8biu?Q|yAD+cCk2{b+Ivb` z3&dXkh>gV$3kRD6VXB}?#v+U`qxOz#aI@u-nM$_e49g<3umV|TCVM;8)>WoVrF21Q zy*d5t_Io}7r|TVU-RYXBL4z}YTj8Ub9?(H;9f!tYx%`q`;^{QTf+9N+pFfTy;06lL zJHS{YQiwB5$fBsD&ygP5?0OlXUCMEuX(Z^AOV_2BTubC5$XgEXoTxZuGFdYI_0T&S zos|I>((n=I9>eVnwu-l-m& zQz=98{_!!2mR5?tFR|RnBrz9$(~Ph55eo~;#^}%Wkd{K`v!Mb}w{4v9xct6-OXGKK zZN`;Y*w@yCRN;neVRW2E@g!#?YwsS^QlF@DrWCQzC}$X)_S*A%lH@%d$gc8S4Jx;M z>|cpiXo!M|MYe;6f5Q*Wvc43r&(Lt`3vx=_%+kVq{eX*1Y6#NMQZ9919cFcG|J9ObXQJJzoc+Zy&RE`A=tkyv|q5>aXS%=D=WcZL_G`1_FNL_8lp z$Y6L{Ep$Kw7Xr+Mc$s(4shv&XWR*%lPr&$m%=agd-W_iPIERf+kt?mfA=#eVPBuwl zrT4-rIp02o+Zlq|)Y>d^QeTE*K4oy|r~JUI@FoKe5lco3Jh_al*Uxhb7^}s#llu8$ zyTd>B5x+r6E=O?w^dX|BNauCHqFNV_8*+RJ58p^hi89CX#~Kw4pD6Wtge>Ie6*(s( z<#ZNm`mMpJG36){v#ZUh*}11-ele{h{9?204Dmp|iK2~5CGiaw@Z{rVdf&iqu0+4e z?pjMOrEbMysf5i6#KPQG33DyUSjq%Qr@bKCc=mi_9#An(~M zHfo=FwpZV}IJ)x^aJ3Fv!dyvmKITYd&T2;}Vije*^jRmI&-_pjv}h;+FiJZ>Sn#Te zE2m((ovt5~edfMabRXB^=C>ac@hA>X+nQ3;-#>sY5|huaLbCEQ_82uDJtiSA$B>+ z;fouGhm_x)W(T>A*G$BdmxO2G=pVv6f#T(@Ls{M_rh}(k*)MguQ6AZ06q zfl**~ym(((Np*t@Z-Yo~zp>k_Jd@SKEBQ(QPXXDgQ#a>bk1)Z;90eQSV@mqbERAeHd- z8yWn}<6|u1@2Oj}bpYgvC|&qOo{+~G`$kmMv3?UK)+IWpn zp0}^dHylrGTUObSSgl9oBtIH>t7n0BavFvjF;+gA6Z_%%y{4FC{McM(UxrqyOM@bD z+ZV8O6Q;)-R|rM3P-=0+aqbHxpA|YW7LQck1N@Z@`@i@rOpxqQ9ts40JJ+fRv6>5t;kf{OtY6KJ zpqVTX?o%`!O~8x=!5oTqy)9jzfa9HSc6Z-KIJ@Z6Nzxf9I=co~g#K%80unPmebb+o z&-?M7M@S^&fbp5n)1Ek8`~(;9&WQR|R`?fSrAA@wQ&8K!NyS@j+!w(5ri~aB)Dq+% z>9MR+NiQhp{WiyGfru8lEB;*y-DL94Ps2B zR?O^5;9u3KD0kB_32Lxq7=cd_IF7!Xm>BXsN*f`OGuFF({nvYcdudj6qHql&(XGRn z;WXs>*yQ|5d2BFE`IC}ip;(@|`Eng={Px3nstCc@RT(stz<}uA-hKcJypU+4hZP-jnFu3(M{fPP zNFwf-qOn$3vR&_HlN3U?V8~;Jium34m3q8X!+4W%R^IJqOp3d{iCk{*tQ}0o%l1q& zJFr49x>M%)V`d4jeE+4@Ij(Y>KqJK8;-+`gIGT@&=7noPop*3 z%fxjgJ{7y_(^G^*u(&0cu=46G)BIvPFRrJc-pTK_uSO8XS2%kvcZ**BSzicsY&6j` z@HY1JHb{5dJ`c%O(4@IjWlRev@!bOck{&QtvUt8G)Y*FWzS+PYk{yQ35>)V7v_kE) zTf_Ku^P7~KK@pn;ut`TkNPK`lU~PEI$u;`9Sy4h=93F_6msPI*=DQe*U*@?TG?plO z6q!e4cL%w-;psVaWV<8E>eNka;Z378fA1?*OiqG@+#K(o8)vx{drF8qe>AJj7TzNS zy@RI^fn)PUMvfAcGkqh-BRy2;0e4zejqPfgVtiXt9pkTkWx}2PR~pS`jwLE>MF(2q-0WJpC2}53+;(sBPLI?%XGeINoHmS zG%Ey|C*&r~1Y7@35<(;6mp4 zCTnFf%GOpyDbsyW3YCG~SWqS34a)aJ4$*x|XfuH#)|Fp^(^c#IEpbc|f@w$Q7cyuP zP%@iuVgM#ql=gKxDLFae{#)A|65R@=;h8NPd&wfE%9yweSScw)?VyKiN?9jNRC|$f z#>8S00b<+LZ?#3mYzLs3Zpdp8giaD;VyJZOhVLmXGWwr}m!y@Ac~@FMy&GKY7Tj}Qvf9KowXF29Hlu6i z{Rj06vht5t%_b5&(!+dA%mGx7kK-xx8L$2$&qXK@{DG&lZlC`wz#Z7 zY%fIqArc<6m0bA)RVIS4DFw;rW84DnQ43ViRB(7U9BLOb?1_b}%kO#Ah@~j!goL$X zBToMOYG3HoddhxuDXEL-Fzug~BQd^)qP^lhaQ=W8@Vz1~eb?poybD}AP&B-#r)luX z^!TG0h?*YL-)b$FGI98=+)!qz5>t$xh&7}@b$Ym2My6CzenZ*c zuV|jdh#+hp-uvPl;M?8~4HL*-Yi{aPt8Daq8RV=?9n}^4slHT$0omsr?0DF3is)E1 z2&c}6pJc+I_-cA^XSstwmB5LF7p8@W<~277Kf9NA8{4Y0HVf2mZsf z?Q04cmfO%f^ls^7iM_I<@YqqU5ZbxFLQZ#>NpV!XVzdi`9QTRC!lNnTB^co3B1S0V zB@SaIRad}PJ;WJlN7B;LCQ>1nKe)o^k{G+OnQXlKX1UEbQyyFUza6&mOnR zz~SI-P#Oq;jM!AoRHK4%`j#LFH1z3y8yum3|VlFV*dJA0pa z7F<<`n(cf`HMWX`fID+aoxG0(*3(mLx8;vsHTPmbca;L=xNAkI=DLr2m;Vg&Fd?EPOozJF?gp=ZI08@)Dp_uQg*S-E7O1BNB@VCl>O;V zk)TjQkjz>L@jEXRfSM>cf>Ki{exoLe`Gb+@_9XauelKuT*VuTR%yfQ7VW z?0Abp8XdKlYZ3ROfRNtgx!#Rg_VJh%A@n;NZL2%=Ij_YO8E3l}&kC;-ob=RITs0c~ zZ$CRt&bpIz;{_SO57DXqP}Z8Q+oCN;LPJihf9H)u z(3!4l1K#njUs7CX{@!Fz?j$#X{pCL{SC>D`CDP@FUy@lbGWyRzC9kt;L-~dzHZ2%K zGhj=$TmL98sm;g6-i=O5gDxmY#2I<}TP<)er_<|*2KVxM27}M7>cD2wjxWBbUNR zt~dX0lGR0pFx&UoPEv`x=5g$ie7$0Lz+aakXJ29y#MZD1+uin1F)>*e!TMO4-wCtB`GbN7 zDNkpgvX;4A(xY0rIcJwB)JkP4LL}oq_u?N##~1Mcu!8BrRCGtnQW@8 z%B@&o&4wdFPUk}mUT#~+Chpcl*hT6(u1R8^f6vydKAvA1D!%DdgAv( z{KL~~Z~PrY%V56SxGu@=?Cc<*Q6w)=th|3}|8qTz$yL2^wnbHGN&s5L<{#Xw7F}Q1 z94b^0XtBy{n}xI9%x1NSXtR7^6JdVZMcX983wl$ z6;-v=R>ZC^67rC~^uXeV^?)L{UCJ;gh-ACw5j1D6>IJ^==yo`u5fQ&a)rB2dTTwT+ z{X>f?3-)DiUyrg8fM598-y09xn2B}YRyZJ;TcnZ*v2nH}sBR7PS-$}}Mjy1bz6quT}5OmA^Z z`<3d=z%UG&^)S9>1j&U|3OiVUR9V{P%tNM+foM zh1pVxGaOh(&H?pOyBQwf;;wAl+V^oOyZq}vSbg||!3+X$!u}&TL$M+CO=W!)cNQ<6 z=96qlEfMeGZ63hz9su060MtYPhgmhhPsdLFX6@w*8XJlQoQQ`)VCxb(47`T~v{nDq zKPISI8>smQZv}<1V8%=>z&Y%n{o1aVGvlkiv0-k|_+DmUDQ)J|#RaU`ok4Dr|3kR_ zxwGAa=L0*kZGlOTUF-ISx+C0aG>eyOJR#EkALepi9P6*;<=PY-y!Wfo`Gxe_W|DQ5 zQ6jYGPAsvcyL)1xi?wiD3j=XJnW__po@57y7f zdqa7hn?9=pD70M8*$K!rS^-h=+qV;fjfZ+oduoZdkrU=K^S!Ht_#tq@mg+&mH@Jk>U$qM zgHRN-fZfVAyT^oWd;m*q7zg9%RFgvhdr3<>QZCJ!nZtC&%4)O_C4l7fHKH|(_%7FX zt(Vxx+8mQ03Q_aBZ@GZMA}Hm2u)!`!z<=jt6TTbr&H2%H%6Fd!5Ly5GEm`FP)$ro| zbDY|@vvZmJ>5Y|w00+Xi^B^<+EX$Jvt2$4|MxK-^N~_wiFpesHaQ0d^w%y7EeTgsm z!pNqlE^ptebl~-vwNL~|OG_(4J(Jb!uM^|{j%7C-han&!=$e~@y}YU+0T@FGi;Dpw z+G{qUa*$04G4LSRf}RQ*R}Pk1`}aXt-xNKFkoUEm@*Efcc}o88KlRV~p8W*@pcVA@ z-$%#9z`1~rgZw#nuo6YA9p6|EkNRzGVcJ)@Vg+7#wgKJWj#-J;a%wT{{@?M&|DcWh zv;Y1->jEgmX)i(0-Q^u{t_y2f;LVnr!81%$0M9nO z(W$LHDHrUwZ^svv2(+}eIt}^he^X5VIh+0pyZpTpIx0i65Ed5(hK=K6ghj1GSGL{7 z99|;n9mEPEPF*f4x;ETY*oJ{)zcd`}fk>F|NpqsYk zk6Ax924DZ#NB{Q=@Xt~OGe{IG_4!EXL6MPY8ykl3zz)l9szMlF094f%nw?9m9uOKR z$W$@ffEr;xK_eb|WEU~k!{l*(xt~zDjhBRM3~}NIcF#pEO>|;rc%e-=0Qx3)9XWzg ztoZv3`sY{w*9$Z&2QcAps6+RGZ4r5Ag^qVf6P=L}#-u1gWcf4Bazq8A1r@E4jyAig z=njp!#*R*MPsqZ71}lC&*j=6h`9dM0Z_6O2WK2Kr>^t> literal 84927 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 F69D)xP diff --git a/builder/module_builder.sh b/builder/module_builder.sh index 114becdf..11782d14 100644 --- a/builder/module_builder.sh +++ b/builder/module_builder.sh @@ -1,68 +1,44 @@ #!/bin/sh build_status_module() { - local index=$1 - local icon=$2 - local color=$3 - local text=$4 - - if [ "$status_fill" = "icon" ] - then - local show_left_separator="#[fg=$color,bg=$thm_gray,nobold,nounderscore,noitalics]$status_left_separator" + local index="$1" + local icon="$2" + local color="$3" + local text="$4" + if [ "$status_fill" = "icon" ]; then local show_icon="#[fg=$thm_bg,bg=$color,nobold,nounderscore,noitalics]$icon " local show_text="#[fg=$thm_fg,bg=$thm_gray] $text" - local show_right_separator="#[fg=$thm_gray,bg=$thm_bg,nobold,nounderscore,noitalics]$status_right_separator" - - if [ "$status_connect_separator" = "yes" ] - then + if [ "$status_connect_separator" = "yes" ]; then local show_left_separator="#[fg=$color,bg=$thm_gray,nobold,nounderscore,noitalics]$status_left_separator" local show_right_separator="#[fg=$thm_gray,bg=$thm_gray,nobold,nounderscore,noitalics]$status_right_separator" else - local show_left_separator="#[fg=$color,bg=$thm_bg,nobold,nounderscore,noitalics]$status_left_separator" - local show_right_separator="#[fg=$thm_gray,bg=$thm_bg,nobold,nounderscore,noitalics]$status_right_separator" + local show_left_separator="#[fg=$color,bg=default,nobold,nounderscore,noitalics]$status_left_separator" + local show_right_separator="#[fg=$thm_gray,bg=default,nobold,nounderscore,noitalics]$status_right_separator" fi fi - if [ "$status_fill" = "all" ] - then - local show_left_separator="#[fg=$color,bg=$thm_gray,nobold,nounderscore,noitalics]$status_left_separator" - + if [ "$status_fill" = "all" ]; then local show_icon="#[fg=$thm_bg,bg=$color,nobold,nounderscore,noitalics]$icon " local show_text="#[fg=$thm_bg,bg=$color]$text" - local show_right_separator="#[fg=$color,bg=$thm_gray,nobold,nounderscore,noitalics]$status_right_separator" - - if [ "$status_connect_separator" = "yes" ] - then + if [ "$status_connect_separator" = "yes" ]; then local show_left_separator="#[fg=$color,nobold,nounderscore,noitalics]$status_left_separator" local show_right_separator="#[fg=$color,bg=$color,nobold,nounderscore,noitalics]$status_right_separator" else - local show_left_separator="#[fg=$color,bg=$thm_bg,nobold,nounderscore,noitalics]$status_left_separator" - local show_right_separator="#[fg=$color,bg=$thm_bg,nobold,nounderscore,noitalics]$status_right_separator" + local show_left_separator="#[fg=$color,bg=default,nobold,nounderscore,noitalics]$status_left_separator" + local show_right_separator="#[fg=$color,bg=default,nobold,nounderscore,noitalics]$status_right_separator" fi fi - if [ "$status_right_separator_inverse" = "yes" ] - then - if [ "$status_connect_separator" = "yes" ] - then - local show_right_separator="#[fg=$thm_gray,bg=$color,nobold,nounderscore,noitalics]$status_right_separator" - else - local show_right_separator="#[fg=$thm_bg,bg=$color,nobold,nounderscore,noitalics]$status_right_separator" - fi - fi - - if [ $(($index)) -eq 0 ] - then - local show_left_separator="#[fg=$color,bg=$thm_bg,nobold,nounderscore,noitalics]$status_left_separator" + if [ $(($index)) -eq 0 ]; then + local show_left_separator="#[fg=$color,bg=default,nobold,nounderscore,noitalics]$status_left_separator" fi echo "$show_left_separator$show_icon$show_text$show_right_separator" } - diff --git a/builder/window_builder.sh b/builder/window_builder.sh index 821163f9..f5a8c304 100644 --- a/builder/window_builder.sh +++ b/builder/window_builder.sh @@ -1,67 +1,90 @@ #!/bin/sh build_window_format() { - local number=$1 - local color=$2 - local background=$3 - local text=$4 - local fill=$5 - - if [ "$window_status_enable" = "yes" ] - then - local icon="$( build_window_icon )" + local number="$1" + local color="$2" + local background="$3" + local text="$4" + local fill="$5" + + if [ "$window_status_enable" = "yes" ]; then + local icon="$(build_window_icon)" text="$text$icon" fi - if [ "$fill" = "none" ] - then - local show_left_separator="#[fg=$thm_gray,bg=$thm_bg,nobold,nounderscore,noitalics]$window_left_separator" + if [ "$fill" = "none" ]; then local show_number="#[fg=$thm_fg,bg=$thm_gray]$number" local show_middle_separator="#[fg=$thm_fg,bg=$thm_gray,nobold,nounderscore,noitalics]$window_middle_separator" local show_text="#[fg=$thm_fg,bg=$thm_gray]$text" - local show_right_separator="#[fg=$thm_gray,bg=$thm_bg]$window_right_separator" + + if [ "$status_connect_separator" = "yes" ]; then + local show_left_separator="#[fg=$thm_gray,bg=$thm_bg,nobold,nounderscore,noitalics]$window_left_separator" + local show_right_separator="#[fg=$thm_gray,bg=$thm_bg]$window_right_separator" + + else + local show_left_separator="#[fg=$thm_gray,bg=default,nobold,nounderscore,noitalics]$window_left_separator" + local show_right_separator="#[fg=$thm_gray,bg=default]$window_right_separator" + + fi fi - if [ "$fill" = "all" ] - then - local show_left_separator="#[fg=$color,bg=$thm_bg,nobold,nounderscore,noitalics]$window_left_separator" + if [ "$fill" = "all" ]; then local show_number="#[fg=$background,bg=$color]$number" local show_middle_separator="#[fg=$background,bg=$color,nobold,nounderscore,noitalics]$window_middle_separator" local show_text="#[fg=$background,bg=$color]$text" - local show_right_separator="#[fg=$color,bg=$thm_bg]$window_right_separator" + + if [ "$status_connect_separator" = "yes" ]; then + local show_left_separator="#[fg=$color,bg=$thm_bg,nobold,nounderscore,noitalics]$window_left_separator" + local show_right_separator="#[fg=$color,bg=$thm_bg]$window_right_separator" + + else + local show_left_separator="#[fg=$color,bg=default,nobold,nounderscore,noitalics]$window_left_separator" + local show_right_separator="#[fg=$color,bg=default]$window_right_separator" + + fi fi - if [ "$fill" = "number" ] - then + if [ "$fill" = "number" ]; then local show_number="#[fg=$background,bg=$color]$number" local show_middle_separator="#[fg=$color,bg=$background,nobold,nounderscore,noitalics]$window_middle_separator" local show_text="#[fg=$thm_fg,bg=$background]$text" - if [ "$window_number_position" = "right" ] - then - local show_left_separator="#[fg=$background,bg=$thm_bg,nobold,nounderscore,noitalics]$window_left_separator" - local show_right_separator="#[fg=$color,bg=$thm_bg]$window_right_separator" + if [ "$window_number_position" = "right" ]; then + if [ "$status_connect_separator" = "yes" ]; then + local show_left_separator="#[fg=$background,bg=$thm_bg,nobold,nounderscore,noitalics]$window_left_separator" + local show_right_separator="#[fg=$color,bg=$thm_bg]$window_right_separator" + + else + local show_left_separator="#[fg=$background,bg=default,nobold,nounderscore,noitalics]$window_left_separator" + local show_right_separator="#[fg=$color,bg=default]$window_right_separator" + + fi fi - if [ "$window_number_position" = "left" ] - then - local show_right_separator="#[fg=$background,bg=$thm_bg,nobold,nounderscore,noitalics]$window_right_separator" - local show_left_separator="#[fg=$color,bg=$thm_bg]$window_left_separator" + if [ "$window_number_position" = "left" ]; then + if [ "$status_connect_separator" = "yes" ]; then + local show_right_separator="#[fg=$background,bg=$thm_bg,nobold,nounderscore,noitalics]$window_right_separator" + local show_left_separator="#[fg=$color,bg=$thm_bg]$window_left_separator" + + else + local show_right_separator="#[fg=$background,bg=default,nobold,nounderscore,noitalics]$window_right_separator" + local show_left_separator="#[fg=$color,bg=default]$window_left_separator" + + fi + fi fi local final_window_format - if [ "$window_number_position" = "right" ] - then + if [ "$window_number_position" = "right" ]; then final_window_format="$show_left_separator$show_text$show_middle_separator$show_number$show_right_separator" fi - if [ "$window_number_position" = "left" ] - then + if [ "$window_number_position" = "left" ]; then final_window_format="$show_left_separator$show_number$show_middle_separator$show_text$show_right_separator" fi @@ -78,8 +101,7 @@ build_window_icon() { local custom_icon_window_activity=$(get_tmux_option "@catppuccin_icon_window_activity" "󱅫") local custom_icon_window_bell=$(get_tmux_option "@catppuccin_icon_window_bell" "󰂞") - if [ "$window_status_icon_enable" = "yes" ] - then + if [ "$window_status_icon_enable" = "yes" ]; then # #!~[*-]MZ local show_window_status="" show_window_status+="#{?window_activity_flag, ${custom_icon_window_activity},}" @@ -92,8 +114,7 @@ build_window_icon() { fi - if [ "$window_status_icon_enable" = "no" ] - then + if [ "$window_status_icon_enable" = "no" ]; then local show_window_status=" #F" fi diff --git a/catppuccin.tmux b/catppuccin.tmux index 2663e782..fefb5077 100755 --- a/catppuccin.tmux +++ b/catppuccin.tmux @@ -10,7 +10,6 @@ source "${PLUGIN_DIR}/builder/pane_builder.sh" source "${PLUGIN_DIR}/utils/tmux_utils.sh" source "${PLUGIN_DIR}/utils/module_utils.sh" - main() { # Aggregate all commands in one array local tmux_commands=() @@ -29,14 +28,14 @@ main() { # shellcheck source=catppuccin-frappe.tmuxtheme # https://github.com/dylanaraps/pure-sh-bible#parsing-a-keyval-file while IFS='=' read -r key val; do - # Skip over lines containing comments. - # (Lines starting with '#'). - [ "${key##\#*}" ] || continue + # Skip over lines containing comments. + # (Lines starting with '#'). + [ "${key##\#*}" ] || continue - # '$key' stores the key. - # '$val' stores the value. - eval "local $key"="$val" - done < "${PLUGIN_DIR}/catppuccin-${theme}.tmuxtheme" + # '$key' stores the key. + # '$val' stores the value. + eval "local $key"="$val" + done <"${PLUGIN_DIR}/catppuccin-${theme}.tmuxtheme" # status general local status_default=$(get_tmux_option "@catppuccin_status_default" "on") @@ -46,12 +45,10 @@ main() { set status-justify "$status_justify" local status_background=$(get_tmux_option "@catppuccin_status_background" "theme") - if [ "${status_background}" = "theme" ]; - then + if [ "${status_background}" = "theme" ]; then set status-bg "${thm_bg}" else - if [ "${status_background}" = "default" ] - then + if [ "${status_background}" = "default" ]; then set status-style bg=default else set status-bg "${status_background}" @@ -61,7 +58,6 @@ main() { set status-left-length "100" set status-right-length "100" - # messages set message-style "fg=${thm_cyan},bg=${thm_gray},align=centre" set message-command-style "fg=${thm_cyan},bg=${thm_gray},align=centre" @@ -70,9 +66,9 @@ main() { local pane_status_enable=$(get_tmux_option "@catppuccin_pane_status_enabled" "no") # yes local pane_border_status=$(get_tmux_option "@catppuccin_pane_border_status" "off") # bottom local pane_border_style=$(get_tmux_option "@catppuccin_pane_border_style" "fg=${thm_gray}") - local pane_active_border_style=$(\ + local pane_active_border_style=$( get_tmux_option "@catppuccin_pane_active_border_style" \ - "#{?pane_in_mode,fg=${thm_yellow},#{?pane_synchronized,fg=${thm_magenta},fg=${thm_orange}}}" + "#{?pane_in_mode,fg=${thm_yellow},#{?pane_synchronized,fg=${thm_magenta},fg=${thm_orange}}}" ) local pane_left_separator=$(get_tmux_option "@catppuccin_pane_left_separator" "█") local pane_middle_separator=$(get_tmux_option "@catppuccin_pane_middle_separator" "█") @@ -89,14 +85,11 @@ main() { local window_status_separator=$(get_tmux_option "@catppuccin_window_separator" "") setw window-status-separator "$window_status_separator" - setw window-status-activity-style "fg=${thm_fg},bg=${thm_bg},none" - setw window-status-style "fg=${thm_fg},bg=${thm_bg},none" - local window_left_separator=$(get_tmux_option "@catppuccin_window_left_separator" "█") local window_right_separator=$(get_tmux_option "@catppuccin_window_right_separator" "█") local window_middle_separator=$(get_tmux_option "@catppuccin_window_middle_separator" "█ ") local window_number_position=$(get_tmux_option "@catppuccin_window_number_position" "left") # right, left - local window_status_enable=$(get_tmux_option "@catppuccin_window_status_enable" "no") # right, left + local window_status_enable=$(get_tmux_option "@catppuccin_window_status_enable" "no") # right, left local window_format=$(load_modules "window_default_format" "$modules_custom_path" "$modules_window_path") setw window-status-format "$window_format" From 61727758acd5da86fa17dfd5744e4eb56332e2e6 Mon Sep 17 00:00:00 2001 From: vdbe <44153531+vdbe@users.noreply.github.com> Date: Sat, 30 Mar 2024 21:07:56 +0100 Subject: [PATCH 23/49] Cleanup shellcheck warnings (#178) * chore: shellcheck-warnings for catppuccin.tmux Command used: `shellcheck catppuccin.tmux -ax -s bash` * shellcheck: fix all warnings Command used: `shellcheck -a catppuccin.tmux $(ls custom/*.sh pane/*.sh status/*.sh window/*.sh)` * shellcheck: update workflow to check warnings * shellcheck: include warnings from sourced files --- .github/scripts/test.bash | 2 +- .github/workflows/shellcheck.yml | 5 +- .shellcheckrc | 6 +++ builder/module_builder.sh | 2 +- builder/window_builder.sh | 23 ++++---- catppuccin.tmux | 91 +++++++++++++++++++------------- pane/pane_default_format.sh | 15 +++--- status/application.sh | 12 +++-- status/battery.sh | 14 ++--- status/clima.sh | 12 +++-- status/cpu.sh | 20 +++---- status/date_time.sh | 13 ++--- status/directory.sh | 12 +++-- status/host.sh | 12 +++-- status/load.sh | 13 ++--- status/session.sh | 12 +++-- status/uptime.sh | 12 +++-- status/user.sh | 12 +++-- status/weather.sh | 13 +++-- utils/module_utils.sh | 3 +- window/window_current_format.sh | 14 ++--- window/window_default_format.sh | 14 ++--- 22 files changed, 193 insertions(+), 139 deletions(-) create mode 100644 .shellcheckrc diff --git a/.github/scripts/test.bash b/.github/scripts/test.bash index 513800a7..d1df7e50 100755 --- a/.github/scripts/test.bash +++ b/.github/scripts/test.bash @@ -59,7 +59,7 @@ main() { exit 1 else echo "Running plugin: $plugin" >&2 - output=$(tmux run-shell "$plugin" 2>&2) + output=$(tmux run-shell "$plugin" 2>&1) exit_code="$?" check "$exit_code" "$output" diff --git a/.github/workflows/shellcheck.yml b/.github/workflows/shellcheck.yml index 127b0241..d01b2bef 100644 --- a/.github/workflows/shellcheck.yml +++ b/.github/workflows/shellcheck.yml @@ -26,8 +26,5 @@ jobs: - uses: actions/checkout@v4 - name: Run ShellCheck uses: ludeeus/action-shellcheck@master - with: - severity: error - additional_files: "catppuccin.tmux" env: - SHELLCHECK_OPTS: "-s bash" + SHELLCHECK_OPTS: "-a" diff --git a/.shellcheckrc b/.shellcheckrc new file mode 100644 index 00000000..3f7e5f56 --- /dev/null +++ b/.shellcheckrc @@ -0,0 +1,6 @@ +shell=bash + +# TODO: Find a way to declare color variables +disable=SC2154 + +external-sources=true diff --git a/builder/module_builder.sh b/builder/module_builder.sh index 11782d14..cfb9097c 100644 --- a/builder/module_builder.sh +++ b/builder/module_builder.sh @@ -36,7 +36,7 @@ build_status_module() { fi - if [ $(($index)) -eq 0 ]; then + if [ $((index)) -eq 0 ]; then local show_left_separator="#[fg=$color,bg=default,nobold,nounderscore,noitalics]$status_left_separator" fi diff --git a/builder/window_builder.sh b/builder/window_builder.sh index f5a8c304..186b169c 100644 --- a/builder/window_builder.sh +++ b/builder/window_builder.sh @@ -8,7 +8,8 @@ build_window_format() { local fill="$5" if [ "$window_status_enable" = "yes" ]; then - local icon="$(build_window_icon)" + local icon + icon="$(build_window_icon)" text="$text$icon" fi @@ -92,14 +93,18 @@ build_window_format() { } build_window_icon() { - local window_status_icon_enable=$(get_tmux_option "@catppuccin_window_status_icon_enable" "yes") - local custom_icon_window_last=$(get_tmux_option "@catppuccin_icon_window_last" "󰖰") - local custom_icon_window_current=$(get_tmux_option "@catppuccin_icon_window_current" "󰖯") - local custom_icon_window_zoom=$(get_tmux_option "@catppuccin_icon_window_zoom" "󰁌") - local custom_icon_window_mark=$(get_tmux_option "@catppuccin_icon_window_mark" "󰃀") - local custom_icon_window_silent=$(get_tmux_option "@catppuccin_icon_window_silent" "󰂛") - local custom_icon_window_activity=$(get_tmux_option "@catppuccin_icon_window_activity" "󱅫") - local custom_icon_window_bell=$(get_tmux_option "@catppuccin_icon_window_bell" "󰂞") + local window_status_icon_enable custom_icon_window_last \ + custom_icon_window_zoom custom_icon_window_mark custom_icon_window_mark \ + custom_icon_window_silent custom_icon_window_activity custom_icon_window_bell + + window_status_icon_enable=$(get_tmux_option "@catppuccin_window_status_icon_enable" "yes") + custom_icon_window_last=$(get_tmux_option "@catppuccin_icon_window_last" "󰖰") + custom_icon_window_current=$(get_tmux_option "@catppuccin_icon_window_current" "󰖯") + custom_icon_window_zoom=$(get_tmux_option "@catppuccin_icon_window_zoom" "󰁌") + custom_icon_window_mark=$(get_tmux_option "@catppuccin_icon_window_mark" "󰃀") + custom_icon_window_silent=$(get_tmux_option "@catppuccin_icon_window_silent" "󰂛") + custom_icon_window_activity=$(get_tmux_option "@catppuccin_icon_window_activity" "󱅫") + custom_icon_window_bell=$(get_tmux_option "@catppuccin_icon_window_bell" "󰂞") if [ "$window_status_icon_enable" = "yes" ]; then # #!~[*-]MZ diff --git a/catppuccin.tmux b/catppuccin.tmux index fefb5077..46686a5b 100755 --- a/catppuccin.tmux +++ b/catppuccin.tmux @@ -4,10 +4,15 @@ PLUGIN_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" # import +# shellcheck source=./builder/module_builder.sh source "${PLUGIN_DIR}/builder/module_builder.sh" +# shellcheck source=./builder/window_builder.sh source "${PLUGIN_DIR}/builder/window_builder.sh" +# shellcheck source=./builder/pane_builder.sh source "${PLUGIN_DIR}/builder/pane_builder.sh" +# shellcheck source=./utils/tmux_utils.sh source "${PLUGIN_DIR}/utils/tmux_utils.sh" +# shellcheck source=./utils/module_utils.sh source "${PLUGIN_DIR}/utils/module_utils.sh" main() { @@ -15,18 +20,20 @@ main() { local tmux_commands=() # module directories - local custom_path="$(get_tmux_option "@catppuccin_custom_plugin_dir" "${PLUGIN_DIR}/custom")" - local modules_custom_path=$custom_path - local modules_status_path=$PLUGIN_DIR/status - local modules_window_path=$PLUGIN_DIR/window - local modules_pane_path=$PLUGIN_DIR/pane + local custom_path modules_custom_path modules_status_path modules_window_path modules_pane_path + custom_path="$(get_tmux_option "@catppuccin_custom_plugin_dir" "${PLUGIN_DIR}/custom")" + modules_custom_path=$custom_path + modules_status_path=$PLUGIN_DIR/status + modules_window_path=$PLUGIN_DIR/window + modules_pane_path=$PLUGIN_DIR/pane # load local theme - local theme="$(get_tmux_option "@catppuccin_flavour" "mocha")" + local theme + theme="$(get_tmux_option "@catppuccin_flavour" "mocha")" # NOTE: Pulling in the selected theme by the theme that's being set as local # variables. - # shellcheck source=catppuccin-frappe.tmuxtheme # https://github.com/dylanaraps/pure-sh-bible#parsing-a-keyval-file + # shellcheck source=./catppuccin-frappe.tmuxtheme while IFS='=' read -r key val; do # Skip over lines containing comments. # (Lines starting with '#'). @@ -38,13 +45,15 @@ main() { done <"${PLUGIN_DIR}/catppuccin-${theme}.tmuxtheme" # status general - local status_default=$(get_tmux_option "@catppuccin_status_default" "on") + local status_default status_justify status_background + status_default=$(get_tmux_option "@catppuccin_status_default" "on") + # shellcheck disable=SC2121 set status "$status_default" - local status_justify=$(get_tmux_option "@catppuccin_status_justify" "left") + status_justify=$(get_tmux_option "@catppuccin_status_justify" "left") set status-justify "$status_justify" - local status_background=$(get_tmux_option "@catppuccin_status_background" "theme") + status_background=$(get_tmux_option "@catppuccin_status_background" "theme") if [ "${status_background}" = "theme" ]; then set status-bg "${thm_bg}" else @@ -63,18 +72,21 @@ main() { set message-command-style "fg=${thm_cyan},bg=${thm_gray},align=centre" # panes - local pane_status_enable=$(get_tmux_option "@catppuccin_pane_status_enabled" "no") # yes - local pane_border_status=$(get_tmux_option "@catppuccin_pane_border_status" "off") # bottom - local pane_border_style=$(get_tmux_option "@catppuccin_pane_border_style" "fg=${thm_gray}") - local pane_active_border_style=$( + local pane_border_status pane_border_style \ + pane_active_border_style pane_left_separator pane_middle_separator \ + pane_right_separator pane_number_position pane_format + pane_status_enable=$(get_tmux_option "@catppuccin_pane_status_enabled" "no") # yes + pane_border_status=$(get_tmux_option "@catppuccin_pane_border_status" "off") # bottom + pane_border_style=$(get_tmux_option "@catppuccin_pane_border_style" "fg=${thm_gray}") + pane_active_border_style=$( get_tmux_option "@catppuccin_pane_active_border_style" \ "#{?pane_in_mode,fg=${thm_yellow},#{?pane_synchronized,fg=${thm_magenta},fg=${thm_orange}}}" ) - local pane_left_separator=$(get_tmux_option "@catppuccin_pane_left_separator" "█") - local pane_middle_separator=$(get_tmux_option "@catppuccin_pane_middle_separator" "█") - local pane_right_separator=$(get_tmux_option "@catppuccin_pane_right_separator" "█") - local pane_number_position=$(get_tmux_option "@catppuccin_pane_number_position" "left") # right, left - local pane_format=$(load_modules "pane_default_format" "$modules_custom_path" "$modules_pane_path") + pane_left_separator=$(get_tmux_option "@catppuccin_pane_left_separator" "█") + pane_middle_separator=$(get_tmux_option "@catppuccin_pane_middle_separator" "█") + pane_right_separator=$(get_tmux_option "@catppuccin_pane_right_separator" "█") + pane_number_position=$(get_tmux_option "@catppuccin_pane_number_position" "left") # right, left + pane_format=$(load_modules "pane_default_format" "$modules_custom_path" "$modules_pane_path") setw pane-border-status "$pane_border_status" setw pane-active-border-style "$pane_active_border_style" @@ -82,34 +94,39 @@ main() { setw pane-border-format "$pane_format" # window - local window_status_separator=$(get_tmux_option "@catppuccin_window_separator" "") + local window_status_separator window_left_separator window_right_separator \ + window_middle_separator window_number_position window_status_enable \ + window_format window_current_format + + window_status_separator=$(get_tmux_option "@catppuccin_window_separator" "") setw window-status-separator "$window_status_separator" - local window_left_separator=$(get_tmux_option "@catppuccin_window_left_separator" "█") - local window_right_separator=$(get_tmux_option "@catppuccin_window_right_separator" "█") - local window_middle_separator=$(get_tmux_option "@catppuccin_window_middle_separator" "█ ") - local window_number_position=$(get_tmux_option "@catppuccin_window_number_position" "left") # right, left - local window_status_enable=$(get_tmux_option "@catppuccin_window_status_enable" "no") # right, left + window_left_separator=$(get_tmux_option "@catppuccin_window_left_separator" "█") + window_right_separator=$(get_tmux_option "@catppuccin_window_right_separator" "█") + window_middle_separator=$(get_tmux_option "@catppuccin_window_middle_separator" "█ ") + window_number_position=$(get_tmux_option "@catppuccin_window_number_position" "left") # right, left + window_status_enable=$(get_tmux_option "@catppuccin_window_status_enable" "no") # right, left - local window_format=$(load_modules "window_default_format" "$modules_custom_path" "$modules_window_path") + window_format=$(load_modules "window_default_format" "$modules_custom_path" "$modules_window_path") setw window-status-format "$window_format" - local window_current_format=$(load_modules "window_current_format" "$modules_custom_path" "$modules_window_path") + window_current_format=$(load_modules "window_current_format" "$modules_custom_path" "$modules_window_path") setw window-status-current-format "$window_current_format" # status module - local status_left_separator=$(get_tmux_option "@catppuccin_status_left_separator" "") - local status_right_separator=$(get_tmux_option "@catppuccin_status_right_separator" "█") - local status_right_separator_inverse=$(get_tmux_option "@catppuccin_status_right_separator_inverse" "no") - local status_connect_separator=$(get_tmux_option "@catppuccin_status_connect_separator" "yes") - local status_fill=$(get_tmux_option "@catppuccin_status_fill" "icon") - - local status_modules_left=$(get_tmux_option "@catppuccin_status_modules_left" "") - local loaded_modules_left=$(load_modules "$status_modules_left" "$modules_custom_path" "$modules_status_path") + local status_left_separator status_right_separator status_connect_separator \ + status_fill status_modules_left status_modules_right + status_left_separator=$(get_tmux_option "@catppuccin_status_left_separator" "") + status_right_separator=$(get_tmux_option "@catppuccin_status_right_separator" "█") + status_connect_separator=$(get_tmux_option "@catppuccin_status_connect_separator" "yes") + status_fill=$(get_tmux_option "@catppuccin_status_fill" "icon") + + status_modules_left=$(get_tmux_option "@catppuccin_status_modules_left" "") + loaded_modules_left=$(load_modules "$status_modules_left" "$modules_custom_path" "$modules_status_path") set status-left "$loaded_modules_left" - local status_modules_right=$(get_tmux_option "@catppuccin_status_modules_right" "application session") - local loaded_modules_right=$(load_modules "$status_modules_right" "$modules_custom_path" "$modules_status_path") + status_modules_right=$(get_tmux_option "@catppuccin_status_modules_right" "application session") + loaded_modules_right=$(load_modules "$status_modules_right" "$modules_custom_path" "$modules_status_path") set status-right "$loaded_modules_right" # modes diff --git a/pane/pane_default_format.sh b/pane/pane_default_format.sh index a3f177c9..53ef75bc 100644 --- a/pane/pane_default_format.sh +++ b/pane/pane_default_format.sh @@ -1,12 +1,13 @@ show_pane_default_format() { - local number="#{pane_index}" - local color="$(get_tmux_option "@catppuccin_pane_color" "$thm_green")" - local background="$(get_tmux_option "@catppuccin_pane_background_color" "$thm_gray")" - local text="$(get_tmux_option "@catppuccin_pane_default_text" "#{b:pane_current_path}")" - local fill="$(get_tmux_option "@catppuccin_pane_default_fill" "number")" # number, all, none - local active="#{pane_active}" + local number color background text fill - local default_pane_format=$( build_pane_format "$number" "$color" "$background" "$text" "$fill") + number="#{pane_index}" + color="$(get_tmux_option "@catppuccin_pane_color" "$thm_green")" + background="$(get_tmux_option "@catppuccin_pane_background_color" "$thm_gray")" + text="$(get_tmux_option "@catppuccin_pane_default_text" "#{b:pane_current_path}")" + fill="$(get_tmux_option "@catppuccin_pane_default_fill" "number")" # number, all, none + + default_pane_format=$(build_pane_format "$number" "$color" "$background" "$text" "$fill") echo "$default_pane_format" } diff --git a/status/application.sh b/status/application.sh index 56f2e767..331dee59 100644 --- a/status/application.sh +++ b/status/application.sh @@ -1,10 +1,12 @@ show_application() { - local index=$1 - local icon=$(get_tmux_option "@catppuccin_application_icon" "") - local color=$(get_tmux_option "@catppuccin_application_color" "$thm_pink") - local text=$(get_tmux_option "@catppuccin_application_text" "#W") + local index icon color text module - local module=$( build_status_module "$index" "$icon" "$color" "$text" ) + index=$1 + icon=$(get_tmux_option "@catppuccin_application_icon" "") + color=$(get_tmux_option "@catppuccin_application_color" "$thm_pink") + text=$(get_tmux_option "@catppuccin_application_text" "#W") + + module=$(build_status_module "$index" "$icon" "$color" "$text") echo "$module" } diff --git a/status/battery.sh b/status/battery.sh index 7ad978fa..bcd8a76f 100644 --- a/status/battery.sh +++ b/status/battery.sh @@ -1,4 +1,11 @@ show_battery() { + local index icon color text module + + index=$1 + icon=$(get_tmux_option "@catppuccin_battery_icon" "#{battery_icon}") + color=$(get_tmux_option "@catppuccin_battery_color" "$thm_yellow") + text=$(get_tmux_option "@catppuccin_battery_text" "#{battery_percentage}") + tmux set-option -g @batt_icon_charge_tier8 '󰁹' tmux set-option -g @batt_icon_charge_tier7 '󰂁' tmux set-option -g @batt_icon_charge_tier6 '󰁿' @@ -12,12 +19,7 @@ show_battery() { tmux set-option -g @batt_icon_status_discharging '󰂃' tmux set-option -g @batt_icon_status_unknown '󰂑' - local index=$1 - local icon=$(get_tmux_option "@catppuccin_battery_icon" "#{battery_icon}") - local color=$(get_tmux_option "@catppuccin_battery_color" "$thm_yellow") - local text=$(get_tmux_option "@catppuccin_battery_text" "#{battery_percentage}") - - local module=$( build_status_module "$index" "$icon" "$color" "$text" ) + module=$(build_status_module "$index" "$icon" "$color" "$text") echo "$module" } diff --git a/status/clima.sh b/status/clima.sh index 46851d4e..7e1801b3 100644 --- a/status/clima.sh +++ b/status/clima.sh @@ -1,11 +1,13 @@ # Requires https://github.com/vascomfnunes/tmux-clima show_clima() { - local index=$1 - local icon="$(get_tmux_option "@catppuccin_clima_icon" "")" - local color="$(get_tmux_option "@catppuccin_clima_color" "$thm_yellow")" - local text="$(get_tmux_option "@catppuccin_clima_text" "#{clima}")" + local index icon color text module - local module=$( build_status_module "$index" "$icon" "$color" "$text" ) + index=$1 + icon="$(get_tmux_option "@catppuccin_clima_icon" "")" + color="$(get_tmux_option "@catppuccin_clima_color" "$thm_yellow")" + text="$(get_tmux_option "@catppuccin_clima_text" "#{clima}")" + + module=$(build_status_module "$index" "$icon" "$color" "$text") echo "$module" } diff --git a/status/cpu.sh b/status/cpu.sh index 0d433597..fd129512 100644 --- a/status/cpu.sh +++ b/status/cpu.sh @@ -1,14 +1,16 @@ show_cpu() { - tmux set-option -g @cpu_low_bg_color "$thm_yellow" # background color when cpu is low + local index icon color text module + + index=$1 + icon=$(get_tmux_option "@catppuccin_cpu_icon" "") + color="$(get_tmux_option "@catppuccin_cpu_color" "#{cpu_bg_color}")" + text="$(get_tmux_option "@catppuccin_cpu_text" "#{cpu_percentage}")" + + tmux set-option -g @cpu_low_bg_color "$thm_yellow" # background color when cpu is low tmux set-option -g @cpu_medium_bg_color "$thm_orange" # background color when cpu is medium - tmux set-option -g @cpu_high_bg_color "$thm_red" # background color when cpu is high - - local index=$1 - local icon=$(get_tmux_option "@catppuccin_cpu_icon" "") - local color="$(get_tmux_option "@catppuccin_cpu_color" "#{cpu_bg_color}")" - local text="$(get_tmux_option "@catppuccin_cpu_text" "#{cpu_percentage}")" - - local module=$( build_status_module "$index" "$icon" "$color" "$text" ) + tmux set-option -g @cpu_high_bg_color "$thm_red" # background color when cpu is high + + module=$(build_status_module "$index" "$icon" "$color" "$text") echo "$module" } diff --git a/status/date_time.sh b/status/date_time.sh index 9f7030e5..04695b99 100644 --- a/status/date_time.sh +++ b/status/date_time.sh @@ -1,11 +1,12 @@ show_date_time() { - local index=$1 - local icon="$(get_tmux_option "@catppuccin_date_time_icon" "󰃰")" - local color="$(get_tmux_option "@catppuccin_date_time_color" "$thm_blue")" - local text="$(get_tmux_option "@catppuccin_date_time_text" "%Y-%m-%d %H:%M")" + local index icon color text module - local module=$( build_status_module "$index" "$icon" "$color" "$text" ) + index=$1 + icon="$(get_tmux_option "@catppuccin_date_time_icon" "󰃰")" + color="$(get_tmux_option "@catppuccin_date_time_color" "$thm_blue")" + text="$(get_tmux_option "@catppuccin_date_time_text" "%Y-%m-%d %H:%M")" + + module=$(build_status_module "$index" "$icon" "$color" "$text") echo "$module" } - diff --git a/status/directory.sh b/status/directory.sh index 1ff293d8..8982dbe3 100644 --- a/status/directory.sh +++ b/status/directory.sh @@ -1,10 +1,12 @@ show_directory() { - local index=$1 - local icon=$(get_tmux_option "@catppuccin_directory_icon" "") - local color=$(get_tmux_option "@catppuccin_directory_color" "$thm_pink") - local text=$(get_tmux_option "@catppuccin_directory_text" "#{b:pane_current_path}") + local index icon color text module - local module=$( build_status_module "$index" "$icon" "$color" "$text" ) + index=$1 + icon=$(get_tmux_option "@catppuccin_directory_icon" "") + color=$(get_tmux_option "@catppuccin_directory_color" "$thm_pink") + text=$(get_tmux_option "@catppuccin_directory_text" "#{b:pane_current_path}") + + module=$(build_status_module "$index" "$icon" "$color" "$text") echo "$module" } diff --git a/status/host.sh b/status/host.sh index 5abd71e9..8e4bd23d 100644 --- a/status/host.sh +++ b/status/host.sh @@ -1,10 +1,12 @@ show_host() { - local index=$1 - local icon=$(get_tmux_option "@catppuccin_host_icon" "󰒋") - local color=$(get_tmux_option "@catppuccin_host_color" "$thm_magenta") - local text=$(get_tmux_option "@catppuccin_host_text" "#H") + local index icon color text module - local module=$( build_status_module "$index" "$icon" "$color" "$text" ) + index=$1 + icon=$(get_tmux_option "@catppuccin_host_icon" "󰒋") + color=$(get_tmux_option "@catppuccin_host_color" "$thm_magenta") + text=$(get_tmux_option "@catppuccin_host_text" "#H") + + module=$(build_status_module "$index" "$icon" "$color" "$text") echo "$module" } diff --git a/status/load.sh b/status/load.sh index 942c7f35..58094237 100644 --- a/status/load.sh +++ b/status/load.sh @@ -1,11 +1,12 @@ show_load() { - local index=$1 - local icon="$(get_tmux_option "@catppuccin_load_icon" "󰊚")" - local color="$(get_tmux_option "@catppuccin_load_color" "$thm_blue")" - local text="$(get_tmux_option "@catppuccin_load_text" "#{load_full}")" + local index icon color text module - local module=$( build_status_module "$index" "$icon" "$color" "$text" ) + index=$1 + icon="$(get_tmux_option "@catppuccin_load_icon" "󰊚")" + color="$(get_tmux_option "@catppuccin_load_color" "$thm_blue")" + text="$(get_tmux_option "@catppuccin_load_text" "#{load_full}")" + + module=$(build_status_module "$index" "$icon" "$color" "$text") echo "$module" } - diff --git a/status/session.sh b/status/session.sh index 58d6c900..6e79cfba 100644 --- a/status/session.sh +++ b/status/session.sh @@ -1,10 +1,12 @@ show_session() { - local index=$1 - local icon=$(get_tmux_option "@catppuccin_session_icon" "") - local color=$(get_tmux_option "@catppuccin_session_color" "#{?client_prefix,$thm_red,$thm_green}") - local text=$(get_tmux_option "@catppuccin_session_text" "#S") + local index icon color text module - local module=$( build_status_module "$index" "$icon" "$color" "$text" ) + index=$1 + icon=$(get_tmux_option "@catppuccin_session_icon" "") + color=$(get_tmux_option "@catppuccin_session_color" "#{?client_prefix,$thm_red,$thm_green}") + text=$(get_tmux_option "@catppuccin_session_text" "#S") + + module=$(build_status_module "$index" "$icon" "$color" "$text") echo "$module" } diff --git a/status/uptime.sh b/status/uptime.sh index 7b59173e..c112abf0 100644 --- a/status/uptime.sh +++ b/status/uptime.sh @@ -1,10 +1,12 @@ show_uptime() { - local index=$1 - local icon="$(get_tmux_option "@catppuccin_uptime_icon" "󰔟")" - local color="$(get_tmux_option "@catppuccin_uptime_color" "$thm_green")" - local text="$(get_tmux_option "@catppuccin_uptime_text" "#(uptime | sed 's/^[^,]*up *//; s/, *[[:digit:]]* users.*//; s/ day.*, */d /; s/:/h /; s/ min//; s/$/m/')")" + local index icon color text module - local module=$(build_status_module "$index" "$icon" "$color" "$text") + index=$1 + icon="$(get_tmux_option "@catppuccin_uptime_icon" "󰔟")" + color="$(get_tmux_option "@catppuccin_uptime_color" "$thm_green")" + text="$(get_tmux_option "@catppuccin_uptime_text" "#(uptime | sed 's/^[^,]*up *//; s/, *[[:digit:]]* users.*//; s/ day.*, */d /; s/:/h /; s/ min//; s/$/m/')")" + + module=$(build_status_module "$index" "$icon" "$color" "$text") echo "$module" } diff --git a/status/user.sh b/status/user.sh index 1d4d03e9..ea88e75a 100644 --- a/status/user.sh +++ b/status/user.sh @@ -1,10 +1,12 @@ show_user() { - local index=$1 - local icon=$(get_tmux_option "@catppuccin_user_icon" "") - local color=$(get_tmux_option "@catppuccin_user_color" "$thm_cyan") - local text=$(get_tmux_option "@catppuccin_user_text" "#(whoami)") + local index icon color text module - local module=$( build_status_module "$index" "$icon" "$color" "$text" ) + index=$1 + icon=$(get_tmux_option "@catppuccin_user_icon" "") + color=$(get_tmux_option "@catppuccin_user_color" "$thm_cyan") + text=$(get_tmux_option "@catppuccin_user_text" "#(whoami)") + + module=$(build_status_module "$index" "$icon" "$color" "$text") echo "$module" } diff --git a/status/weather.sh b/status/weather.sh index 943ac303..b6cb6fed 100644 --- a/status/weather.sh +++ b/status/weather.sh @@ -1,11 +1,14 @@ # Requires https://github.com/xamut/tmux-weather. + show_weather() { - local index=$1 - local icon="$(get_tmux_option "@catppuccin_weather_icon" "")" - local color="$(get_tmux_option "@catppuccin_weather_color" "$thm_yellow")" - local text="$(get_tmux_option "@catppuccin_weather_text" "#{weather}")" + local index icon color text module + + index=$1 + icon="$(get_tmux_option "@catppuccin_weather_icon" "")" + color="$(get_tmux_option "@catppuccin_weather_color" "$thm_yellow")" + text="$(get_tmux_option "@catppuccin_weather_text" "#{weather}")" - local module=$( build_status_module "$index" "$icon" "$color" "$text" ) + module=$(build_status_module "$index" "$icon" "$color" "$text") echo "$module" } diff --git a/utils/module_utils.sh b/utils/module_utils.sh index 58dcef43..96cbd876 100644 --- a/utils/module_utils.sh +++ b/utils/module_utils.sh @@ -16,7 +16,7 @@ load_modules() { # extract the substring from start of string up to delimiter. iter=${IN%% *} # delete this first "element" AND next separator, from $IN. - IN="${IN#$iter }" + IN="${IN#"$iter "}" # Print (or doing anything with) the first "element". module_name=$iter @@ -25,6 +25,7 @@ load_modules() { module_path="$module_dir/$module_name.sh" if [ -r "$module_path" ]; then + # shellcheck source=/dev/null source "$module_path" loaded_modules="$loaded_modules$( "show_$module_name" "$module_index" )" module_index+=1 diff --git a/window/window_current_format.sh b/window/window_current_format.sh index 46b4a182..0a17bcf2 100644 --- a/window/window_current_format.sh +++ b/window/window_current_format.sh @@ -1,11 +1,13 @@ show_window_current_format() { - local number="#I" - local color=$(get_tmux_option "@catppuccin_window_current_color" "$thm_orange") - local background=$(get_tmux_option "@catppuccin_window_current_background" "$thm_bg") - local text="$(get_tmux_option "@catppuccin_window_current_text" "#{b:pane_current_path}")" # use #W for application instead of directory - local fill="$(get_tmux_option "@catppuccin_window_current_fill" "number")" # number, all, none + local number color background text fill current_window_format - local current_window_format=$( build_window_format "$number" "$color" "$background" "$text" "$fill" ) + number="#I" + color=$(get_tmux_option "@catppuccin_window_current_color" "$thm_orange") + background=$(get_tmux_option "@catppuccin_window_current_background" "$thm_bg") + text="$(get_tmux_option "@catppuccin_window_current_text" "#{b:pane_current_path}")" # use #W for application instead of directory + fill="$(get_tmux_option "@catppuccin_window_current_fill" "number")" # number, all, none + + current_window_format=$(build_window_format "$number" "$color" "$background" "$text" "$fill") echo "$current_window_format" } diff --git a/window/window_default_format.sh b/window/window_default_format.sh index 5afcfe67..2c758baa 100644 --- a/window/window_default_format.sh +++ b/window/window_default_format.sh @@ -1,11 +1,13 @@ show_window_default_format() { - local number="#I" - local color=$(get_tmux_option "@catppuccin_window_default_color" "$thm_blue") - local background=$(get_tmux_option "@catppuccin_window_default_background" "$thm_gray") - local text="$(get_tmux_option "@catppuccin_window_default_text" "#{b:pane_current_path}")" # use #W for application instead of directory - local fill="$(get_tmux_option "@catppuccin_window_default_fill" "number")" # number, all, none + local number color background text fill default_window_format - local default_window_format=$( build_window_format "$number" "$color" "$background" "$text" "$fill" ) + number="#I" + color=$(get_tmux_option "@catppuccin_window_default_color" "$thm_blue") + background=$(get_tmux_option "@catppuccin_window_default_background" "$thm_gray") + text="$(get_tmux_option "@catppuccin_window_default_text" "#{b:pane_current_path}")" # use #W for application instead of directory + fill="$(get_tmux_option "@catppuccin_window_default_fill" "number")" # number, all, none + + default_window_format=$(build_window_format "$number" "$color" "$background" "$text" "$fill") echo "$default_window_format" } From 5ed4e8a6a20c928688da268dfcdf460ac9c3cb49 Mon Sep 17 00:00:00 2001 From: vdbe <44153531+vdbe@users.noreply.github.com> Date: Sat, 30 Mar 2024 22:11:39 +0100 Subject: [PATCH 24/49] fixup! Cleanup shellcheck warnings (#178) (#179) Dont remove checking for `catppuccin.tmux` --- .github/workflows/shellcheck.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/shellcheck.yml b/.github/workflows/shellcheck.yml index d01b2bef..159df997 100644 --- a/.github/workflows/shellcheck.yml +++ b/.github/workflows/shellcheck.yml @@ -26,5 +26,7 @@ jobs: - uses: actions/checkout@v4 - name: Run ShellCheck uses: ludeeus/action-shellcheck@master + with: + additional_files: "catppuccin.tmux" env: SHELLCHECK_OPTS: "-a" From b26eb2fa6d2dd524ceaf68a4751c1d1285d809df Mon Sep 17 00:00:00 2001 From: chacon <63523896+Chacon-tu-drema@users.noreply.github.com> Date: Wed, 17 Apr 2024 11:52:10 +0100 Subject: [PATCH 25/49] Adding git to status (#191) * added git.sh file * added instrucctions to README.md * instruccions typo corrections * Customize git module and instrucctions * Correction for Shellcheck / Shellcheck (pull_request) test. added escape caracters \ in n git.sh script * Rename the module to gitmux * README.md corrections * README.md typo corrections --- README.md | 20 ++++++++++++++++++++ status/gitmux.sh | 14 ++++++++++++++ 2 files changed, 34 insertions(+) create mode 100644 status/gitmux.sh diff --git a/README.md b/README.md index 860ebba9..2944b4c8 100644 --- a/README.md +++ b/README.md @@ -451,6 +451,26 @@ Add the load module to the status modules list. set -g @catppuccin_status_modules_right "... load ..." ``` +### Gitmux module + +#### Requirements +This module depends on [gitmux](https://github.com/arl/gitmux). + +#### Install +To install gitmux, follow the instructions in the [gitmux documentation](https://github.com/arl/gitmux/blob/main/README.md#installing). + +#### Configure +Add the gitmux module to the status modules list. +```sh +set -g @catppuccin_status_modules_right "... gitmux ..." +``` + +To customize the gitmux module, you can follow the instrucctions in the [gitmux documentation](https://github.com/arl/gitmux/blob/main/README.md#customizing) and add this line in your tmux configuration: +```sh +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. diff --git a/status/gitmux.sh b/status/gitmux.sh new file mode 100644 index 00000000..9186bc28 --- /dev/null +++ b/status/gitmux.sh @@ -0,0 +1,14 @@ +# Requires https://github.com/arl/gitmux + +show_gitmux() { + local index icon color text module + + index=$1 + icon="$(get_tmux_option "@catppuccin_gitmux_icon" "󰊢")" + color="$(get_tmux_option "@catppuccin_gitmux_color" "$thm_green")" + text="$(get_tmux_option "@catppuccin_gitmux_text" "#(gitmux \"#{pane_current_path}\")")" + + module=$( build_status_module "$index" "$icon" "$color" "$text" ) + + echo "$module" +} From 69d37dfbb0b28c68f0b446272ce490bc75b67f7b Mon Sep 17 00:00:00 2001 From: lluchkaa <37471864+lluchkaa@users.noreply.github.com> Date: Sat, 20 Apr 2024 11:43:59 +0300 Subject: [PATCH 26/49] Respect `status_background` in `message-style` (#193) * respect status background in message style * move message_background to existing block --- catppuccin.tmux | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/catppuccin.tmux b/catppuccin.tmux index 46686a5b..a2b6621a 100755 --- a/catppuccin.tmux +++ b/catppuccin.tmux @@ -45,7 +45,7 @@ main() { done <"${PLUGIN_DIR}/catppuccin-${theme}.tmuxtheme" # status general - local status_default status_justify status_background + local status_default status_justify status_background message_background status_default=$(get_tmux_option "@catppuccin_status_default" "on") # shellcheck disable=SC2121 set status "$status_default" @@ -56,11 +56,14 @@ main() { status_background=$(get_tmux_option "@catppuccin_status_background" "theme") if [ "${status_background}" = "theme" ]; then set status-bg "${thm_bg}" + message_background="${thm_gray}" else if [ "${status_background}" = "default" ]; then set status-style bg=default + message_background="default" else set status-bg "${status_background}" + message_background="${status_background}" fi fi @@ -68,8 +71,8 @@ main() { set status-right-length "100" # messages - set message-style "fg=${thm_cyan},bg=${thm_gray},align=centre" - set message-command-style "fg=${thm_cyan},bg=${thm_gray},align=centre" + set message-style "fg=${thm_cyan},bg=${message_background},align=centre" + set message-command-style "fg=${thm_cyan},bg=${message_background},align=centre" # panes local pane_border_status pane_border_style \ From 67e8f231fd10557b736623ee9af1c220c45f9290 Mon Sep 17 00:00:00 2001 From: Hammy <58985301+sgoudham@users.noreply.github.com> Date: Sun, 21 Apr 2024 09:26:01 +0100 Subject: [PATCH 27/49] docs: add issue templates (#195) * docs: add issue templates * refactor: mention show and tell --- .github/ISSUE_TEMPLATE/bug.yml | 39 ++++++++++++++++++++++++++ .github/ISSUE_TEMPLATE/config.yml | 11 ++++++++ .github/ISSUE_TEMPLATE/enhancement.yml | 18 ++++++++++++ .github/ISSUE_TEMPLATE/meta.yml | 18 ++++++++++++ 4 files changed, 86 insertions(+) create mode 100644 .github/ISSUE_TEMPLATE/bug.yml create mode 100644 .github/ISSUE_TEMPLATE/config.yml create mode 100644 .github/ISSUE_TEMPLATE/enhancement.yml create mode 100644 .github/ISSUE_TEMPLATE/meta.yml diff --git a/.github/ISSUE_TEMPLATE/bug.yml b/.github/ISSUE_TEMPLATE/bug.yml new file mode 100644 index 00000000..b7407ca3 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug.yml @@ -0,0 +1,39 @@ +name: Bug Report +description: Report your bugs with the theme here! +labels: [bug] +body: + - type: checkboxes + attributes: + label: Is there an existing issue outlining your problem? + description: Please search to see if an issue already exists for your problem. + options: + - label: I have searched the existing issues and they do not solve my problem. + required: true + - type: textarea + attributes: + label: Describe your problem. + description: Also tell us, what do you expect to see? + placeholder: The battery charging icon is missing... + validations: + required: true + - type: textarea + attributes: + label: Paste your configuration. + description: Provide us with the contents of your `.tmux.conf` file. + validations: + required: true + - type: textarea + attributes: + label: Attach screenshots. + description: If applicable, attach screenshots which clearly highlight the issue. + - type: input + attributes: + label: What tmux version are you seeing the issue on? + description: "You can find your version by running `tmux -V`" + placeholder: tmux 3.3a + validations: + required: true + - type: textarea + attributes: + label: Any additional comments? + description: Add any information that hasn't been covered in the previous sections! diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 00000000..5235434b --- /dev/null +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1,11 @@ +blank_issues_enabled: false +contact_links: + - name: Ask A Question + url: https://github.com/catppuccin/tmux/discussions/new?category=q-a + about: Need help tweaking your Catppuccin tmux configuration? Ask questions in GitHub Discussions! + - name: Show & Tell + url: https://github.com/catppuccin/tmux/discussions/new?category=show-and-tell + about: Want to showcase your customised Catppuccin tmux configuration? Show it off in GitHub Discussions! + - name: Community Discord + url: https://discord.com/servers/catppuccin-907385605422448742 + about: Chat to other community members! diff --git a/.github/ISSUE_TEMPLATE/enhancement.yml b/.github/ISSUE_TEMPLATE/enhancement.yml new file mode 100644 index 00000000..1e2b0538 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/enhancement.yml @@ -0,0 +1,18 @@ +name: Enhancement Issue +description: Request improvements to the theme here! +labels: [enhancement] +body: + - type: checkboxes + attributes: + label: Is there an existing issue outlining your improvement? + description: Please search to see if your improvement has already been raised as an issue. + options: + - label: I have searched the existing issues and my improvement has not been raised yet. + required: true + - type: textarea + attributes: + label: What would you like to see added and/or changed? + description: Make sure to mention why you think this is an improvement! + placeholder: I'd like to have an extra configuration option for... + validations: + required: true diff --git a/.github/ISSUE_TEMPLATE/meta.yml b/.github/ISSUE_TEMPLATE/meta.yml new file mode 100644 index 00000000..f471d4a5 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/meta.yml @@ -0,0 +1,18 @@ +name: Meta Issue +description: Raise any issue regarding the repository here! +labels: [meta] +body: + - type: checkboxes + attributes: + label: Is there an existing issue outlining your problem? + description: Please search to see if an issue already exists for your problem. + options: + - label: I have searched the existing issues and they do not solve my problem. + required: true + - type: textarea + attributes: + label: Describe your issue. + description: Bugs should be raised under a [Bug Report](https://github.com/catppuccin/tmux/issues/new?assignees=&labels=bug&template=bug.yml). + placeholder: The README is missing crucial information such as... + validations: + required: true From a556353d60833367b13739e660d4057a96f2f4fe Mon Sep 17 00:00:00 2001 From: Hammy <58985301+sgoudham@users.noreply.github.com> Date: Sun, 21 Apr 2024 12:38:55 +0100 Subject: [PATCH 28/49] chore(issue-templates): fix `show & tell` discussion link (#196) --- .github/ISSUE_TEMPLATE/config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml index 5235434b..0e1b5905 100644 --- a/.github/ISSUE_TEMPLATE/config.yml +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -4,7 +4,7 @@ contact_links: url: https://github.com/catppuccin/tmux/discussions/new?category=q-a about: Need help tweaking your Catppuccin tmux configuration? Ask questions in GitHub Discussions! - name: Show & Tell - url: https://github.com/catppuccin/tmux/discussions/new?category=show-and-tell + url: https://github.com/catppuccin/tmux/discussions/new?category=show-tell about: Want to showcase your customised Catppuccin tmux configuration? Show it off in GitHub Discussions! - name: Community Discord url: https://discord.com/servers/catppuccin-907385605422448742 From a10163042b5d70bc54f4b8e8ead5687d8fbaab71 Mon Sep 17 00:00:00 2001 From: Zoket Date: Tue, 30 Apr 2024 02:41:57 +0800 Subject: [PATCH 29/49] fix(status): support tmux-battery attached status icon (#201) --- status/battery.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/status/battery.sh b/status/battery.sh index bcd8a76f..5a2d8f0b 100644 --- a/status/battery.sh +++ b/status/battery.sh @@ -18,6 +18,7 @@ show_battery() { tmux set-option -g @batt_icon_status_charging '󰂄' tmux set-option -g @batt_icon_status_discharging '󰂃' tmux set-option -g @batt_icon_status_unknown '󰂑' + tmux set-option -g @batt_icon_status_attached "󱈑" module=$(build_status_module "$index" "$icon" "$color" "$text") From c0e072cb8b6e509622f82d3ce402f211a6c96798 Mon Sep 17 00:00:00 2001 From: vdbe <44153531+vdbe@users.noreply.github.com> Date: Fri, 10 May 2024 12:47:23 +0000 Subject: [PATCH 30/49] fix(window_builder): number position left (#205) Middle separator color was inverted when number position left --- builder/window_builder.sh | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/builder/window_builder.sh b/builder/window_builder.sh index 186b169c..cf42f0ea 100644 --- a/builder/window_builder.sh +++ b/builder/window_builder.sh @@ -48,11 +48,12 @@ build_window_format() { fi if [ "$fill" = "number" ]; then + local show_middle_separator local show_number="#[fg=$background,bg=$color]$number" - local show_middle_separator="#[fg=$color,bg=$background,nobold,nounderscore,noitalics]$window_middle_separator" local show_text="#[fg=$thm_fg,bg=$background]$text" if [ "$window_number_position" = "right" ]; then + show_middle_separator="#[fg=$color,bg=$background,nobold,nounderscore,noitalics]$window_middle_separator" if [ "$status_connect_separator" = "yes" ]; then local show_left_separator="#[fg=$background,bg=$thm_bg,nobold,nounderscore,noitalics]$window_left_separator" local show_right_separator="#[fg=$color,bg=$thm_bg]$window_right_separator" @@ -65,6 +66,8 @@ build_window_format() { fi if [ "$window_number_position" = "left" ]; then + show_middle_separator="#[fg=$background,bg=$color,nobold,nounderscore,noitalics]$window_middle_separator" + if [ "$status_connect_separator" = "yes" ]; then local show_right_separator="#[fg=$background,bg=$thm_bg,nobold,nounderscore,noitalics]$window_right_separator" local show_left_separator="#[fg=$color,bg=$thm_bg]$window_left_separator" From 75ffbfea017d083de701621429cb0e628aab6fc1 Mon Sep 17 00:00:00 2001 From: vdbe <44153531+vdbe@users.noreply.github.com> Date: Fri, 10 May 2024 12:48:39 +0000 Subject: [PATCH 31/49] fix(pane_builder): use default background instead of `thm_bg` (#204) fix #180 --- builder/pane_builder.sh | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/builder/pane_builder.sh b/builder/pane_builder.sh index 1cc57598..fa97805a 100644 --- a/builder/pane_builder.sh +++ b/builder/pane_builder.sh @@ -11,20 +11,20 @@ build_pane_format() { then if [ "$fill" = "none" ] then - local show_left_separator="#[fg=$thm_gray,bg=$thm_bg,nobold,nounderscore,noitalics]$pane_left_separator" + local show_left_separator="#[fg=$thm_gray,bg=default,nobold,nounderscore,noitalics]$pane_left_separator" local show_number="#[fg=$thm_fg,bg=$thm_gray]$number" local show_middle_separator="#[fg=$thm_fg,bg=$thm_gray,nobold,nounderscore,noitalics]$pane_middle_separator" local show_text="#[fg=$thm_fg,bg=$thm_gray]$text" - local show_right_separator="#[fg=$thm_gray,bg=$thm_bg]$pane_right_separator" + local show_right_separator="#[fg=$thm_gray,bg=default]$pane_right_separator" fi if [ "$fill" = "all" ] then - local show_left_separator="#[fg=$color,bg=$thm_bg,nobold,nounderscore,noitalics]$pane_left_separator" + local show_left_separator="#[fg=$color,bg=default,nobold,nounderscore,noitalics]$pane_left_separator" local show_number="#[fg=$background,bg=$color]$number" local show_middle_separator="#[fg=$background,bg=$color,nobold,nounderscore,noitalics]$pane_middle_separator" local show_text="#[fg=$background,bg=$color]$text" - local show_right_separator="#[fg=$color,bg=$thm_bg]$pane_right_separator" + local show_right_separator="#[fg=$color,bg=default]$pane_right_separator" fi if [ "$fill" = "number" ] @@ -35,14 +35,14 @@ build_pane_format() { if [ "$pane_number_position" = "right" ] then - local show_left_separator="#[fg=$background,bg=$thm_bg,nobold,nounderscore,noitalics]$pane_left_separator" - local show_right_separator="#[fg=$color,bg=$thm_bg]$pane_right_separator" + local show_left_separator="#[fg=$background,bg=default,nobold,nounderscore,noitalics]$pane_left_separator" + local show_right_separator="#[fg=$color,bg=default]$pane_right_separator" fi if [ "$pane_number_position" = "left" ] then - local show_right_separator="#[fg=$background,bg=$thm_bg,nobold,nounderscore,noitalics]$pane_right_separator" - local show_left_separator="#[fg=$color,bg=$thm_bg]$pane_left_separator" + local show_right_separator="#[fg=$background,bg=default,nobold,nounderscore,noitalics]$pane_right_separator" + local show_left_separator="#[fg=$color,bg=default]$pane_left_separator" fi fi From 804f060fe1cb77388fec159ee303aa9f9c94ddff Mon Sep 17 00:00:00 2001 From: vdbe <44153531+vdbe@users.noreply.github.com> Date: Sat, 11 May 2024 10:01:16 +0000 Subject: [PATCH 32/49] Revert "fix(window_builder): number position left (#205)" (#209) This reverts commit c0e072cb8b6e509622f82d3ce402f211a6c96798. --- builder/window_builder.sh | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/builder/window_builder.sh b/builder/window_builder.sh index cf42f0ea..186b169c 100644 --- a/builder/window_builder.sh +++ b/builder/window_builder.sh @@ -48,12 +48,11 @@ build_window_format() { fi if [ "$fill" = "number" ]; then - local show_middle_separator local show_number="#[fg=$background,bg=$color]$number" + local show_middle_separator="#[fg=$color,bg=$background,nobold,nounderscore,noitalics]$window_middle_separator" local show_text="#[fg=$thm_fg,bg=$background]$text" if [ "$window_number_position" = "right" ]; then - show_middle_separator="#[fg=$color,bg=$background,nobold,nounderscore,noitalics]$window_middle_separator" if [ "$status_connect_separator" = "yes" ]; then local show_left_separator="#[fg=$background,bg=$thm_bg,nobold,nounderscore,noitalics]$window_left_separator" local show_right_separator="#[fg=$color,bg=$thm_bg]$window_right_separator" @@ -66,8 +65,6 @@ build_window_format() { fi if [ "$window_number_position" = "left" ]; then - show_middle_separator="#[fg=$background,bg=$color,nobold,nounderscore,noitalics]$window_middle_separator" - if [ "$status_connect_separator" = "yes" ]; then local show_right_separator="#[fg=$background,bg=$thm_bg,nobold,nounderscore,noitalics]$window_right_separator" local show_left_separator="#[fg=$color,bg=$thm_bg]$window_left_separator" From 2292669be300155652e6f8ef6d0312eb100c34d4 Mon Sep 17 00:00:00 2001 From: vdbe <44153531+vdbe@users.noreply.github.com> Date: Sat, 11 May 2024 15:26:41 +0000 Subject: [PATCH 33/49] refactor(theme): use whiskers (#207) --- catppuccin.tmux | 2 +- .../catppuccin_frappe.tmuxtheme | 0 .../catppuccin_latte.tmuxtheme | 10 +++---- .../catppuccin_macchiato.tmuxtheme | 0 .../catppuccin_mocha.tmuxtheme | 0 tmux.tera | 26 +++++++++++++++++++ 6 files changed, 32 insertions(+), 6 deletions(-) rename catppuccin-frappe.tmuxtheme => themes/catppuccin_frappe.tmuxtheme (100%) rename catppuccin-latte.tmuxtheme => themes/catppuccin_latte.tmuxtheme (77%) rename catppuccin-macchiato.tmuxtheme => themes/catppuccin_macchiato.tmuxtheme (100%) rename catppuccin-mocha.tmuxtheme => themes/catppuccin_mocha.tmuxtheme (100%) create mode 100644 tmux.tera diff --git a/catppuccin.tmux b/catppuccin.tmux index a2b6621a..5d86c327 100755 --- a/catppuccin.tmux +++ b/catppuccin.tmux @@ -42,7 +42,7 @@ main() { # '$key' stores the key. # '$val' stores the value. eval "local $key"="$val" - done <"${PLUGIN_DIR}/catppuccin-${theme}.tmuxtheme" + done <"${PLUGIN_DIR}/themes/catppuccin_${theme}.tmuxtheme" # status general local status_default status_justify status_background message_background diff --git a/catppuccin-frappe.tmuxtheme b/themes/catppuccin_frappe.tmuxtheme similarity index 100% rename from catppuccin-frappe.tmuxtheme rename to themes/catppuccin_frappe.tmuxtheme diff --git a/catppuccin-latte.tmuxtheme b/themes/catppuccin_latte.tmuxtheme similarity index 77% rename from catppuccin-latte.tmuxtheme rename to themes/catppuccin_latte.tmuxtheme index 16f078f9..af31a8dc 100644 --- a/catppuccin-latte.tmuxtheme +++ b/themes/catppuccin_latte.tmuxtheme @@ -2,13 +2,13 @@ # WARNING: hex colors can't contain capital letters # --> Catppuccin (Latte) -thm_bg="#dce0e8" +thm_bg="#eff1f5" thm_fg="#4c4f69" -thm_cyan="#179299" +thm_cyan="#04a5e5" thm_black="#e6e9ef" -thm_gray="#bcc0cc" -thm_magenta="#ea76cb" -thm_pink="#8839ef" +thm_gray="#ccd0da" +thm_magenta="#8839ef" +thm_pink="#ea76cb" thm_red="#d20f39" thm_green="#40a02b" thm_yellow="#df8e1d" diff --git a/catppuccin-macchiato.tmuxtheme b/themes/catppuccin_macchiato.tmuxtheme similarity index 100% rename from catppuccin-macchiato.tmuxtheme rename to themes/catppuccin_macchiato.tmuxtheme diff --git a/catppuccin-mocha.tmuxtheme b/themes/catppuccin_mocha.tmuxtheme similarity index 100% rename from catppuccin-mocha.tmuxtheme rename to themes/catppuccin_mocha.tmuxtheme diff --git a/tmux.tera b/tmux.tera new file mode 100644 index 00000000..da095ed7 --- /dev/null +++ b/tmux.tera @@ -0,0 +1,26 @@ +--- +whiskers: + version: "2.1.0" + matrix: + - flavor + filename: "themes/catppuccin_{{flavor.identifier}}.tmuxtheme" +--- +{%- set palette = flavor.colors -%} +# NOTE: you can use vars with $ and ${} as long as the str is double quoted: "" +# WARNING: hex colors can't contain capital letters + +# --> Catppuccin ({{ flavor.identifier | capitalize }}) +thm_bg="#{{ palette.base.hex | lower }}" +thm_fg="#{{ palette.text.hex | lower }}" +thm_cyan="#{{ palette.sky.hex| lower }}" +thm_black="#{{ palette.mantle.hex | lower }}" +thm_gray="#{{ palette.surface0.hex | lower }}" +thm_magenta="#{{ palette.mauve.hex | lower }}" +thm_pink="#{{ palette.pink.hex | lower }}" +thm_red="#{{ palette.red.hex | lower }}" +thm_green="#{{ palette.green.hex | lower }}" +thm_yellow="#{{ palette.yellow.hex | lower }}" +thm_blue="#{{ palette.blue.hex | lower }}" +thm_orange="#{{ palette.peach.hex | lower }}" +thm_black4="#{{ palette.surface2.hex | lower }}" +{% raw %}{% endraw %}{# Needs to end with a newline #} From 6ba7a729250734545e7dbf48f26919d1e832f568 Mon Sep 17 00:00:00 2001 From: vdbe <44153531+vdbe@users.noreply.github.com> Date: Sat, 11 May 2024 16:23:05 +0000 Subject: [PATCH 34/49] Feat: interpolate colors (#208) * feat: interpolate theme colors * doc: add interpolated colors to readme --- README.md | 10 +++++----- catppuccin.tmux | 29 +++++++++++++++++++---------- utils/interpolate_utils.sh | 11 +++++++++++ utils/tmux_utils.sh | 21 +++++++++++++++++++++ 4 files changed, 56 insertions(+), 15 deletions(-) create mode 100644 utils/interpolate_utils.sh diff --git a/README.md b/README.md index 2944b4c8..e8d1f262 100644 --- a/README.md +++ b/README.md @@ -163,7 +163,7 @@ set -g @catppuccin_window_default_background "color" ``` Values: -- color - a hexadecimal color value +- color - a theme color (`#{thm_}`) or hexadecimal color value #### Override the window default text: ```sh @@ -188,7 +188,7 @@ set -g @catppuccin_window_current_background "color" ``` Values: -- color - a hexadecimal color value +- color - a theme color (`#{thm_}`) or a hexadecimal color value #### Override the window current text: ```sh @@ -212,13 +212,13 @@ Use this to override the way the directory is displayed. #### Set the pane border style: ```sh -set -g @catppuccin_pane_border_style "fg=blue" # Use a value compatible with the standard tmux 'pane-border-style' +set -g @catppuccin_pane_border_style "fg=#{thm_blue}" # Use a value compatible with the standard tmux 'pane-border-style' ``` #### Set the pane active border style: ```sh -set -g @catppuccin_pane_active_border_style "fg=red" # Use a value compatible with the standard tmux 'pane-border-active-style' +set -g @catppuccin_pane_active_border_style "fg=#{thm_red}" # Use a value compatible with the standard tmux 'pane-border-active-style' ``` @@ -236,7 +236,7 @@ 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 +- use hex color codes for other colors or a theme color (`#{theme_}`) Note: you need to restart tmux for this to take effect: ```sh diff --git a/catppuccin.tmux b/catppuccin.tmux index 5d86c327..4cc7ca79 100755 --- a/catppuccin.tmux +++ b/catppuccin.tmux @@ -12,6 +12,8 @@ source "${PLUGIN_DIR}/builder/window_builder.sh" source "${PLUGIN_DIR}/builder/pane_builder.sh" # shellcheck source=./utils/tmux_utils.sh source "${PLUGIN_DIR}/utils/tmux_utils.sh" +# shellcheck source=./utils/interpolate_utils.sh +source "${PLUGIN_DIR}/utils/interpolate_utils.sh" # shellcheck source=./utils/module_utils.sh source "${PLUGIN_DIR}/utils/module_utils.sh" @@ -29,6 +31,8 @@ main() { # load local theme local theme + local color_interpolation=() + local color_values=() theme="$(get_tmux_option "@catppuccin_flavour" "mocha")" # NOTE: Pulling in the selected theme by the theme that's being set as local # variables. @@ -42,6 +46,9 @@ main() { # '$key' stores the key. # '$val' stores the value. eval "local $key"="$val" + + color_interpolation+=("\#{$key}") + color_values+=("${val:1:-1}") done <"${PLUGIN_DIR}/themes/catppuccin_${theme}.tmuxtheme" # status general @@ -62,8 +69,8 @@ main() { set status-style bg=default message_background="default" else - set status-bg "${status_background}" - message_background="${status_background}" + message_background="$(do_color_interpolation)" + set status-bg "${message_background}" fi fi @@ -80,9 +87,11 @@ main() { pane_right_separator pane_number_position pane_format pane_status_enable=$(get_tmux_option "@catppuccin_pane_status_enabled" "no") # yes pane_border_status=$(get_tmux_option "@catppuccin_pane_border_status" "off") # bottom - pane_border_style=$(get_tmux_option "@catppuccin_pane_border_style" "fg=${thm_gray}") + pane_border_style=$( + get_interpolated_tmux_option "@catppuccin_pane_border_style" "fg=${thm_gray}" + ) pane_active_border_style=$( - get_tmux_option "@catppuccin_pane_active_border_style" \ + get_interpolated_tmux_option "@catppuccin_pane_active_border_style" \ "#{?pane_in_mode,fg=${thm_yellow},#{?pane_synchronized,fg=${thm_magenta},fg=${thm_orange}}}" ) pane_left_separator=$(get_tmux_option "@catppuccin_pane_left_separator" "█") @@ -94,14 +103,14 @@ main() { setw pane-border-status "$pane_border_status" setw pane-active-border-style "$pane_active_border_style" setw pane-border-style "$pane_border_style" - setw pane-border-format "$pane_format" + setw pane-border-format "$(do_color_interpolation "$pane_format")" # window local window_status_separator window_left_separator window_right_separator \ window_middle_separator window_number_position window_status_enable \ window_format window_current_format - window_status_separator=$(get_tmux_option "@catppuccin_window_separator" "") + window_status_separator=$(get_interpolated_tmux_option "@catppuccin_window_separator" "") setw window-status-separator "$window_status_separator" window_left_separator=$(get_tmux_option "@catppuccin_window_left_separator" "█") @@ -111,10 +120,10 @@ main() { window_status_enable=$(get_tmux_option "@catppuccin_window_status_enable" "no") # right, left window_format=$(load_modules "window_default_format" "$modules_custom_path" "$modules_window_path") - setw window-status-format "$window_format" + setw window-status-format "$(do_color_interpolation "$window_format")" window_current_format=$(load_modules "window_current_format" "$modules_custom_path" "$modules_window_path") - setw window-status-current-format "$window_current_format" + setw window-status-current-format "$(do_color_interpolation "$window_current_format")" # status module local status_left_separator status_right_separator status_connect_separator \ @@ -126,11 +135,11 @@ main() { status_modules_left=$(get_tmux_option "@catppuccin_status_modules_left" "") loaded_modules_left=$(load_modules "$status_modules_left" "$modules_custom_path" "$modules_status_path") - set status-left "$loaded_modules_left" + set status-left "$(do_color_interpolation "$loaded_modules_left")" status_modules_right=$(get_tmux_option "@catppuccin_status_modules_right" "application session") loaded_modules_right=$(load_modules "$status_modules_right" "$modules_custom_path" "$modules_status_path") - set status-right "$loaded_modules_right" + set status-right "$(do_color_interpolation "$loaded_modules_right")" # modes setw clock-mode-colour "${thm_blue}" diff --git a/utils/interpolate_utils.sh b/utils/interpolate_utils.sh new file mode 100644 index 00000000..54d24891 --- /dev/null +++ b/utils/interpolate_utils.sh @@ -0,0 +1,11 @@ +#!/bin/sh + +do_color_interpolation() { + local all_interpolated="$1" + + for ((i=0; i<${#color_interpolation[@]}; i++)); do + all_interpolated=${all_interpolated//${color_interpolation[$i]}/${color_values[$i]}} + done + + echo "$all_interpolated" +} diff --git a/utils/tmux_utils.sh b/utils/tmux_utils.sh index 10711d15..703afad6 100644 --- a/utils/tmux_utils.sh +++ b/utils/tmux_utils.sh @@ -22,6 +22,27 @@ get_tmux_option() { fi } +get_interpolated_tmux_option() { + local option value default + option="$1" + default="$2" + value=$(tmux show-option -gqv "$option") + + if [ -n "$value" ] + then + if [ "$value" = "null" ] + then + echo "" + + else + do_color_interpolation "$value" + fi + + else + echo "$default" + fi +} + set() { local option=$1 local value=$2 From 4a561f9f0841b782ac58cda26fef6d3ddbd5b6d2 Mon Sep 17 00:00:00 2001 From: vdbe <44153531+vdbe@users.noreply.github.com> Date: Sat, 11 May 2024 16:35:46 +0000 Subject: [PATCH 35/49] fixup! Feat: interpolate colors (#208) (#210) add missing argument --- catppuccin.tmux | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/catppuccin.tmux b/catppuccin.tmux index 4cc7ca79..f1f67436 100755 --- a/catppuccin.tmux +++ b/catppuccin.tmux @@ -69,7 +69,7 @@ main() { set status-style bg=default message_background="default" else - message_background="$(do_color_interpolation)" + message_background="$(do_color_interpolation "$status_background")" set status-bg "${message_background}" fi fi From c0564122384d85403f5064038282b87a325c1a5e Mon Sep 17 00:00:00 2001 From: vdbe <44153531+vdbe@users.noreply.github.com> Date: Sun, 12 May 2024 07:22:55 +0000 Subject: [PATCH 36/49] fixup! Feat: interpolate colors (#208) (#214) macos bash version (3.2.57) does not support the `"${val:1:-1}"` syntax --- catppuccin.tmux | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/catppuccin.tmux b/catppuccin.tmux index f1f67436..351009c9 100755 --- a/catppuccin.tmux +++ b/catppuccin.tmux @@ -33,6 +33,7 @@ main() { local theme local color_interpolation=() local color_values=() + local temp theme="$(get_tmux_option "@catppuccin_flavour" "mocha")" # NOTE: Pulling in the selected theme by the theme that's being set as local # variables. @@ -47,8 +48,11 @@ main() { # '$val' stores the value. eval "local $key"="$val" + # TODO: Find a better way to strip the quotes from `$val` + temp="${val%\"}" + temp="${temp#\"}" color_interpolation+=("\#{$key}") - color_values+=("${val:1:-1}") + color_values+=("${temp}") done <"${PLUGIN_DIR}/themes/catppuccin_${theme}.tmuxtheme" # status general From 697087f593dae0163e01becf483b192894e69e33 Mon Sep 17 00:00:00 2001 From: vdbe <44153531+vdbe@users.noreply.github.com> Date: Sun, 12 May 2024 16:34:44 +0000 Subject: [PATCH 37/49] Fix/test old bash (#216) * test(old-bash): use tmux instead of mocking it * quote output --- .github/scripts/test.bash | 2 +- .github/workflows/test.yml | 10 ++++------ 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/.github/scripts/test.bash b/.github/scripts/test.bash index d1df7e50..bfe9c325 100755 --- a/.github/scripts/test.bash +++ b/.github/scripts/test.bash @@ -59,7 +59,7 @@ main() { exit 1 else echo "Running plugin: $plugin" >&2 - output=$(tmux run-shell "$plugin" 2>&1) + output="$(tmux run-shell "$plugin" 2>&1)" exit_code="$?" check "$exit_code" "$output" diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 7b85e577..2365de79 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -38,16 +38,14 @@ jobs: name: "Old Bash" runs-on: ubuntu-latest container: - image: bash:3.2.57 # Bash version used by macos + image: bash:3.2.57-alpine3.19 # Bash version used by macos steps: - uses: actions/checkout@v4 - name: Check Syntax is Valid shell: bash run: | - # No tmux available in this container - tmp="$(mktemp -d)" - touch "$tmp/tmux" - chmod +x "$tmp/tmux" - export PATH="$tmp:$PATH" + apk update + apk add tmux bash --version + tmux -V ./.github/scripts/test.bash ./catppuccin.tmux From 4ca26b774bc2e945fce4ccb909245dffeea7a9bf Mon Sep 17 00:00:00 2001 From: vdbe <44153531+vdbe@users.noreply.github.com> Date: Sat, 18 May 2024 17:47:12 +0000 Subject: [PATCH 38/49] docs/cleanup (#219) * doc(README): use default values as example * doc(README): remove unused options * doc(README): remove dead link * doc(README): fix theme links --- README.md | 74 ++++++++++++++++++++++--------------------------------- 1 file changed, 30 insertions(+), 44 deletions(-) diff --git a/README.md b/README.md index e8d1f262..02eb8fa9 100644 --- a/README.md +++ b/README.md @@ -31,7 +31,6 @@ 1. [CPU module](#CPU-module) 1. [Weather modules](#weather-modules) 1. [Load module](#load-module) - 1. [Uptime module](#uptime-module) 1. [Create a custom module](#create-a-custom-module) 1. [Configuration Examples](#configuration-examples) 1. [Config 1](#config-1) @@ -40,10 +39,10 @@ ## Themes -- 🌻 [Latte](./catppuccin-latte.tmuxtheme) -- 🪴 [Frappé](./catppuccin-frappe.tmuxtheme) -- 🌺 [Macchiato](./catppuccin-macchiato.tmuxtheme) -- 🌿 [Mocha](./catppuccin-mocha.tmuxtheme) +- 🌻 [Latte](./themes/catppuccin_latte.tmuxtheme) +- 🪴 [Frappé](./themes/catppuccin_frappe.tmuxtheme) +- 🌺 [Macchiato](./themes/catppuccin_macchiato.tmuxtheme) +- 🌿 [Mocha](./themes/catppuccin_mocha.tmuxtheme) ## Installation @@ -64,7 +63,7 @@ set -g @plugin 'tmux-plugins/tpm' 3. (Optional) Set your preferred flavor, it defaults to `"mocha"`: ```bash -set -g @catppuccin_flavour 'latte' # or frappe, macchiato, mocha +set -g @catppuccin_flavour 'mocha' # latte,frappe, macchiato or mocha ``` ### Manual @@ -120,7 +119,7 @@ Values: #### Enable window status: ```sh -set -g @catppuccin_window_status_enable "yes" +set -g @catppuccin_window_status_enable "no" ``` Values: - yes - this will enable the window status part @@ -136,13 +135,13 @@ Values: #### Override windows status icons ```sh -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 "󰂞 " +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 @@ -158,8 +157,8 @@ Values: #### Override the window default colors: ```sh -set -g @catppuccin_window_default_color "color" # text color -set -g @catppuccin_window_default_background "color" +set -g @catppuccin_window_default_color "#{thm_blue}" # text color +set -g @catppuccin_window_default_background "#{thm_gray}" ``` Values: @@ -183,8 +182,8 @@ Values: #### Override the window current colors: ```sh -set -g @catppuccin_window_current_color "color" # text color -set -g @catppuccin_window_current_background "color" +set -g @catppuccin_window_current_color "#{thm_orange}" # text color +set -g @catppuccin_window_current_background "#{thm_bg}" ``` Values: @@ -195,37 +194,25 @@ Values: set -g @catppuccin_window_current_text "#{b:pane_current_path}" # use "#W" for application instead of directory ``` -#### Set the current directory format -```sh -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 -```sh -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: ```sh -set -g @catppuccin_pane_border_style "fg=#{thm_blue}" # Use a value compatible with the standard tmux 'pane-border-style' +set -g @catppuccin_pane_border_style "fg=#{thm_gray}" # Use a value compatible with the standard tmux 'pane-border-style' ``` #### Set the pane active border style: ```sh -set -g @catppuccin_pane_active_border_style "fg=#{thm_red}" # Use a value compatible with the standard tmux 'pane-border-active-style' +set -g @catppuccin_pane_active_border_style "fg=#{thm_orange}" # Use a value compatible with the standard tmux 'pane-border-active-style' ``` ### Status #### Set the default status bar visibility ```sh -set -g @catppuccin_status_default "off" # defaults to "on" +set -g @catppuccin_status_default "on" ``` @@ -236,7 +223,7 @@ 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 or a theme color (`#{theme_}`) +- use hex color codes for other colors or a theme color (`#{thm_}`) Note: you need to restart tmux for this to take effect: ```sh @@ -283,19 +270,18 @@ Values: ### Pane ```sh -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_status_enabled "no" +set -g @catppuccin_pane_border_status "off" # See `pane-border-status` +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 -g @catppuccin_pane_border_style "fg=#{thm_orange}" +set -g @catppuccin_pane_active_border_style "fg=#{thm_orange}" +set -g @catppuccin_pane_color "#{thm_orange}" +set -g @catppuccin_pane_background_color "#{thm_orange}" ``` #### Set the module list From 9da7bb5e2e4caf57c1845f79b33e6f410dfdc548 Mon Sep 17 00:00:00 2001 From: vdbe <44153531+vdbe@users.noreply.github.com> Date: Thu, 23 May 2024 17:39:08 +0000 Subject: [PATCH 39/49] build: bump whiskers to 2.1.1 (#222) whiskers 2.1.1 no longer eats trailing newlines --- tmux.tera | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/tmux.tera b/tmux.tera index da095ed7..7435b798 100644 --- a/tmux.tera +++ b/tmux.tera @@ -1,6 +1,6 @@ --- whiskers: - version: "2.1.0" + version: "2.1.1" matrix: - flavor filename: "themes/catppuccin_{{flavor.identifier}}.tmuxtheme" @@ -23,4 +23,3 @@ thm_yellow="#{{ palette.yellow.hex | lower }}" thm_blue="#{{ palette.blue.hex | lower }}" thm_orange="#{{ palette.peach.hex | lower }}" thm_black4="#{{ palette.surface2.hex | lower }}" -{% raw %}{% endraw %}{# Needs to end with a newline #} From e7cd05facc22c18fbab3f718d8ecd6494538fe38 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 9 Jun 2024 21:52:21 +0100 Subject: [PATCH 40/49] chore: Configure Renovate (#231) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- renovate.json | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 renovate.json diff --git a/renovate.json b/renovate.json new file mode 100644 index 00000000..a2220005 --- /dev/null +++ b/renovate.json @@ -0,0 +1,6 @@ +{ + "$schema": "https://docs.renovatebot.com/renovate-schema.json", + "extends": [ + "local>catppuccin/renovate-config" + ] +} From 893917360d667645908753b982edd1624dc57cd6 Mon Sep 17 00:00:00 2001 From: Daniel Nocito Date: Tue, 2 Jul 2024 12:13:24 -0300 Subject: [PATCH 41/49] Add support to tmux-pomodoro-plus plugin in status bar (#241) * Add support to tmux-pomodoro-plus plugin in status bar * Update README.md with setup information for the pomodoro module --- README.md | 21 +++++++++++++++++++++ status/pomodoro_plus.sh | 14 ++++++++++++++ 2 files changed, 35 insertions(+) create mode 100644 status/pomodoro_plus.sh diff --git a/README.md b/README.md index 02eb8fa9..32280640 100644 --- a/README.md +++ b/README.md @@ -456,6 +456,27 @@ To customize the gitmux module, you can follow the instrucctions in the [gitmux set -g @catppuccin_gitmux_text "#(gitmux -cfg $HOME/.gitmux.conf \"#{pane_current_path}\")" ``` +### Pomodoro module + +#### Requirements +This module depends on [tmux-pomodoro-plus](https://github.com/olimorris/tmux-pomodoro-plus/tree/main). + +#### Install +The preferred way to install tmux-pomodoro-plus is using [TPM](https://github.com/tmux-plugins/tpm). + +#### Configure +Load tmux-pomodoro-plus after you load catppuccin. +```sh +set -g @plugin 'catppuccin/tmux' +... +set -g @plugin 'olimorris/tmux-pomodoro-plus' +``` + +Add the pomodoro module to the status modules list. +```sh +set -g @catppuccin_status_modules_right "... pomodoro_plus ..." +``` + ## Create a custom module diff --git a/status/pomodoro_plus.sh b/status/pomodoro_plus.sh new file mode 100644 index 00000000..a9da2649 --- /dev/null +++ b/status/pomodoro_plus.sh @@ -0,0 +1,14 @@ +# Requires https://github.com/olimorris/tmux-pomodoro-plus + +show_pomodoro_plus() { + local index icon color text module + + index=$1 + icon="$( get_tmux_option "@catppuccin__icon" "" )" + color="$( get_tmux_option "@catppuccin__color" "$thm_orange" )" + text="$( get_tmux_option "@catppuccin__text" "#{pomodoro_status}" )" + + module=$( build_status_module "$index" "$icon" "$color" "$text" ) + + echo "$module" +} From ff6dacb12f3291abe116bd63430a2b5842a1e65c Mon Sep 17 00:00:00 2001 From: vdbe <44153531+vdbe@users.noreply.github.com> Date: Fri, 12 Jul 2024 07:04:07 +0000 Subject: [PATCH 42/49] feat: warning when trying to load a missing module (#244) print/echo a warning when a `catppuccin_status_modules_right/left` is trying to load a none existing module. This does only work when reloading (`tmux source ~/.tmux.conf` / `tmux source ~/.config/tmux/tmux.conf`) --- utils/module_utils.sh | 5 ++++- utils/tmux_utils.sh | 5 +++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/utils/module_utils.sh b/utils/module_utils.sh index 96cbd876..e9d77f9b 100644 --- a/utils/module_utils.sh +++ b/utils/module_utils.sh @@ -29,9 +29,12 @@ load_modules() { source "$module_path" loaded_modules="$loaded_modules$( "show_$module_name" "$module_index" )" module_index+=1 - break + continue 2 fi done + tmux_echo "catppuccin warning: module $module_name not found" + + done echo "$loaded_modules" diff --git a/utils/tmux_utils.sh b/utils/tmux_utils.sh index 703afad6..27da09a7 100644 --- a/utils/tmux_utils.sh +++ b/utils/tmux_utils.sh @@ -1,5 +1,10 @@ #!/bin/sh +tmux_echo() { + local message="$1" + tmux run-shell "echo '$message'" +} + get_tmux_option() { local option value default option="$1" From 33c4fd62df96b39cec2b2c08bc341c88d9392761 Mon Sep 17 00:00:00 2001 From: Kilian Mio <86004375+Mikilio@users.noreply.github.com> Date: Fri, 12 Jul 2024 18:33:14 +0200 Subject: [PATCH 43/49] fix: better default for application.sh (#246) --- status/application.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/status/application.sh b/status/application.sh index 331dee59..fa2bbbc0 100644 --- a/status/application.sh +++ b/status/application.sh @@ -4,7 +4,7 @@ show_application() { index=$1 icon=$(get_tmux_option "@catppuccin_application_icon" "") color=$(get_tmux_option "@catppuccin_application_color" "$thm_pink") - text=$(get_tmux_option "@catppuccin_application_text" "#W") + text=$(get_tmux_option "@catppuccin_application_text" "#{pane_current_command}") module=$(build_status_module "$index" "$icon" "$color" "$text") From 49972658aaa7c7b3b2f446a59442f3013ec92f61 Mon Sep 17 00:00:00 2001 From: Chet Luther Date: Mon, 15 Jul 2024 11:04:49 -0400 Subject: [PATCH 44/49] feat(menu): add menu style options (#247) add menu style options to allow `#{thm_x}` styling of menus. - @catppuccin_menu_style (`menu-style`) - @catppuccin_menu_selected_style (`menu-selected-style`) - @catppuccin_menu_border_style (`menu-border-style`) --- README.md | 19 +++++++++++++++++++ catppuccin.tmux | 9 +++++++++ 2 files changed, 28 insertions(+) diff --git a/README.md b/README.md index 32280640..ccc0ce21 100644 --- a/README.md +++ b/README.md @@ -208,6 +208,25 @@ set -g @catppuccin_pane_border_style "fg=#{thm_gray}" # Use a value compatible w set -g @catppuccin_pane_active_border_style "fg=#{thm_orange}" # Use a value compatible with the standard tmux 'pane-border-active-style' ``` +### Menu + +#### Set the menu style: + +```sh +set -g @catppuccin_menu_style "default" # Use a value compatible with the standard tmux `menu-style` +``` + +#### Set the menu selected style: + +```sh +set -g @catppuccin_menu_selected_style "fg=#{thm_gray},bg=#{thm_yellow}" # Use a value compatible with the standard tmux `menu-selected-style` +``` + +### Set the menu border style: + +```sh +set -g @catppuccin_menu_border_style "default" # Use a value compatible with the standard tmux `menu-border-style` +``` ### Status #### Set the default status bar visibility diff --git a/catppuccin.tmux b/catppuccin.tmux index 351009c9..5771b8e9 100755 --- a/catppuccin.tmux +++ b/catppuccin.tmux @@ -85,6 +85,15 @@ main() { set message-style "fg=${thm_cyan},bg=${message_background},align=centre" set message-command-style "fg=${thm_cyan},bg=${message_background},align=centre" + # menu + local menu_style menu_selected_style menu_border_style + menu_style=$(get_interpolated_tmux_option "@catppuccin_menu_style" "default") + menu_selected_style=$(get_interpolated_tmux_option "@catppuccin_menu_selected_style" "fg=${thm_gray},bg=${thm_yellow}") + menu_border_style=$(get_interpolated_tmux_option "@catppuccin_menu_border_style" "default") + set menu-style "$menu_style" + set menu-selected-style "$menu_selected_style" + set menu-border-style "$menu_border_style" + # panes local pane_border_status pane_border_style \ pane_active_border_style pane_left_separator pane_middle_separator \ From 598e9e9193b1a9bca856ccc9aab86395a562ac46 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Iv=C3=A1n=20Arjona=20Alonso?= Date: Mon, 15 Jul 2024 17:07:52 +0200 Subject: [PATCH 45/49] Add support to kube-tmux in status bar (#249) * Add support to kube-tmux in status bar --------- Co-authored-by: vdbe <44153531+vdbe@users.noreply.github.com> --- README.md | 27 +++++++++++++++++++++++++++ status/kube.sh | 17 +++++++++++++++++ 2 files changed, 44 insertions(+) create mode 100644 status/kube.sh diff --git a/README.md b/README.md index ccc0ce21..54ef1120 100644 --- a/README.md +++ b/README.md @@ -497,6 +497,33 @@ set -g @catppuccin_status_modules_right "... pomodoro_plus ..." ``` +### Kube module + +#### Requirements +This module depends on [kube-tmux](https://github.com/jonmosco/kube-tmux). + +#### Install +The preferred way to install kube-tmux is using [TPM](https://github.com/tmux-plugins/tpm). + +#### Configure +```sh +set -g @plugin 'catppuccin/tmux' +... +set -g @plugin 'jonmosco/kube-tmux' +``` + +Add the tmux module to the status modules list. +```sh +set -g @catppuccin_status_modules_right "... kube ..." +``` + +Optionally override the kube-tmux colors +```sh +set -g @catppuccin_kube_context_color "#{thm_red}" +set -g @catppuccin_kube_namespace_color "#{thm_cyan}" +``` + + ## Create a custom module It is possible to add a new custom module or overwrite any of the existing modules. diff --git a/status/kube.sh b/status/kube.sh new file mode 100644 index 00000000..4e3083c2 --- /dev/null +++ b/status/kube.sh @@ -0,0 +1,17 @@ +# Requires https://github.com/jonmosco/kube-tmux + +show_kube() { + local index icon color text context_color namespace_color symbol_enabled module + + index=$1 + icon=$(get_tmux_option "@catppuccin_kube_icon" "󱃾") + color=$(get_tmux_option "@catppuccin_kube_color" "$thm_blue") + context_color=$(get_tmux_option "@catppuccin_kube_context_color" "#{thm_red}") + namespace_color=$(get_tmux_option "@catppuccin_kube_namespace_color" "#{thm_cyan}") + symbol_enabled=${KUBE_TMUX_SYMBOL_ENABLE:-false} + text=$(get_tmux_option "@catppuccin_kube_text" "#(KUBE_TMUX_SYMBOL_ENABLE=$symbol_enabled ${TMUX_PLUGIN_MANAGER_PATH}kube-tmux/kube.tmux 250 '$context_color' '$namespace_color')") + + module=$( build_status_module "$index" "$icon" "$color" "$text" ) + + echo "$module" +} From 735363e7a02b347e5c48977faae7e308b51ec9c5 Mon Sep 17 00:00:00 2001 From: vdbe <44153531+vdbe@users.noreply.github.com> Date: Mon, 15 Jul 2024 22:35:02 +0000 Subject: [PATCH 46/49] fix: status module trailing space transparancy (#250) --- builder/module_builder.sh | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/builder/module_builder.sh b/builder/module_builder.sh index cfb9097c..ff1408f4 100644 --- a/builder/module_builder.sh +++ b/builder/module_builder.sh @@ -7,18 +7,18 @@ build_status_module() { local text="$4" if [ "$status_fill" = "icon" ]; then + local bg local show_icon="#[fg=$thm_bg,bg=$color,nobold,nounderscore,noitalics]$icon " - local show_text="#[fg=$thm_fg,bg=$thm_gray] $text" if [ "$status_connect_separator" = "yes" ]; then - local show_left_separator="#[fg=$color,bg=$thm_gray,nobold,nounderscore,noitalics]$status_left_separator" - local show_right_separator="#[fg=$thm_gray,bg=$thm_gray,nobold,nounderscore,noitalics]$status_right_separator" - + bg="$thm_gray" else - local show_left_separator="#[fg=$color,bg=default,nobold,nounderscore,noitalics]$status_left_separator" - local show_right_separator="#[fg=$thm_gray,bg=default,nobold,nounderscore,noitalics]$status_right_separator" + bg="default" fi + local show_text="#[fg=$thm_fg,bg=$bg] $text" + local show_left_separator="#[fg=$color,bg=$bg,nobold,nounderscore,noitalics]$status_left_separator" + local show_right_separator="#[fg=$thm_gray,bg=$bg,nobold,nounderscore,noitalics]$status_right_separator" fi if [ "$status_fill" = "all" ]; then From 39dea782062083a48dea8cecf3d71dbd0f12a004 Mon Sep 17 00:00:00 2001 From: vdbe <44153531+vdbe@users.noreply.github.com> Date: Wed, 17 Jul 2024 19:20:44 +0000 Subject: [PATCH 47/49] fixup! fix: status module trailing space transparancy (#250) (#253) don't change `show_text` --- builder/module_builder.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/builder/module_builder.sh b/builder/module_builder.sh index ff1408f4..ad9e46c9 100644 --- a/builder/module_builder.sh +++ b/builder/module_builder.sh @@ -9,6 +9,7 @@ build_status_module() { if [ "$status_fill" = "icon" ]; then local bg local show_icon="#[fg=$thm_bg,bg=$color,nobold,nounderscore,noitalics]$icon " + local show_text="#[fg=$thm_fg,bg=$thm_gray] $text" if [ "$status_connect_separator" = "yes" ]; then bg="$thm_gray" @@ -16,7 +17,6 @@ build_status_module() { bg="default" fi - local show_text="#[fg=$thm_fg,bg=$bg] $text" local show_left_separator="#[fg=$color,bg=$bg,nobold,nounderscore,noitalics]$status_left_separator" local show_right_separator="#[fg=$thm_gray,bg=$bg,nobold,nounderscore,noitalics]$status_right_separator" fi From 004467850b44983c7b033cf5e41c0db75d03742b Mon Sep 17 00:00:00 2001 From: given Date: Thu, 18 Jul 2024 09:25:51 -0400 Subject: [PATCH 48/49] Update docs to explain color/background swap (#251) --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 54ef1120..53757597 100644 --- a/README.md +++ b/README.md @@ -185,6 +185,7 @@ Values: set -g @catppuccin_window_current_color "#{thm_orange}" # text color set -g @catppuccin_window_current_background "#{thm_bg}" ``` +Note that color and background fields are swapped when `@catppuccin_window_current_fill` is set to "all". Values: - color - a theme color (`#{thm_}`) or a hexadecimal color value From 408c02ccf44d0a59a7a63ce2b65c5c29982c5c0e Mon Sep 17 00:00:00 2001 From: Bryan Hoang Date: Fri, 19 Jul 2024 05:50:21 -0400 Subject: [PATCH 49/49] fix(uptime): filter out singular "user" string in sed expression (#255) Previously, on machines where the logged-in user count is 1, the `sed` expression to filter out "... X users, ..." doesn't filter out "... X user, ...", leading to something like ``` 1h 05, 1 user, load average: 0.05, 0.72, 1.62m ``` being displayed in the module. When the user count is greater than 1 (e.g., after `ssh localhost`), the `uptime` module displays ``` 1h 05m ``` as expected. The Stack Overflow answer the `sed` expression is based on [^1][^2] doesn't seem to consider the case when the user count is 1. With this patch, the `uptime` module display correctly when the user count is 1. [^1]: https://stackoverflow.com/a/28353785 [^2]: https://github.com/catppuccin/tmux/pull/163 --- status/uptime.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/status/uptime.sh b/status/uptime.sh index c112abf0..10999de3 100644 --- a/status/uptime.sh +++ b/status/uptime.sh @@ -4,7 +4,7 @@ show_uptime() { index=$1 icon="$(get_tmux_option "@catppuccin_uptime_icon" "󰔟")" color="$(get_tmux_option "@catppuccin_uptime_color" "$thm_green")" - text="$(get_tmux_option "@catppuccin_uptime_text" "#(uptime | sed 's/^[^,]*up *//; s/, *[[:digit:]]* users.*//; s/ day.*, */d /; s/:/h /; s/ min//; s/$/m/')")" + text="$(get_tmux_option "@catppuccin_uptime_text" "#(uptime | sed 's/^[^,]*up *//; s/, *[[:digit:]]* user.*//; s/ day.*, */d /; s/:/h /; s/ min//; s/$/m/')")" module=$(build_status_module "$index" "$icon" "$color" "$text")