Merge pull request #15 from tmux-plugins/continuum_status

#{continuum_status} status line interpolation
This commit is contained in:
Bruno Sutic 2015-12-26 23:51:55 +01:00
commit 15649e9d07
6 changed files with 64 additions and 0 deletions

View File

@ -9,6 +9,7 @@
checking if other tmux server is running). Previously, this caused checking if other tmux server is running). Previously, this caused
interpolation command not to be inserted into `status-right` because `tmux interpolation command not to be inserted into `status-right` because `tmux
source-file` was falsely detected as another tmux server. source-file` was falsely detected as another tmux server.
- add `#{continuum_status}` status line interpolation
### v3.0.0, 2015-02-20 ### v3.0.0, 2015-02-20
- rename the plugin from `tmux-resurrect-auto` to `tmux-continuum` - rename the plugin from `tmux-resurrect-auto` to `tmux-continuum`

View File

@ -78,6 +78,7 @@ required.
this doc is safe to skip, but you might want to read it if you're using tmux this doc is safe to skip, but you might want to read it if you're using tmux
with `-L` or `-S` flags with `-L` or `-S` flags
- [automatically start tmux after the computer is turned on](docs/automatic_start.md) - [automatically start tmux after the computer is turned on](docs/automatic_start.md)
- [continuum status in tmux status line](docs/continuum_status.md)
### Other goodies ### Other goodies

View File

@ -56,6 +56,14 @@ start_auto_restore_in_background() {
"$CURRENT_DIR/scripts/continuum_restore.sh" & "$CURRENT_DIR/scripts/continuum_restore.sh" &
} }
update_tmux_option() {
local option="$1"
local option_value="$(get_tmux_option "$option")"
# replace interpolation string with a script to execute
local new_option_value="${option_value/$status_interpolation_string/$status_script}"
set_tmux_option "$option" "$new_option_value"
}
main() { main() {
if supported_tmux_version_ok; then if supported_tmux_version_ok; then
handle_tmux_automatic_start handle_tmux_automatic_start
@ -72,6 +80,11 @@ main() {
if just_started_tmux_server; then if just_started_tmux_server; then
start_auto_restore_in_background start_auto_restore_in_background
fi fi
# Put "#{continuum_status}" interpolation in status-right or
# status-left tmux option to get current tmux continuum status.
update_tmux_option "status-right"
update_tmux_option "status-left"
fi fi
} }
main main

17
docs/continuum_status.md Normal file
View File

@ -0,0 +1,17 @@
## Continuum status in tmux status line
There is an option to display current status of tmux continuum in tmux status
line. This is done via `#{continuum_status}` interpolation and it works with
both `status-right` and `status-left` tmux native options.
Example usage:
set -g status-right 'Continuum status: #{continuum_status}'
When running, `#{continuum_status}` will show continuum save interval:
Continuum status: 15
or if continuous saving is disabled:
Continuum status: off

25
scripts/continuum_status.sh Executable file
View File

@ -0,0 +1,25 @@
#!/usr/bin/env bash
CURRENT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
source "$CURRENT_DIR/helpers.sh"
source "$CURRENT_DIR/variables.sh"
print_status() {
local save_int="$(get_tmux_option "$auto_save_interval_option")"
local status=""
local style_wrap
if [ $save_int -gt 0 ]; then
style_wrap="$(get_tmux_option "$status_on_style_wrap_option" "")"
status="$save_int"
else
style_wrap="$(get_tmux_option "$status_off_style_wrap_option" "")"
status="off"
fi
if [ -n "$style_wrap" ]; then
status="${style_wrap/$status_wrap_string/$status}"
fi
echo "$status"
}
print_status

View File

@ -25,3 +25,10 @@ auto_start_config_default=""
osx_auto_start_file_name="Tmux.Start.plist" osx_auto_start_file_name="Tmux.Start.plist"
osx_auto_start_file_path="${HOME}/Library/LaunchAgents/${osx_auto_start_file_name}" osx_auto_start_file_path="${HOME}/Library/LaunchAgents/${osx_auto_start_file_name}"
status_interpolation_string="\#{continuum_status}"
status_script="#($CURRENT_DIR/scripts/continuum_status.sh)"
# below options set style/color for #{continuum_status} interpolation
status_on_style_wrap_option="@continuum-status-on-wrap-style" # example value: "#[fg=green]#{value}#[fg=white]"
status_off_style_wrap_option="@continuum-status-off-wrap-style" # example value: "#[fg=yellow,bold]#{value}#[fg=white,nobold]"
status_wrap_string="\#{value}"