mirror of
https://github.com/tmux-plugins/tmux-resurrect.git
synced 2024-11-12 23:28:50 +00:00
Added ability to save a single session
This commit is contained in:
parent
3606e4f602
commit
e0a5636ea2
@ -26,7 +26,8 @@ Automatic restoring and continuous saving of tmux env is also possible with
|
||||
|
||||
### Key bindings
|
||||
|
||||
- `prefix + Ctrl-s` - save
|
||||
- `prefix + Ctrl-s` - save all sessions
|
||||
- `prefix + Ctrl-t` - save current session
|
||||
- `prefix + Ctrl-r` - restore
|
||||
|
||||
### About
|
||||
|
@ -2,10 +2,12 @@
|
||||
|
||||
The default key bindings are:
|
||||
|
||||
- `prefix + Ctrl-s` - save
|
||||
- `prefix + Ctrl-s` - save all sessions
|
||||
- `prefix + Ctrl-t` - save current session
|
||||
- `prefix + Ctrl-r` - restore
|
||||
|
||||
To change these, add to `.tmux.conf`:
|
||||
|
||||
set -g @resurrect-save 'S'
|
||||
set -g @resurrect-save-current 'T'
|
||||
set -g @resurrect-restore 'R'
|
||||
|
@ -13,6 +13,14 @@ set_save_bindings() {
|
||||
done
|
||||
}
|
||||
|
||||
set_save_current_bindings() {
|
||||
local key_bindings=$(get_tmux_option "$save_current_option" "$default_save_current_key")
|
||||
local key
|
||||
for key in $key_bindings; do
|
||||
tmux bind-key "$key" run-shell "$CURRENT_DIR/scripts/save.sh -t #S"
|
||||
done
|
||||
}
|
||||
|
||||
set_restore_bindings() {
|
||||
local key_bindings=$(get_tmux_option "$restore_option" "$default_restore_key")
|
||||
local key
|
||||
@ -33,6 +41,7 @@ set_script_path_options() {
|
||||
|
||||
main() {
|
||||
set_save_bindings
|
||||
set_save_current_bindings
|
||||
set_restore_bindings
|
||||
set_default_strategies
|
||||
set_script_path_options
|
||||
|
@ -10,8 +10,18 @@ source "$CURRENT_DIR/spinner_helpers.sh"
|
||||
d=$'\t'
|
||||
delimiter=$'\t'
|
||||
|
||||
# if "quiet" script produces no output
|
||||
SCRIPT_OUTPUT="$1"
|
||||
while getopts "t:q" opt; do
|
||||
case "$opt" in
|
||||
t)
|
||||
TARGET_SESSION="$OPTARG"
|
||||
tmux has-session -t "$TARGET_SESSION" ||
|
||||
exit 1
|
||||
;;
|
||||
q)
|
||||
SCRIPT_OUTPUT="quiet"
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
grouped_sessions_format() {
|
||||
local format
|
||||
@ -81,12 +91,24 @@ state_format() {
|
||||
echo "$format"
|
||||
}
|
||||
|
||||
session_selector_windows() {
|
||||
[ -z "$TARGET_SESSION" ] &&
|
||||
echo "-a" ||
|
||||
echo "-t $TARGET_SESSION"
|
||||
}
|
||||
|
||||
session_selector_panes() {
|
||||
[ -z "$TARGET_SESSION" ] &&
|
||||
echo "-a" ||
|
||||
echo "-s -t $TARGET_SESSION"
|
||||
}
|
||||
|
||||
dump_panes_raw() {
|
||||
tmux list-panes -a -F "$(pane_format)"
|
||||
tmux list-panes $(session_selector_panes) -F "$(pane_format)"
|
||||
}
|
||||
|
||||
dump_windows_raw(){
|
||||
tmux list-windows -a -F "$(window_format)"
|
||||
tmux list-windows $(session_selector_windows) -F "$(window_format)"
|
||||
}
|
||||
|
||||
toggle_window_zoom() {
|
||||
@ -215,6 +237,7 @@ dump_windows() {
|
||||
}
|
||||
|
||||
dump_state() {
|
||||
[[ -z "$TARGET_SESSION" ]] || return
|
||||
tmux display-message -p "$(state_format)"
|
||||
}
|
||||
|
||||
|
@ -3,6 +3,9 @@ default_save_key="C-s"
|
||||
save_option="@resurrect-save"
|
||||
save_path_option="@resurrect-save-script-path"
|
||||
|
||||
default_save_current_key="C-t"
|
||||
save_current_option="@resurrect-save-current"
|
||||
|
||||
default_restore_key="C-r"
|
||||
restore_option="@resurrect-restore"
|
||||
restore_path_option="@resurrect-restore-script-path"
|
||||
|
Loading…
Reference in New Issue
Block a user