Terminator y algunos tips sobre los layout en terminal
Hoy les traigo un mini artículo sobre cómo utilizar de una manera básica y útil los layouts del emulador de terminal terminator en GNU/Linux para cargar nuestro entorno de trabajo completo.
Estimados!
Aquí estamos volviendo a la actividad en el blog!
Desde hace varias semanas he tenido problemas con PAC, el gestor de terminales y conexiones que solía utilizar para trabajar, administrar servidores remotos SSH, y programar local y remotamente (VIM, por supuesto :P).
Pues bien, como PAC está desarrollado en Perl/GTK, no resulta muy buena opción para muchos sistemas… y más cuando tenemos que descargarlo, y no se encuentra en la mayoría de los repos de las distros. Afortunadamente ArchLinux lo trae en el repo AUR, pero entre actualizaciones y actualizaciones siempre me han surgido problemas de compatibilidad.
Buscando una alternativa a PAC, resulta que no encontré ninguna que se le parezca en funcionalidad y cantidad de opciones (si alguno conoce algo por favor comentar este artículo en el blog! :))
Terminator, una alternativa
Terminator es un interesante emulador de terminal para Linux que, entre otras cosas, se caracteriza por la posibilidad de dividir la ventana de la terminal en múltiples paneles, y la configuración de paneles además puede ser almacenada para lanzarla como un layout, sin necesidad de subdividir la terminal cada vez que corremos el emulador.
¿Por qué me resultó interesante? Por la sencilla razón de que programo en lenguaje C en la terminal, y utilizo Vim como editor, y además, las aplicaciones que hago son cliente-servidor, de modo que para realizar upgrades y debugging necesito, mínimo, una terminal para el servidor, otra para el cliente, y quizás otra tercera en el mismo cliente para ejecutar algunos comandos de depuración.
¿Qué me permitía PAC-Manager?
Principalmente, dar clic y correr una terminal conectada vía SSH contra un equipo remoto. Si bien PAC brinda muchísimas funcionalidades extra, yo solía utilizar solamente esas, y quizás algo de auto-ejecución de comandos previo a la ejecución de una terminal.
Pasando a Terminator…
Ya poseía yo algunos scripts automatizados que me permitían conectar automáticamente a servicios OpenVPN, y a servicios SSH sin la necesidad de correr el comando, algo así como ejecutar:
ovpn gateway_1
para conectar a un vpn, y algo así:
scon server_1
para una conexión SSH remota.
Pues bien, a fuerza de necesidad, empecé a correr terminator, a abrir los paneles para cada conexión, y ejecutar los comandos necesarios en cada uno.
Resulta que terminator posee los denominados layouts, o una imagen espejo de las terminales que estamos utilizando, en formato y dimensiones, y dentro de la configuración de los layouts podemos, además, ejecutar comandos iniciales al abrir la terminal.
Así, por ejemplo, si cada vez que nos sentamos a programar o a trabajar en terminal, necesitamos un layout similar a este:
Puede que perdamos algunos minutos para poder montarlo, y más cuando este tipo de configuraciones lo tenemos en varios tabs del terminator, o en varias ventanas incluso.
Gestionando los layout en terminator
Afortunadamente, los layouts podemos guardarlos y lanzarlos cuando queramos!
Una vez configurado el layout que queremos, podemos dar clic derecho en cualquier terminal, entrar en Preferencias, y en el tab o pestaña «Layouts» vamos a poder crear uno nuevo.
Es importante ya haber definido la ventana que quisiéramos, las divisiones y demás, para poder crear el layout.
Al dar clic en «Add» vamos a poder nombrar nuestro nuevo layout, y éste dispondrá de la configuración actual del entorno.
Como se puede ver, aquí tenemos un layout para un terminator con dos ventanas, y varias divisiones de cada una. Además, si seleccionamos cada «Terminal» podemos, en la columna de la derecha, configurar un perfil, directorio de trabajo, y comando a ejecutar inicialmente.
Así, si, por ejemplo, tenemos un layout denominado «cli_server_1«, simplemente con lanzar el terminator con el siguiente comando:
terminator -l cli_server_1
Ya tendremos toda la disposición, y los comandos pre-ejecutados en cada una de las terminales.
Espero que les resulte útil como a mi!
En siguientes artículos les contaré sobre los scripts que utilizo para lanzar vpn’s y conexiones ssh con argumentos mas avanzados a unos pocos golpes de tecla 🙂