Domingo 25/11/2018

ETIQUETA | Software

Los emuladores de terminal, que vienen por defecto en las diferentes distribuciones de linux, son bastante escuetos y carecen de opciones como tener varios paneles a la vista, recuperar sesiones, etc.

Tmux es un software que transforma nuestra terminal, añadiéndole funciones que se convierten en imprescindibles una vez que las pruebas.

Posiblemente ya estés utilizando algún emulador alternativo (terminator, guake, etc.), pero tmux difiere de ellos en que no es una terminal independiente sino que potencia el emulador incluido en tu distribución.

Wikipedia lo define como “un multiplexor de terminal para sistemas tipo unix que permite dividir una consola en múltiples paneles o generar sesiones independientes en la misma terminal”.

Viene en los repositorios de Debian y puede instalarse con:

sudo apt install tmux

Una vez instalado, se arranca tecleando en la terminal:

tmux

Y este es su aspecto inicial:

tmux

El conjunto de teclas “control + b” dan acceso a los atajos para crear paneles y acceder al resto de funciones.

Los atajos más importantes son:

PANELES

ctrl + b : Atajo inicial, Prefijo.
esc : cancela el modo Prefijo.
ctrl + b % : Divide el terminal verticalmente.
ctrl + b " : divide el terminal horizontalmente.
ctrl + b (cursores) : cambia de panel.
ctrl + b q : muestra los números de paneles.
ctrl + b ctrl + (cursores) : Redimensionar
ctrl + b x : cierra el panel actual.
ctrl + b z : Pantalla completa.
ctrl + b [ : Desplazamiento arriba/abajo.
ctrl + b t : Reloj.
ctrl + b ? : Ayuda.

VENTANAS

ctrl + b c : Crea una nueva ventana.
ctrl + b número : cambia a la ventana con ese número.
ctrl + b ! : Crea una ventana nueva del panel actual.
ctrl + b , : Renombrar ventana
ctrl + b & : Cierra la ventana actual con todos sus paneles.

Para ver el resto de atajos teclea lo siguiente:

Ctrl + b ?

Se sale cerrando la ventana, normalmente, o con:

Ctrl + b d

Para reiniciar recuperando la sesión anterior en el mismo punto que la dejaste (paneles abiertos, contenido, etc.), teclea:

tmux attach

En esta página tienes un manual de acceso rápido que pude complementar lo expuesto anteriormente.

Es altamente configurable y en internet encontraras una infinidad de documentación. Se efectúa mediante un archivo de texto plano que deberás crear en tu directorio raíz y guardarlo como “.tmux.conf”. El mío es este:

# Tmux
# Configuración válida para versiones superiores a la 2.1
# Antonio Castillo
# 21/11/2018

# Límite del buffer del historial
set-option -g history-limit 4096

# Nombrar el primer panel como 1, no como 0
set -g base-index 1
set -g pane-base-index 1

# Cambio de "prefix key" por C-a
unbind C-b
set -g prefix C-a
bind C-a send-prefix

# División vertical con v
unbind v
bind-key v split-window -h

# División horizontal con h
unbind h
bind-key h split-window

# Habilita el estilo vi
set -g status-keys vi
setw -g mode-keys vi

# Activa la selección, el redimensionado y el scroll con el ratón
set -g mouse on

# Maximizar y restaurar un panel temporalmente.
unbind Up
bind Up new-window -d -n tmp \; swap-pane -s tmp.1 \; select-window -t tmp
unbind Down
bind Down last-window \; swap-pane -s tmp.1 \; kill-window -t tmp

# Establecer paleta de colores
set -g default-terminal "screen-256color"

# Color del reloj que aparece con "C-a t"
set-option -g clock-mode-colour green

# Color de la barra de estado
set-option -g status-bg black
set-option -g status-fg green

# Configuración de la barra de estado
set -g status-right "%A %e de %B #[fg=black]#[bg=green] %H:%M "

# Resaltar de verde, en la barra de estado, la ventana activa.
set-window-option -g window-status-current-bg green
set-window-option -g window-status-current-fg black

En esta configuración he cambiado el prefijo “Ctrl + b” por “Ctrl + a” porque la combinación “Ctrl + b” la utilizo como atajo de “urlview”. También he cambiado los atajos para la creación de las divisiones verticales y horizontales por “v” y “h”. He activado el ratón para la selección de paneles y el redimensionado y le he dado una estética diferente y más simple a la barra de estado. También uso "flecha arriba/abajo" para maximizar temporalmente un panel.

Tengo que reconocer que algunas funciones son poco intuitivas pero superado los primeros minutos, de toma de contacto, llega a convertirse en un programa imprescindible.

Si deseas arrancarlo, automáticamente, al abrir la terminal, debes editar el archivo “.bashrc” y añadir, al final, el siguiente código:

tmux attach &> /dev/null
if [[ ! $TERM =~ screen ]]; then
    exec tmux
fi

Descubrí "tmux", hace años, en el blog de Joe di Castro y desde entonces vengo utilizándolo con asiduidad. Espero que le guste tanto como a mi


§