#!/usr/bin/env bash set -eo pipefail nr="@app-${1}" shift pane="$(tmux show -vg ${nr} || true)" if [[ -n "${pane}" ]] && tmux has-session -t "${pane}" ; then if tmux list-panes -F "#{pane_id}" | grep "^${pane}\$" >>/dev/null ; then # Pane is on this window. Focus it and exit. exec tmux select-pane -t "${pane}" fi else # App pane does not exist, so create a new window. pane=$(tmux new-window -d -P -F '#{pane_id}' "$@") tmux set -g "${nr}" "${pane}" fi # Swap active pane for app tmux swap-pane -s "${pane}"