aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/tmux/.local/bin/tmux-sessions
diff options
context:
space:
mode:
Diffstat (limited to 'tmux/.local/bin/tmux-sessions')
-rwxr-xr-xtmux/.local/bin/tmux-sessions29
1 files changed, 20 insertions, 9 deletions
diff --git a/tmux/.local/bin/tmux-sessions b/tmux/.local/bin/tmux-sessions
index 4b68929..6d04f5f 100755
--- a/tmux/.local/bin/tmux-sessions
+++ b/tmux/.local/bin/tmux-sessions
@@ -1,11 +1,22 @@
-#!/usr/bin/env bash
+#!/bin/sh
-[[ -n "$TMUX" ]] && change="switch-client" || change="attach-session"
+if [ "$#" -eq 0 ]; then
+ # shellcheck disable=2016,2046
+ set -- $(
+ tmux list-sessions -F '#{session_last_attached}0:#{session_name}' 2>/dev/null |
+ sort -t':' -r -k1 | cut -d':' -f2 | sed "/^$(tmux display-message -p '#S')$/d" |
+ fzf-tmux "$FZF_TMUX_OPTS" -- --select-1 --exit-0 --preview-window=right,80% --preview='tmux capture-pane -ep -t {}' \
+ --bind 'ctrl-q:execute(tmux kill-session -t{})+reload(tmux list-sessions -F "#{session_name}" 2>/dev/null |
+ sed "/$(tmux display-message -p "#S")/d" )'
+ )
+fi
-# shellcheck disable=2016
-session=$(tmux list-sessions -F '#{session_last_attached}0:#{session_name}' 2>/dev/null |
- sort -t':' -r -k1 | cut -d':' -f2 | sed "/^$(tmux display-message -p '#S')$/d" |
- fzf-tmux -p -- --select-1 --exit-0 --preview-window=right,80% --preview='tmux capture-pane -ep -t {}' \
- --bind 'ctrl-q:execute(tmux kill-session -t{})+reload(tmux list-sessions -F "#{session_name}" 2>/dev/null |
- sed "/$(tmux display-message -p "#S")/d" )') &&
- tmux $change -t "$session" || exit 0
+if [ "$#" -eq 0 ]; then
+ exit 1
+fi
+
+if [ -z "$TMUX" ]; then
+ tmux attach-session -t "$1"
+else
+ tmux switch-client -t "$1"
+fi