summaryrefslogtreecommitdiff
path: root/private_dot_local
diff options
context:
space:
mode:
authorIbrahim Muftee <ibrahim@muftee.net>2025-08-22 14:06:08 -0500
committerIbrahim Muftee <ibrahim@muftee.net>2026-07-01 00:23:31 -0400
commit510346e10839934217cc0885cf724642f831212f (patch)
treeabd7bc499e2d34a170dd3977a883c16d05bb582a /private_dot_local
parente9cb678475e8fcf2d9a825f1b0fa0cd47358d4d9 (diff)
feat(tmux): add tmux
Diffstat (limited to 'private_dot_local')
-rw-r--r--private_dot_local/bin/executable_tmux-session-dispensary.sh30
1 files changed, 30 insertions, 0 deletions
diff --git a/private_dot_local/bin/executable_tmux-session-dispensary.sh b/private_dot_local/bin/executable_tmux-session-dispensary.sh
new file mode 100644
index 0000000..ccbdbaf
--- /dev/null
+++ b/private_dot_local/bin/executable_tmux-session-dispensary.sh
@@ -0,0 +1,30 @@
+#!/bin/bash
+
+DIRS=(
+ "$HOME"
+ "$HOME/.config"
+ "$HOME/.local"
+ "$HOME/.local/share"
+ "$HOME/Documents"
+ "$HOME/Documents/Code"
+)
+
+if [[ $# -eq 1 ]]; then
+ selected=$1
+else
+ selected=$(fd "${DIRS[@]}" --type=dir --max-depth=1 --full-path \
+ | sed "s|^$HOME/||" \
+ | sk -m)
+ [[ $selected ]] && selected="$HOME/$selected"
+fi
+
+[[ ! $selected ]] && exit 0
+
+selected_name=$(basename "$selected" | tr . _)
+if ! tmux has-session -t "$selected_name"; then
+ tmux new-session -ds "$selected_name" -c "$selected"
+ tmux select-window -t "$selected_name:1"
+fi
+
+connect_cmd=$([[ -z $TMUX ]] && echo "attach" || echo "switch-client")
+tmux "$connect_cmd" -t "$selected_name"