···186186 # Auto-start tmux for new sessions
187187 # Check if we're already in tmux (even through sudo)
188188 if [[ "$TERM" != "linux" && -z "$TMUX" && "$TERM" != "dumb" ]]; then
189189- # Additional check: see if we're in a tmux pane even if $TMUX is unset
190190- if [[ -z "$(tmux list-panes -F '#{pane_pid}' 2>/dev/null | grep -w $$)" ]]; then
189189+ # Check if we're inside tmux by looking for tmux in the process tree
190190+ in_tmux=false
191191+ pid=$$
192192+ while [[ $pid -ne 1 ]]; do
193193+ if ps -p $pid -o comm= 2>/dev/null | grep -q '^tmux'; then
194194+ in_tmux=true
195195+ break
196196+ fi
197197+ # Get parent PID
198198+ pid=$(ps -p $pid -o ppid= 2>/dev/null | tr -d ' ') || break
199199+ done
200200+201201+ if [[ "$in_tmux" == "false" ]]; then
191202 # Preserve SSH_AUTH_SOCK for tmux
192203 if [[ -n "$SSH_AUTH_SOCK" ]]; then
193204 tmux set-environment -g SSH_AUTH_SOCK "$SSH_AUTH_SOCK" 2>/dev/null