Está en la página 1de 3

069-071_Chat

30.03.2006

12:42

Uhr

Pgina

69

Chat LINUX USER

Chat basado en texto con Irssi

HABLAMOS?

El cliente chat de la consola Irssi es poderoso aun siendo frugal en el uso de recursos. Su capacidad para correr scripts hace que sea un gigante entre todas las herramientas de chat. POR MIRKO ALBRECHT
rssi es un cliente de chat basado en texto que se ejecuta desde la lnea de comandos. No debe cometerse el error de pensar que se trata de una antigualla o de que tiene unas funcionalidades limitadas; de hecho, Irssi supera a muchos de sus contendientes ganando saltar de un servidor a otro (esto supone que an nos encontramos en la ventana de estado). Cuando se entra en una sala de chat, automticamente se cambia a otra ventana; la lnea de estado nos dice el nmero de sta. Dicha lnea de estado nos ofrece, de izquierda a derecha, los siguientes detalles:
[Hora][Tu_Nick U (+Parametrosusuario)]U [Nmero_Ventana:U #Nombresala U (+Parmetroscanal)]

fcilmente en lo que respecta a riqueza y usabilidad. Irssi es una herramienta de la lnea de comandos, as que, en primer lugar se abre una consola y luego, para arrancar el programa, se escribe irssi. Se mostrar la ventana de estado, que es donde aparecen los textos del servidor y de ayuda. A continuacin puede introducirse /connect irc.nombre_servidor.com para seleccionar el servidor IRC que se haya elegido. Seguidamente, para introducirse en una sala de chat se escribe /join #nombresala o /j #nombresala. Si uno se conecta a mltiples servidores, Figura 1: La pgina web de Irssi cuenta con numerosos consejos para el puede presionarse programa de chat basado en texto, incluyendo varios scripts y temas. [Ctrl]+[X] para

Pulsando [Alt]+[Nmero_Ventana] se puede saltar entre ventanas (es decir, [Alt[+[1] lleva hasta la ventana de estado), o [Alt]+[Flecha] para cambiar a la ventana siguiente. Si se pulsa [AvPg] o [RePg] el texto se desplaza hacia arriba o abajo en la ventana.

Buenas Conexiones
Antes de comenzar a explorar las opciones de ventana, configuraremos nuestro ordenador para que se conecte automticamente a la red IRC cuando se arranca el programa. Para listar las redes IRC preconfiguradas se escribe /ircnet. Irssi conoce las redes ms importantes

WWW.LINUX- MAGAZINE.ES

Nmero 17

69

069-071_Chat

30.03.2006

12:42

Uhr

Pgina

70

LINUX USER Chat

tales como Efnet, Ircnet, Dalnet y Freenode. Si se desea aadir una nueva red IRC, se introduce /ircnet add nombre. Irssi guarda los servidores con la siguiente sintaxis:
/server add - ircnet U red direccin puerto

Puede especificarse un canal de la siguiente forma:


/channel add -auto U #sala red contrasea

La opcin -auto le dice que se conecte al servidor cuando se arranca el programa. Por ejemplo, si se desea configurar el acceso a irc-hispano.org, primero sera preciso establecer la red. Para ello, se escribe /ircnet add irc-hispano. A continuacin se aade un servidor a la red irc-hispano:
/server add -ircnet U irc-hispanoU thebe.irc-hispano.orgU 6667

De nuevo, Irssi puede usar la opcin -auto para permitir conectarse automticamente a un canal cuando se arranca el programa. El autocompletado de comandos (al igual que ocurre es Bash) es un efecto secundario positivo del almacenamiento de datos de esta manera. Supongamos que la conexin a irc-hispano se produce sin que se use la opcin -auto; para encontrar una sala de chat se escribe /conn[Tabulador] ir[Tabulador]. Irssi lo ampliar para ofrecer /connect irc-hispano. Esto funciona muy bien con salas de chat preconfiguradas y /save almacenar las entradas en ~/.irssi/config.

externos, para aadir una simple funcin que crea una calculadora y otras muchas cosas. La barra de estado muestra los nmeros de ventana de salas de chat en las que algo ha cambiado bajo [Act:]; esto puede suponer un problema si se dispone de un nmero considerable de salas de chat. Despus de todo, cmo se puede esperar que pueda recordarse el nmero de canal que est corriendo en la ventana nmero 8? Para presentar el nombre del canal junto con el nmero de ventana, se almacena el script chanact.pl [3] en ~/.irssi/scripts y se ejecuta el comando /script load chanact.pl para aadir el script. Si no se desea ejecutar el script cada vez que se arranca Irssi, lo copiaremos en ~/.irssi/scripts/autorum.

Listas de Nicks
Otra cosa que pueden echar de menos los veteranos de los chats es una lista de nombres de usuarios en el lado derecho de la ventana. Aunque se puede utilizar el comando de IRC /name para obtener una lista de usuarios, Irssi dispone de nuevo de una solucin grfica. Se descarga el script de Perl nicklist.pl [4], versin, 0.4.6, y se instala como ya se ha descrito anteriormente. No es mala idea crear una copia del script en ~/.irssi/scripts/autorum. Se necesita el administrador de ventanas de la consola screen (que debera venir preinstalada con la mayora de las distribuciones) para aadir una lista de nicks en la parte lateral de la pantalla de Irssi. Se arranca el programa escribiendo screen irssi y a continuacin, para cargar el script, /script load nicklist.pl. Finalmente se habilita la lista escribiendo /nicklist screen (Figura 3). Puede modificarse el ancho de la barra introduciendo /set nicklist_width: y se experimenta con un nmero entre el 10 y el 15 para establecer la anchura. /set/nicklist_automode screen le dice a la herramienta que ofrezca una lista de nicks la prxima vez que arranque el programa. El nico detalle nimio es que el script no parece soportar el modo de ventana dividida, de modo que irssi tiende a destellar de vez en cuando cuando se intenta usar el cliente en una sesin remota. Algunas salas de chat alojan ms de 100 usuarios al mismo tiempo. Aunque no todos pueden estar escribiendo al mismo tiempo, no hay manera de que quepan en la lista de nicks. El comando /nicklist scroll puede servir de ayuda en este sentido, y

ptica
Cuando se comienza a escribir en una sala de chat es preciso fijarse en unas cuantas cosas que podra desearse cambiar. Por ejemplo, la lnea de estado en la parte inferior y la de asunto en la parte superior son muy difciles de distinguir del texto de la ventana. Esto puede cambiarse si se instala un tema. Existen una gran variedad de temas coloreados para la consola Irssi en [2]. Se mueve el fichero descargado, nnombre.tema al directorio ~/.irssi, y luego se carga el tema a travs del comando /set theme nombre.tema (Figura 2). Si se abren distintas salas de chat al mismo tiempo es fcil perder la ventana a la que pertenece cada una de las salas de chat. En Irssi, los scripts en Perl pueden solucionar ste y otros problemas, pudindose encontrar muchos ejemplos acerca de estos en la Web [3]. As, puede usarse un script para integrar en Irssi el reproductor de mp3 basado en texto, Mp3blaster con Irssi, o para manejar URLs desde la sesin de chat a programas

Figura 2: La web posee temas para su descarga.

70

Nmero 17

WWW.LINUX- MAGAZINE.ES

069-071_Chat

30.03.2006

12:43

Uhr

Pgina

71

Chat LINUX USER

Figura 3: Una lista de nicks ayuda a seguir la trayectoria de la sesin de chat. (Ver la lista de nombres en la esquina superior derecha de la pantalla). Para aadir la lista, se descarga y habilita el script de Perl.

Figura 4: Si se escribe /help en la ventana de estado se consigue ver la lista de comandos (adems existen un gran nmero de pginas de ayuda en la web).

puede asignarse un atajo de teclado al comando. sta sera la forma de hacerlo:


/bind tecla command U nicklist scroll -3 /bind tecla command U nicklist scroll +3

deliberada (por ejemplo, abandonando KDE/Gnome). Usar screen es bastante complicado, pero la siguiente lnea de comandos puede ser de ayuda:
alias irssi=U 'if pgrep irssi;then screen -x U irssi;else screen -S U irssi irssi;fi'

o apaga el bot del ChanServ, o lo que es lo mismo, el operador de canal automtico. Es posible usar un alias para definir un parmetro ms corto, como sigue:
/alias BOTOFF U "msg chanserv set U #nombresala guard off"

Alternativamente, se abre el fichero ~/ .irssi/config en el editor de texto que se prefiera y se aaden las siguientes lneas al final del fichero:
keyboard = ( { key = "meta2-P"; U id = "command"; U data = "nicklist scroll -3"; }, { key = "meta2-Q"; U id = "command"; U data = "nicklist scroll +3"; } );

En el ejemplo se mapean las teclas [F1] y [F2]. Si se prefiere usar otras teclas distintas, en [5] existe una tabla que contiene diversos nombres para varias teclas de funcin.

Consejos y Trucos
Existen ms trucos que ayudan a modificar a Irssi segn los requerimientos necesarios. Es un buena idea echar un vistazo a los scripts en [3]. Se descubrirn todo tipo de curiosidades, con distintos grados de utilidad. El hecho de que el programa se ejecute en una ventana screen resulta prctico. Una vez que se arranca sobre X, permanecer en el fondo incluso si se cierra el terminal de ventana inadvertidamente o de forma

Este alias se puede aadir al fichero .bashrc en el directorio home. Lo que hace este comando es arrancar Irssi en una ventana de screen y comprueba que se est ejecutando el cliente. Si el programa an est ejecutndose, el comando continuar con la sesin actual. Irssi permite definir atajos de teclado para comandos complejos con innumerables parmetros y opciones. Existen dos tipos de comandos: los que se corren con bastante frecuencia, pero en variedad de escenarios, y aqullos otros que necesita correr cada vez que contacta con el servidor. Puede usarse la opcin autosendcmd para manejar la ltima categora. Puede usarse un comando de este tipo para registrar el nombre de nick propio con Nickserv. El que sigue aade esta opcin:
/ircnet add -autosendcmd U "/^msg nickserv identify U Contrasea; wait -freenodeU 2000" freenode

ahora, escribiendo /botoff se eliminar el bot del ChanServ.

Conclusiones
El cliente de chat basado en texto Irssi es una herramienta muy poderosa y, gracias a los scripts de perl, se le puede atribuir una extensibilidad casi ilimitada. Este programa es una buensima eleccin si se disfruta trabajando en la lnea de comandos. El volumen completo de comandos y las configuraciones pueden llegar a intimidar a ms de uno, ms an si se echa un vistazo a los scripts que controlan a los clientes que comparten ficheros o al lector de noticias. Pero que nadie se asuste: cada cual puede decidir qu funI ciones de Irssi puede usar.

RECURSOS
[1] Irssi download: http://irssi.org [2] Temas de Irssi: http://irssi.org/themes [3] Scripts de Irssi: http://irssi.org/scripts [4] Script de la lista de nicks: http:// wouter.coekaerts.be/site/irssi/nicklist [5] Mapeado del teclado de Irssi: http:// wouter.coekaerts.be/site/irssi/ keybindings

El comando contacta con el servicio de Nickserv en la red Freenode. Comandos frecuentes requieren un mtodo diferente: por ejemplo, /msg chanser set #nombresala guard off, arranca

WWW.LINUX- MAGAZINE.ES

Nmero 17

71