1. Què és Tmux

Tmux és un programa que permet utilitzar diverses consoles virtuals des d’una mateixa finestra.

Tmux és un multiplexor de terminals.

Quan utilitzem Tmux amb el nostre terminal obtenim avantatges, de les quals destacarem 3:

  1. Permet restaurar sessions que han mort accidentalment.
  2. Ajuda a organitzarnos quan treballem amb moltes terminals al mateix temps.
  3. Facilita canviar ràpidament d’entorn de treball.

2. Conceptes claus

  1. Sessió
  2. Finestra
  3. Panell

La sessió és una col·lecció de consoles virtuals gestionades per Tmux. Cada sessió té una o més finestres associades. Les finestres ocupen tot l’espai de la pantalla, es poden dificir en regions rectangulars que s’anomenen panels. En cada panel s’executa una consola virtual independent.

2.1. Barra d’estat

  1. Index de la sessió entre corxets
  2. L’índex i el nom de la finestra
  3. La ruta relativa del panel
  4. L’hora i la data actuals

2.2. Arquitectura Client / Servidor

Quan executem el comandament tmux en terminal es creen dos processos independents: un per al client i altre per al servidor.

Aquests processos es comuniquen entre sí mitjançant l’enviament de comandaments.

2.3. Funcions del client

  1. Enviar comandaments al servidor que es vol que Tmux execute
  2. Pintar sessions, finestres i panels en patatalla que està gestionant el servidor

2.4. Funcions del servidor

  1. S’encarrega d’executar els comandaments
  2. Gestiona les sessions i consoles virtuals

Gràcies a aquesta arquitectura, si el client acaba el server continuarà executant les tasques en segon pla. Això és el que ens permetrà recuperar el nostre entorn més tard.

2.5. Comandaments

Es poden classificar en dos tipus depenent de com li’ls passem a Tmux.

Elx comandaments que executem fora de la sessió de Tmux s’anomenen comandaments no interactius.

Anomenem prefixe a Ctrl + b

Comandaments interactius: prefixe + : + comandament

Combinació de tecles: prefixe + tecla

2.6. Sessions

tmux list-sessions: llistat de totes les sessions

tmux attach: es connectarà a l’última sessió

tmux attach -t 0: es connectarà a la sessió 0

Ctrl + b + d: desconnecta de la sessió

Ctrl + b+ $: canvia el nom de la sessió

Ctrl + b+ s: navegar entre sessions

Ctrl + b+ : + kill-session: matar sessió

2.7. Finestres

Ctrl + b+ ,: renomena una finestra

Ctrl + b+ c: crear una finestra nova, un asterisc en la barra d’estat ens indica quina és la finestra activa

Ctrl + b+ p: finestra prèvia

Ctrl + b+ n: finestra següent

Ctrl + b+ 0: finestra 0

Ctrl + b+ 2: finestra següent

Ctrl + b+ &: tanca totes les finestres

2.8. Panels

Ctrl + b+ "2: divideix el panell horitzontalment

Ctrl + b+ %5: divideix el panell actiu verticalment

Ctrl + b+ →: utilitzem les fletxes per menejar-nos entre panells

Ctrl + b+ x: tanca el panell

Ctrl + b+ espai: rota la configuració dels panells configurant els layouts

Ctrl + b+ [: mode còpia

q: eixir del mode còpia

3. Tmux amb Oh My ZSH

Alias Commandament Descripció
ta tmux attach -t Attach new tmux session to already running named session
tad tmux attach -d -t Detach named tmux session
ts tmux new-session -s Create a new named tmux session
tl tmux list-sessions Displays a list of running tmux sessions
tksv tmux kill-server Terminate all running tmux sessions
tkss tmux kill-session -t Terminate named running tmux session
tmux _zsh_tmux_plugin_run Start a new tmux session