#!/usr/bin/env zsh
# By LuisPa 2024
# Ejecuto tmux si es que debo/puedo
#
# Referencias:
# - https://www.luispa.com/administraci%C3%B3n/2024/04/25/tmux.html
# - https://www.luispa.com/administraci%C3%B3n/2024/04/23/zsh.html
#
# Ejecución de `tmux` si está disponible (usando `~/.tmux.conf`)
#
# [ -t 1 ]: Comprueba si el file descriptor 1 (stdout) está asociado a un terminal.
# (( $+commands[tmux] )): Comprueba si el ejecutable tmux está en el PATH
# [[ -f ~/.tmux.conf ]]: Compruebo si tengo el fichero  de configuración
# $PPID != 1: Me aseguro que mi proceso padre no es 1, que significaría que esta
# sesión se está ejecutando desde init/systemd.
# $$ != 1: Me aseguro que mi número de proceso no es el 1, que sería un desastre ;-)
# $TERM != dumb, linux, screen, xterm. En esos casos arranco sin tmux, por ejemplo
# me interesa que gnome-terminal y terminator ejecuten tmux, pero xterm no.
# -z $TMUX: Me aseguro de que no esté puesta la variable TMUX, es decir que no este
# ya en una sesión encadenada de tmux
# if (tmux has-session -t TMUX); Si ya hay una sesión ejecutándose me conecto con ella.
# en caso contrario arranco una sesión nueva
#
if [ -t 1 ] && (( $+commands[tmux] )) && \
      [[ -f ~/.tmux.conf && \
               $PPID != 1 && \
               $$ != 1 && \
               $TERM != dumb && \
               $TERM != xterm && \
               $TERM != linux && \
               $TERM != screen* && \
               $IS_VSCODE != true && \
               -z $TMUX ]]; then
    if (tmux has-session -t TMUX >/dev/null 2>&1); then
        exec tmux attach -t TMUX >/dev/null 2>&1
    else
        exec tmux new -s TMUX >/dev/null 2>&1
#        exec tmux new -s TMUX 
   fi
fi