Saltar a contenido

Crear un workspace con tmux

Abrir terminales, navegar a cada proyecto y ejecutar comandos a mano cada mañana es repetitivo. Con un script de tmux puedes levantar tu entorno completo en segundos con un solo comando.

El objetivo

Queremos que al escribir tw en la terminal ocurra esto:

  • Si ya existe una sesión llamada work, tmux se conecta a ella.
  • Si no existe, se crea automáticamente con dos ventanas preparadas para trabajar.

Paso 1: crea el script de inicio

Guarda este archivo en tu home como ~/.tmux_work.zsh:

#!/bin/zsh

SESSION="work"

tmux new -s $SESSION -d

# Ventana 1: aplicación principal
tmux send-keys -t $SESSION 'cd ~/workspace/app1 && clear' C-m
tmux split-window -v
tmux send-keys -t $SESSION 'cd ~/workspace/app1 && clear' C-m
tmux send-keys -t $SESSION 'npm run dev' C-m
tmux select-pane -t 1

# Ventana 2: api o backend
tmux new-window -t $SESSION
tmux send-keys -t $SESSION 'cd ~/workspace/app2 && clear' C-m
tmux split-window -h
tmux send-keys -t $SESSION 'cd ~/workspace/app2 && clear' C-m
tmux send-keys -t $SESSION 'python manage.py runserver' C-m
tmux select-pane -t 1

tmux select-window -t $SESSION:1
tmux attach -t $SESSION

Ajusta las rutas (~/workspace/app1, ~/workspace/app2) y los comandos (npm run dev, python manage.py runserver) a los que uses en tu día a día.

Paso 2: crea el alias

Añade esto a tu ~/.zshrc (o ~/.bashrc):

alias tw="tmux attach -t work || sh ~/.tmux_work.zsh"

Recarga la configuración:

source ~/.zshrc

Paso 3: úsalo

Escribe tw y tmux hará el resto.

tw

Paso 4: cierra la sesión

Si quieres cerrar todo y eliminar la sesión:

tmux kill-session -t work

También puedes desacoplarla (Ctrl + b, luego d) para dejarla corriendo en segundo plano.


Aunque añaden dependencias, también tienes alternativas como tmuxinator o tmuxp que permiten definir sesiones mediante archivos de configuración YAML.