.local-bin/scripts/windownizer

42 lines
1.2 KiB
Bash
Executable file

#!/usr/bin/env bash
# Extract the base name of the branch
branch_name=$(basename "$1")
clean_name=$(echo "$branch_name" | tr "./" "__")
tmux_running = $(pgrep tmux)
# Detect if we are in a tmux session or using WezTerm
if [[ -z $TMUX ]] && [[ -z $tmux_running ]]; then
# tmux specific logic
session_name=$(tmux display-message -p "#S")
target="$session_name:$clean_name"
if ! tmux select-window -t "$target" 2>/dev/null; then
tmux neww -dn "$clean_name"
fi
shift
if [ $# -gt 0 ]; then
tmux send-keys -t "$target" "$*" Enter
fi
elif command -v wezterm >/dev/null && wezterm --version | grep -q "wezterm"; then
# WezTerm specific logic
pane_id=$(wezterm cli list | grep "$clean_name" | awk '{print $1}')
if [ -z "$pane_id" ]; then
pane_id=$(wezterm cli spawn --new-tab --title "$clean_name" | awk '{print $1}')
else
wezterm cli activate-tab --pane-id "$pane_id"
fi
shift
if [ $# -gt 0 ]; then
wezterm cli send-text --pane-id "$pane_id" "$*"
wezterm cli send-text --pane-id "$pane_id" "\n"
fi
else
echo "Warning: No terminal multiplexer detected (tmux or WezTerm)."
fi