1
0
Fork 0
mirror of https://github.com/SinTan1729/random.git synced 2024-12-26 13:18:35 -06:00
random/open-in-tmux.sh

17 lines
674 B
Bash
Raw Normal View History

2024-03-12 17:35:15 -05:00
#!/usr/bin/env bash
# This script checks if any tmux panes are open in our current working directory.
# If yes, it switches to that window given it's not busy i.e. only has the shell running.
# If no, it creates a new window and switches to it.
# I use it as a startup command in alacritty.
target_path="$(pwd -P)"
tmux list-panes -s -F '#{window_id} #{pane_id} #{pane_current_path} #{pane_current_command}' \
| while IFS=' ' read -r window pane path cmd; do
[[ "$path" = "$target_path" && " fish bash zsh " =~ " $cmd " ]] \
&& tmux select-pane -t "$pane" && tmux select-window -t "$window" && exit 0
done || tmux new-window -c "$target_path"
tmux attach -d