From 8bb5b30eefa405ac9e57e880a9812c9ea74cfc71 Mon Sep 17 00:00:00 2001 From: Sardorbek Imomaliev Date: Sat, 28 Nov 2020 13:33:25 +0700 Subject: [PATCH 1/2] use set-prefix on per sesion basis --- prefix_highlight.tmux | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/prefix_highlight.tmux b/prefix_highlight.tmux index f214afc..ae8db71 100755 --- a/prefix_highlight.tmux +++ b/prefix_highlight.tmux @@ -22,7 +22,7 @@ empty_attr_config='@prefix_highlight_empty_attr' empty_has_affixes='@prefix_highlight_empty_has_affixes' tmux_option() { - local -r value=$(tmux show-option -gqv "$1") + local -r value=$(tmux show-option -Aqv "$1") local -r default="$2" if [ -n "$value" ]; then @@ -95,10 +95,10 @@ main() { local -r highlight="#{?client_prefix,$prefix_mode,$fallback}#[default]" local -r status_left_value="$(tmux_option "status-left")" - tmux set-option -gq "status-left" "${status_left_value/$place_holder/$highlight}" + tmux set-option -sq "status-left" "${status_left_value/$place_holder/$highlight}" local -r status_right_value="$(tmux_option "status-right")" - tmux set-option -gq "status-right" "${status_right_value/$place_holder/$highlight}" + tmux set-option -sq "status-right" "${status_right_value/$place_holder/$highlight}" } main From 7a7bbefcfcdb8fb673707a9e1ea7f7ed9ac02218 Mon Sep 17 00:00:00 2001 From: Sardorbek Imomaliev Date: Sun, 14 Mar 2021 23:43:58 +0700 Subject: [PATCH 2/2] allow setting option scope --- README.md | 10 ++++++++++ prefix_highlight.tmux | 16 ++++++++++++---- 2 files changed, 22 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 37dec79..a1c883a 100644 --- a/README.md +++ b/README.md @@ -116,6 +116,16 @@ set -g @prefix_highlight_output_prefix '< ' set -g @prefix_highlight_output_suffix ' >' ``` +#### Change option scope (default g - global) + +Follows same rules as `set-option` + +**Special case**: To set scope to session use `'-'`, because by default session scope used when no param is provided. + +```tmux.conf +set -g @prefix_highlight_option_scope '-' +``` + ### License [MIT](LICENSE) diff --git a/prefix_highlight.tmux b/prefix_highlight.tmux index ae8db71..5f5fceb 100755 --- a/prefix_highlight.tmux +++ b/prefix_highlight.tmux @@ -6,6 +6,7 @@ set -e place_holder="\#{prefix_highlight}" # Possible configurations +option_scope_config='@prefix_highlight_option_scope' fg_color_config='@prefix_highlight_fg' bg_color_config='@prefix_highlight_bg' output_prefix='@prefix_highlight_output_prefix' @@ -36,6 +37,14 @@ format_style() { echo "#[${1}]" | sed -e 's/,/]#[/g' } +interpolate() { + local -r option=$1 + local -r replacement=$2 + local -r option_scope=${3#-} + local -r option_value=$(tmux_option "$option") + tmux set-option -"$option_scope"q "$option" "${option_value/$place_holder/$replacement}" +} + # Defaults default_fg='colour231' default_bg='colour04' @@ -49,6 +58,7 @@ default_empty_prompt='' main() { local -r \ + option_scope=$(tmux_option "$option_scope_config" "g") \ fg_color=$(tmux_option "$fg_color_config" "$default_fg") \ bg_color=$(tmux_option "$bg_color_config" "$default_bg") \ show_copy_mode=$(tmux_option "$show_copy_config" "off") \ @@ -94,11 +104,9 @@ main() { local -r highlight="#{?client_prefix,$prefix_mode,$fallback}#[default]" - local -r status_left_value="$(tmux_option "status-left")" - tmux set-option -sq "status-left" "${status_left_value/$place_holder/$highlight}" + interpolate "status-left" "$highlight" "$option_scope" - local -r status_right_value="$(tmux_option "status-right")" - tmux set-option -sq "status-right" "${status_right_value/$place_holder/$highlight}" + interpolate "status-right" "$highlight" "$option_scope" } main