diff options
Diffstat (limited to 'scripts')
-rwxr-xr-x | scripts/tmux_session_fzf | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/scripts/tmux_session_fzf b/scripts/tmux_session_fzf new file mode 100755 index 0000000..c093468 --- /dev/null +++ b/scripts/tmux_session_fzf @@ -0,0 +1,29 @@ +#!/usr/bin/env bash +# vim: set filetype=sh +# +# Author: Cody Hiar +# Date: 2020-03-17 +# +# Description: Select a tmux session with FZF +# +# Set options: +# e: Stop script if command fails +# u: Stop script if unset variable is referenced +# x: Debug, print commands as they are executed +# o pipefail: If any command in a pipeline fails it all fails +# +# IFS: Internal Field Separator +set -euo pipefail +IFS=$'\n\t' + +get_active_pane(){ + local SESSION="${1}" + tmux list-windows -t "${SESSION}" | grep '(active)' | cut -c 1 +} + +TARGET=$(tmux ls | awk -F':' '{print $1}' | fzf-tmux -h) +if [[ -n "${TARGET}" ]]; then + WINDOW=$(get_active_pane "${TARGET}") + echo "${TARGET}:${WINDOW}" >> ~/tmux.log + tmux switch-client -t "${TARGET}:${WINDOW}" +fi |