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.[@MORE@]
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!
- AlBundy Hola,aprovecho este post para felicitarte primero por tu blog. Respecto al tema del post (tmux vs screen) me gustaría desmentir la afirmación, que tu haces y que se repite en muchos sitios, según la cual el desarrollo de screen está parado. Eso es falso. Es cierto que si buscamos la última versión de screen empaquetada, vemos que es de una fecha antigua. Pero el desarrollo continúa en su repositorio git, y en sus listas de correo. Existen varias ramas de desarrollo con nuevas carcaterísticas interesantes, que en cuanto se pulan un poco se integrarán con la rama principal, y podremos disfrutar de un nuevo paquete estable oficial. Dicho esto, tmux es cierto que tiene mucho más movimiento. (Y dicho sea de paso, a mí me gusta más tmux que screen). Saludos.
- r0sk Cierto @AlBundy, acabo de mirar *bien* en el git y hay cambios en el branch master de hace 5 días (http://git.savannah.gnu.org/cg.... Mea culpa. Gracias por el comentario y por la rectificación, he editado el post para no caer en el mismo error. Un saludo.