#!/usr/bin/env bash # ============================================================================ # start-tmux.sh — dựng sẵn layout quay: pane TRÁI = bản đồ sống, # pane PHẢI = run-all.sh. Hai pane đồng bộ qua STEP_FILE. # # Dùng: # cd # vd: AINative_OKR_CASAN5 # bash /…/optimize-docs/video-steps/start-tmux.sh # # Biến môi trường (tuỳ chọn): # CASAN_ROOT=/path/to/AINative_OKR_CASAN5 # nếu không cd sẵn # AUTO=1 STEP_DELAY=6 # pane phải tự chạy, nghỉ 6s/bước # COLS=210 ROWS=52 LEFT=44 # kích thước cửa sổ & bề rộng pane trái # ============================================================================ set -euo pipefail HERE="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" ROOT="${CASAN_ROOT:-$PWD}" [ -d "$ROOT/.specify" ] || { [ -d "$ROOT/AINative_OKR_CASAN5/.specify" ] && ROOT="$ROOT/AINative_OKR_CASAN5"; } [ -d "$ROOT/.specify" ] || { echo "✗ Không thấy .specify/ tại '$ROOT'. cd vào project hoặc đặt CASAN_ROOT."; exit 1; } command -v tmux >/dev/null || { echo "✗ Chưa cài tmux. macOS: brew install tmux"; exit 1; } STEP_FILE="${CASAN_STEP_FILE:-/tmp/casan_step}" printf 'INTRO' > "$STEP_FILE" SESS="casan" COLS="${COLS:-210}"; ROWS="${ROWS:-52}"; LEFT="${LEFT:-44}" RIGHT=$(( COLS - LEFT - 1 )) tmux kill-session -t "$SESS" 2>/dev/null || true tmux new-session -d -s "$SESS" -x "$COLS" -y "$ROWS" # pane 0 (trái) = bản đồ sống tmux send-keys -t "$SESS":0.0 "clear; bash '$HERE/map-live.sh' '$STEP_FILE'" C-m # tách pane phải rộng $RIGHT cột = nơi chạy battery (đây là pane bạn thao tác) tmux split-window -h -t "$SESS":0.0 -l "$RIGHT" tmux send-keys -t "$SESS":0.1 \ "cd '$ROOT' && clear && CASAN_STEP_FILE='$STEP_FILE' ${AUTO:+AUTO=$AUTO} ${STEP_DELAY:+STEP_DELAY=$STEP_DELAY} bash '$HERE/run-all.sh'" C-m tmux select-pane -t "$SESS":0.1 # focus pane phải để bấm Enter tmux attach -t "$SESS"