summaryrefslogtreecommitdiffstatshomepage
path: root/tmux/.local/bin
diff options
context:
space:
mode:
authorToby Vincent <tobyv13@gmail.com>2022-04-13 15:01:38 -0500
committerToby Vincent <tobyv13@gmail.com>2022-04-13 15:01:38 -0500
commit5e45ccbb58a1a1f1a2b025de2192ec0efe2f69b3 (patch)
treee699fc44bf9f9f7fa1bf332c64bb7ab3ceb36c34 /tmux/.local/bin
parent5f8553132579520c33ec940cb8e56c752c58e272 (diff)
feat: add tmux-sessions
Diffstat (limited to 'tmux/.local/bin')
-rwxr-xr-xtmux/.local/bin/tm13
-rwxr-xr-xtmux/.local/bin/tmux-sessions8
-rwxr-xr-xtmux/.local/bin/tmux-tree16
3 files changed, 24 insertions, 13 deletions
diff --git a/tmux/.local/bin/tm b/tmux/.local/bin/tm
deleted file mode 100755
index 5c976d3..0000000
--- a/tmux/.local/bin/tm
+++ /dev/null
@@ -1,13 +0,0 @@
-#!/usr/bin/env bash
-
-[[ -n "$TMUX" ]] && change="switch-client" || change="attach-session"
-session=$(
- tmux list-sessions -F "#{session_name}" 2>/dev/null |
- sed "/^$(tmux display-message -p '#S' 2>/dev/null)$/d" |
- fzf --query="$1" --select-1 --exit-0
-) &&
- tmux $change -t "$session" ||
- (
- tmux new-session -d -s $session &&
- tmux $change -t "$session"
- )
diff --git a/tmux/.local/bin/tmux-sessions b/tmux/.local/bin/tmux-sessions
new file mode 100755
index 0000000..68fec47
--- /dev/null
+++ b/tmux/.local/bin/tmux-sessions
@@ -0,0 +1,8 @@
+#!/usr/bin/env bash
+
+[[ -n "$TMUX" ]] && change="switch-client" || change="attach-session"
+
+session=$(tmux list-sessions -F "#{session_name}" 2>/dev/null |
+ fzf-tmux -p -- --reverse --exit-0 --preview='tmux-tree {} | bat --style plain') &&
+ tmux $change -t "$session" || exit 0
+
diff --git a/tmux/.local/bin/tmux-tree b/tmux/.local/bin/tmux-tree
new file mode 100755
index 0000000..d60bb44
--- /dev/null
+++ b/tmux/.local/bin/tmux-tree
@@ -0,0 +1,16 @@
+#!/usr/bin/env bash
+
+tmux ls -F'#{session_id}' | while read -r s; do
+ S=$(tmux ls -F'#{session_id}#{session_name}: #{T:tree_mode_format}' | grep ^"$s")
+ session_info=${S##$s}
+ session_name=$(echo "$session_info" | cut -d ':' -f 1)
+ if [[ -n "$1" ]] && [[ "$1" == "$session_name" ]]; then
+ echo -e "\033[1;34m$session_info\033[0m"
+ else
+ echo -e "\033[1m$session_info\033[0m"
+ fi
+ tmux lsw -t"$s" -F'#{window_id}' | while read -r w; do
+ W=$(tmux lsw -t"$s" -F'#{window_id}#{T:tree_mode_format}' | grep ^"$w")
+ echo " ﬌ ${W##$w}"
+ done
+done