diff options
| author | TheSiahxyz <164138827+TheSiahxyz@users.noreply.github.com> | 2025-12-24 13:54:03 +0900 |
|---|---|---|
| committer | TheSiahxyz <164138827+TheSiahxyz@users.noreply.github.com> | 2025-12-24 13:54:03 +0900 |
| commit | 28e8bdf7f8286bd431b7f3b709e79f3827b31469 (patch) | |
| tree | 85b44eff6da4d8443198fb6e04dfb6ee55244588 /debian/.local/bin/tmuxcreate | |
| parent | 8470ff001befcfd0f626dea69a9e76d43aee0511 (diff) | |
updates
Diffstat (limited to 'debian/.local/bin/tmuxcreate')
| -rwxr-xr-x | debian/.local/bin/tmuxcreate | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/debian/.local/bin/tmuxcreate b/debian/.local/bin/tmuxcreate new file mode 100755 index 0000000..5fb5ef3 --- /dev/null +++ b/debian/.local/bin/tmuxcreate @@ -0,0 +1,42 @@ +#!/bin/sh + +create_new_session() { + session_name=$1 + session_path=${2:-"$PWD"} # Default to current directory if no path is provided + [ -z "$session_name" ] && { printf "New session name: " && read -r session_name; } + if tmux has-session -t "$session_name" 2>/dev/null; then + tmux switch-client -t "$session_name" + else + if [ -n "$TMUX" ]; then + tmux new-session -d -s "$session_name" -c "$session_path" + tmux switch-client -t "$session_name" + else + tmux new -s "$session_name" -c "$session_path" + fi + fi +} + +if [ $# -gt 0 ]; then + if [ -d "$1" ]; then + create_new_session "$(basename "$1")" "$1" + else + create_new_session "$1" + fi +else + # Capture the output of tmux ls + sessions=$(tmux ls 2>/dev/null) + if [ -z "$sessions" ]; then + create_new_session + else + session=$( ( + echo "$sessions" + echo "[new session]" + ) | fzf-tmux --reverse | cut -d: -f1) + [ -z "$session" ] && exit + if [ "$session" = "[new session]" ]; then + create_new_session + else + tmux attach -t "$session" + fi + fi +fi |
