aboutsummaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
Diffstat (limited to 'scripts')
-rwxr-xr-xscripts/tmux_selector.sh28
1 files changed, 28 insertions, 0 deletions
diff --git a/scripts/tmux_selector.sh b/scripts/tmux_selector.sh
new file mode 100755
index 0000000..3928df6
--- /dev/null
+++ b/scripts/tmux_selector.sh
@@ -0,0 +1,28 @@
+#!/bin/bash
+shopt -s extglob
+
+readonly TMUX_FORMAT='#{session_id};#{session_attached};#{session_name}'
+
+OPTIONS=$(
+echo new
+while IFS=';' read -r ID ATTACHED NAME; do
+ printf "%s\t|" "$ID"
+ printf " %s" "$NAME"
+ test $ATTACHED -ge 1 && printf " (attached)"
+
+ printf "\n"
+done <<< "$(tmux ls -F "$TMUX_FORMAT")"
+)
+
+CHOICE=$(fzf <<< "$OPTIONS" | awk -F'|' '{ print $1 }')
+test -z "$CHOICE" && exit 1
+
+echo $CHOICE
+
+case $CHOICE in
+ $+([0-9])* )
+ tmux attach -t $CHOICE ;;
+ new) tmux ;;
+ *)
+ exit 1;;
+esac