# ╔═══════════════════════════════════════════════════════════════════════╗
# ║  tmux.conf — patch OTIMIZADO para Alacritty + Claude Code            ║
# ║  Adicionar ao ~/.tmux.conf (ou substituir o bloco "General")         ║
# ║  Depois: tmux source ~/.tmux.conf                                     ║
# ╚═══════════════════════════════════════════════════════════════════════╝

# ──────────────────────────────────────────────────────────────────────────
# GENERAL — terminfo, responsividade, features
# ──────────────────────────────────────────────────────────────────────────
set -g default-terminal "tmux-256color"
set -g escape-time 0                   # 0 = response imediata (era 10)
set -g history-limit 100000            # buffer grande (era 50k)
set -g focus-events on                 # apps reagem a focus gain/loss (vim, lsp)
set -g mouse on
set -g base-index 1
setw -g pane-base-index 1
set -g renumber-windows on
set -g aggressive-resize on            # redimensiona pane pela janela ativa
setw -g mode-keys vi

# ──────────────────────────────────────────────────────────────────────────
# TERMINAL FEATURES — declara capabilities pro tmux e apps filhos
# Crítico: RGB (truecolor), clipboard (OSC 52), hyperlinks (OSC 8),
# sync (synchronized output ANSI 2026), styled-underlines (Smulx)
# ──────────────────────────────────────────────────────────────────────────
set -as terminal-features ",alacritty*:RGB,clipboard,hyperlinks,sync,styled-underlines,ccolour,usstyle,focus,title"
set -as terminal-features ",xterm-256color:RGB,clipboard"
set -as terminal-features ",tmux-256color:RGB,clipboard,hyperlinks,sync,styled-underlines"

# Fallback overrides (apps antigos que consultam terminfo diretamente)
set -ga terminal-overrides ",alacritty*:Tc,Smulx=\\E[4::%p1%dm,Hsu3=\\E]8;%p3%s;%p2%s\\E\\\\,Hsv2=\\E]8;;\\E\\\\"

# Permitir passthrough de OSC escapes (OSC 52 clipboard, OSC 133 shell integration, OSC 8 hyperlinks)
set -g allow-passthrough on

# ──────────────────────────────────────────────────────────────────────────
# CLIPBOARD — OSC 52 bidirecional (tmux → Alacritty → Windows clipboard)
# ──────────────────────────────────────────────────────────────────────────
set -g set-clipboard on

# copy-mode vi: y + Enter + MouseDragEnd copiam pro clipboard do SO via OSC 52
bind -T copy-mode-vi y send -X copy-pipe-and-cancel
bind -T copy-mode-vi Enter send -X copy-pipe-and-cancel
bind -T copy-mode-vi MouseDragEnd1Pane send -X copy-pipe-and-cancel
bind -T copy-mode-vi v send -X begin-selection
bind -T copy-mode-vi C-v send -X rectangle-toggle

# Paste via prefix + p (cola do buffer tmux, OS-independent)
bind p paste-buffer
bind P choose-buffer

# ──────────────────────────────────────────────────────────────────────────
# SHELL INTEGRATION — habilita jumps entre prompts (OSC 133)
# Requer shell configurado (ver /tmp/shell-integration.sh)
# ──────────────────────────────────────────────────────────────────────────
# (nada a adicionar aqui; basta o shell emitir OSC 133 que o tmux repassa
#  via allow-passthrough on)

# ──────────────────────────────────────────────────────────────────────────
# ZSH/BASH force + Wave compat (mantido do seu original)
# ──────────────────────────────────────────────────────────────────────────
if-shell "test -x /bin/zsh" \
  "set -g default-shell /bin/zsh ; set -g default-command /bin/zsh"

# ──────────────────────────────────────────────────────────────────────────
# STATUS — refresh rápido + indicadores
# ──────────────────────────────────────────────────────────────────────────
set -g status-interval 5               # refresh a cada 5s
set -g display-time 3000               # msgs duram 3s
