Tmux en Debian Lenny 5.0
Tmux es el reemplazo natural de screen. No sé si afirmar esto me traerá algún que otro disgusto, pero es lo que pienso. Screen es una pasada, creo que no podría vivir el día a día sin esta gran maravilla de software, [pero su desarrollo está descontinuado el último paquete estable se ha quedado estancado en 2008] FALSO. Actualización: Como nos cuenta AlBundy en los comentarios, el desarrollo está activo y se espera empaquetar otra nueva rama estable de Screen pronto.
Sin embargo Tmux (con un poco de tweaking de keys para los que ya tenemos el vicio y la cosumbre de screen), supone una bocanada aire fresco en este mundo de terminales en el que nos ha tocado vivir. Lo he instalado y configurado en todos mis Desktops, sin embargo en algún que otro servidor me lo he tenido que currar un poco más puesto que no está disponible de forma oficial.
Me refiero a Debian Lenny 5.0, que no tiene tmux dentro de sus repositorios, así que no he tenido más remedio que compilarlo y hacer el paquete debian, aquí os dejo las instrucciones, y un poco más abajo los paquetes para vagos:
# wget http://monkey.org/~provos/libevent-1.4.14b-stable.tar.gz
# tar xvfz libevent-1.4.14b-stable.tar.gz
# cd libevent-1.4.14b-stable
# ./configure
# make
# checkinstall
# wget http://downloads.sourceforge.net/project/tmux/tmux/tmux-1.5/tmux-1.5.tar.gz
# tar xvfz tmux-1.5.tar.gz
# cd tmux-1.5/
# ./configure
# make
# checkinstall
Tmux depende de una versión de libevent superior a la 1.4, como en Debian Lenny 5.0 viene de serie la 1.3e-3 nos obliga a crear binario de una versión superior. Una vez tenemos los .deb generados hemos de instalarlos con dpkg -i (siempre y cuando checkinstall no los haya instalado ya). Actualizamos los vínculos de las librerías compartidas y ya estamos en disposición de lanzar tmux.
# ldconfig
# tmux
Dejo también un enlace a los binarios generados (lazy mode on), puesto que no encontré nada similar por Internet, quizá pueda servir a alguien:
Y además, para acabar la jugada, dejo constancia también de una configuración que mapea prácticamente todos los atajos de teclado de Screen a Tmux para el .tmux.conf:
# Ademas de Ctrl+B, agregamos un atajo de teclado tipo screen (Ctrl+A)
# Para tmux < 1.6:
set-option -g prefix C-a
# Empezar la numeracion de las ventanas creadas en 1 (la primera ventana)
set -g base-index 1
# Si corremos un tmux dentro de otro, como enviar comandos al mas interno (C-A C-A comando)
bind-key a send-prefix
# Pasar a modo buffer con C-A espacio ademas de con [ y RePag
bind-key Space copy-mode
# Partir ventanas intuitivamente con | y -
unbind %
bind | split-window -h
bind - split-window -v
# Establecer barra de estado personalizada
set -g status-bg black
set -g status-fg white
set -g status-left ""
set -g status-right "#[fg=green]#H"
# Iluminar de rojo en la barra de estado la ventana activa ademas del "*"
set-window-option -g window-status-current-bg red
# title A
unbind A
bind A command-prompt "rename-window %%"
# More straight forward key bindings for splitting
unbind %
bind | split-window -h
bind v split-window -h
unbind '"'
bind - split-window -v
bind h split-window -v
# History
set -g history-limit 1000
# " windowlist -b
unbind '"'
bind '"' choose-window
# other ^A
unbind ^A
bind ^A last-window
# kill K k
unbind K
bind K confirm-before "kill-window"
unbind k
bind k confirm-before "kill-window"
# prev ^H ^P p ^?
unbind ^H
bind ^H previous-window
unbind ^P
bind ^P previous-window
unbind BSpace
bind BSpace previous-window
# next ^@ ^N sp n
unbind ^@
bind ^@ next-window
unbind ^N
bind ^N next-window
unbind " "
bind " " next-window
unbind n
bind n next-window
# Terminal emulator window title
set -g set-titles on
set -g set-titles-string '#S:#I.#P #W'
# Status Bar
set -g status-bg black
set -g status-fg white
set -g status-interval 1
set -g status-left '#[fg=green]#H#[default]'
set -g status-right '#[fg=yellow]#(cut -d " " -f 1-4 /proc/loadavg)#[default] #[fg=cyan,bold]%Y-%m-%d %H:%M:%S#[default]'
# Notifying if other windows has activities
setw -g monitor-activity on
set -g visual-activity on
# Highlighting the active window in status bar
setw -g window-status-current-bg red
Venga, como extra y sin que sirva de precedente, una rápida para tenerlo funcional cuanto antes:
# wget http://static.userlinux.net/deb/libevent-1.4.14b_1.4.14b-1_i386.deb
# wget http://static.userlinux.net/deb/tmux_1.5-1_i386.deb
# dpkg -i libevent-1.4.14b_1.4.14b-1_i386.deb
# dpkg -i tmux_1.5-1_i386.deb
# ldconfig ; cd
# wget -qO- http://paste.userlinux.net/212/raw/ > .tmux.conf
# perl -pi -e 's/\r\n/\n/g' .tmux.conf
Imprescindible también tener un alias tmux='tmux -u' para abrirlo en modo utf8 y que no se haga un lío con las tildes y los caracteres tan extraños que tenemos en el idioma de Cervantes.
Y creo que con ésto me ha quedado una entrada bastante curiosa sobre instalación y configuración, si queréis aprender más sobre el uso, os recomiendo la entrada del wiki de Santiago Romero sobre Tmux, porque es de lo mejorcito.
Espero que sirva, enjoy it!