Artículo 7: CLIENTES GRAFICOS DE IRC

Autor: (c) Santiago Romero
Revista: NetOnline (Prensa Técnica) n 18, Febrero-1999


En la anterior entrega vimos los comandos básicos del sencillo cliente de IRC ircII. En esta entrega se comentarán otros clientes de IRC más complejos, como BitchX. TkIRC, Kirc, Zircon, Kzirc o Circus, que harán nuestra conversión más sencilla con las diferentes opciones gráficas que se incluyen.


EL CLIENTE TKIRC

TkIRC no es un cliente de IRC en sí mismo, sino que utiliza como programa de IRC el famoso ircII, comentado en la anterior entrega, proporcionando un front-end gráfico (una especie de menúes encargados de interactuar con el propio ircII), facilitando enormemente las tareas más habituales en el IRC. El programa puede obtenerse desde la página Web de sus creadores, www.north.de/~atte/tkirc, y ocupa apenas unos 100Kb. Para su utilización es necesario tener instalado el propio programa ircII, y el intérprete de Tcl/Tk v8.0 como mínimo, que es el lenguaje con el que está programado este front-end para X Window. Además es posible añadirle scripts (ficheros con nuevos comandos y opciones) en tcl, lo cual le quita muchas limitaciones al programa (siempre puede ser ampliado por el usuario).


CLIENTES DE KDE: KIRC Y KSIRC

Kirc y Ksirc son 2 clientes de IRC para el Window Manager KDE. Son bastante visuales y disponen de interesantes opciones, pero todavía están en fase de desarrollo, aunque pueden obtenerse versiones estables de los mismos en www.kde.org, en la página de aplicaciones de KDE.


BITCHX

Uno de los clientes de IRC más potentes de los comentados hoy es BitchX, que trabaja en consolas de texto pero con facilidades propias de los clientes gráficos. Incluye gran cantidad de comandos y scripts, de tal modo que los más usados scripts de ircII han sido incluidos en este cliente como comandos del mismo. Es posible obtenerlo de ftp://ftp.bitchx.org (aunque también hay disponibles versiones rpm en el ftp de redhat). Asimismo, podemos obtener scripts y opciones adicionales para BitchX en http://www.phantasy.com/~markm/bitchx y http://scripts.bitchx.com. Aunque por su nombre y la X final del mismo pudiera parecer que es un programa para X Window, en realidad BitchX funciona en consolas de tipo texto o xterm, con lo que no necesitaremos el entorno de ventanas X para hacerlo funcionar.

BitchX

BitchX incluye una serie de características que lo hacen generalmente apreciado como cliente de IRC, gracias a opciones como Nick Completion, inclusión de los scripts más utilizados como comandos estándar del mismo, soporte multiventana (tanto partida como en ventanas virtuales), soporte de colores para distinguir los textos dirigidos a nosotros del resto de frases, modo historia de todo lo escrito (es decir, que se puede recorrer todo lo escrito mediante las teclas del cursor arriba y abajo, pudiendo reentrar cualquier frase al canal), tratamiento de la ventana como un buffer (con lo cual se puede subir y bajar por la misma con AvPág y RePág), etc. Otra de sus principales características es que cuando alguien trata de floodearnos (es decir, enviarnos mucho texto muy rápidamente, tal vez tratando de molestarnos o estropear nuestra conexión), BitchX lo tira automáticamente de la conversión, además de incluir opciones de autoentrada en canales si alguien nos tira del mismo. Asi pues, debe quedar claro que BitchX es uno de los clientes de IRC más completos y funcionales, con muchos seguidores (aunque también hay gente que no le gusta).

Para iniciar BitchX se hace, pues, desde la línea de comandos, indicándole en esta el nickname que deseemos usar en el IRC, el servidor de IRC y el puerto (esto último opcional), todo ello en formato <BitchX Nick Server:Puerto>. Ejemplo:

Entrando en el irc con BitchX


[sromero@compiler BitchX]$  BitchX  Juan  irc.arrakis.es

Si no queremos especificar esto desde la línea de comandos es posible utilizar variables de entorno que definan el Nick, Servidor, y nombre del usuario para poder invocar al cliente de IRC simplemente mediante <BitchX>. Para ello BitchX proporciona al usuario la posibilidad de incluir estos datos en las variables de entorno IRCNAME, IRCNICK e IRCSERVER, tanto en ficheros de inicialización (.bashrc, .profile) como en la línea de comandos, tal y como puede verse en el siguiente ejemplo:


[sromero@compiler BitchX]$  export  IRCNAME="Juan Sanchis"
[sromero@compiler BitchX]$  export  IRCNICK="JuanChis"
[sromero@compiler BitchX]$  export  IRCSERVER="irc.arrakis.es"


COMANDOS DE BITCHX

Con BitchX es perfectamente posible utilizar los comandos básicos del IRC vistos el mes pasado mediante ircII, es decir, /server, /quit, /join, /part, /query, etc. Aparte de estos, ahora sí que es posible la utilización del comando /list para listar los canales del servidor de IRC. Recordemos que este comando también estaba disponible en ircII, pero la salida por pantalla era tan rápida que era imposible ver los canales disponibles. En BitchX la salida es igual de rápida, pero disponemos de las teclas AvPág y RePág para subir y bajar en el buffer de la ventana, y por tanto ver los canales una vez listados (o leer textos anteriormente escritos en un canal, consultar algo que dijimos, etc.).

Una vez se entra a un canal (con /join #canal), es posible ver la lista de operadores del canal mediante la tecla F2, y la lista de usuarios mediante F3 (aunque sigue pudiendo usarse el comando /names #canal).

Por último, y en cuanto a texto se refiere, cabe nombrar el soporte de colores y estilos de BitchX. Por ejemplo, para escribir un texto en negrita, basta con pulsar Ctrl+b (de bold, resaltado), y despues escribir el texto en cuestión, que aparecerá en negrita (ojo con esto pues los usuarios de ircII no lo verán así), y para escribir frases en colores, en cualquier punto de la frase puede utilizarse Ctrl+C y a continuación introducir en la frase el número de color (soltando Ctrl+C), con lo que aparecerá en el color correspondiente. Ejemplo:


> Hola a <CTRl+C>2todos!

Hará que aparezca "todos" en azul.

Otros comandos que pueden utilizarse en BitchX son /shell (para ejecutar copias de nuestra shell de comandos) /telnet (para hacer telnet a cualquier servidor desde dentro de BitchX), y /ftp (para hacer ftp desde el IRC), comandos no habituales en los restantes clientes de IRC.


NICK COMPLETION EN BITCHX

Una de las cosas más molestas en el IRC al haber diferentes personas en un canal y querer referirnos a una de ellas suele ser escribir el nombre del mismo, pues la mayoría de nombres en el IRC contienen carácteres extraños, son combinaciones de mayúsculas y minúsculas, o simplemente, puede apetecernos no escribir dicho nombre pero que esa persona sepa que le hablamos a ella. Para ello BitchX incorpora una funcionalidad conocida como Nick Completion, o completado de nicks, que consiste en que al pulsa la combinación de teclas CTRL+R, BitchX tratará de completar el nick que hayamos comenzado a escribir en la línea de comandos, esta tecla puede usarse en cualquier momento de la frase, y sus efectos se pueden observar en el siguiente ejemplo. Supongamos que existe un usuario en el IRC llamado AvIaToR, al cual queremos contestar o comentarle algo:


> Av<CTRL+R>: Como estas?
> Ya te lo he dicho antes, Av<CTRL+R>...

Estas 2 frases se expanderán automáticamente a:


> AvIaToR: Como estas?
> Ya te lo he dicho antes, AvIaToR...
Otra posibilidad es utilizar la combinación de teclas Control más la tecla de '+' (CTRL+'+'), que al principio de una frase completa el nick que hayamos comenzado a escribir y lo completa con 2 puntos (:), para dirigir frases directamente a cualquier usuario:


> Av<CTRL+'+'> lo estoy buscando...

Se expande a:

> AvIaToR: lo estoy buscando...

Una última posibilidad es la utilización de la tecla TAB al principio de una frase, que se expanderá a un /msg Nick, donde Nick será uno de los usuarios del canal y cambiará dependiendo del número de veces que sea pulsada (una vez, aparece el primer usuario, otra vez, el segundo, etc.). Esto nos permitirá enviar mensajes con relativa facilidad a cualquier usuario del canal.


BITCHX: SOPORTE MULTIVENTANA

Una de las características principales de BitchX es el soporte multiventana nativo. Al igual que en ircII, es posible entrar en varios canales o conversaciones simultáneamente, y que aparezcan todos ellos en la ventana principal de BitchX, con una indicación al principio de cada uno de ellos que nos indique de qué canal viene cada frase. Esto es muy molesto y bastante inviable, y además solo hay un canal activo (al que va el texto que escribimos) que podemos cambiar mediante la tecla CTRL+X (con lo que irá cambiando entre los diferentes canales a cada pulsación de la misma). Para evitar esto BitchX incluye soporte multiventana tanto en pantalla partida como en ventanas virtuales, es decir, es posible partir la pantalla en diferentes secciones y disponer de un canal o un query en cada una de ellas, así como crear diferentes pantallas virtuales (de la que sólo vemos una, la visible) y cambiar entre ellas, con lo que dispondríamos de una ventana aislada para cada canal, y el texto no se mezclaría.

Para partir la pantalla es posible utilizar el comando /window new, y para crear una pantalla virtual (mucho más recomendable) se utiliza el comando /window new hide. Este comando puede ser utilizado tantas veces como pantallas virtuales se deseen, de tal modo que irán siendo numeradas desde el 2 (la 1 es la pantalla que aparece por defecto) hasta n (donde n es el número de pantallas creadas). Una vez se han creado las diferentes ventanas es posible cambiar entre ellas mediante ALT+n (ALT+1, ALT+2, etc.) o mediante ESC-n (en el caso de Escape, no pulsadas simultáneamente, sino pulsar un número tras liberar la tecla ESC), según estemos en consola de texto o en un xterm de X Window. De esta forma, si deseamos disponer de 3 ventanas virtuales, con el canal #linux en la primera, #programacion en la segunda, y una conversación privada en la tercera, es posible hacer lo siguiente:


> /window new hide
> /window new hide
> /join #linux
> ALT+2 o ESC-2
> /join #programacion
> ALT+3 o ESC-3
> /query JuanChis

Una vez hecho esto dispondremos de las 3 ventanas creadas y ya podremos ir a cualquiera de ellas a decir las frases relativas a cada canal, sin que las salidas se mezclen en pantalla ya que BitchX nos separará la salida de las mismas a cada canal. Se puede decir, pues, que cada comando /join, /part o /query se aplica a la pantalla virtual que tengamos activa en ese momento.

A continuación se ofrece un extracto de la ayuda en línea proporcionada por BitchX para el uso de combinaciones de teclas y la diferentes opciones relativas a ventanas (tanto secciones de pantallas partidas como ventanas virtuales):

> Control+W+'-' = Hace la sección actual una línea más estrecha.
> Control+W+'+' = Hace la sección actual una línea más ancha.
> Control+W+l     = Lista las ventanas disponibles.
> Control+W+k    = Elimina la ventana/sección actual.
> Control+W+h    = Oculta la ventana/sección actual.
> Control+W+b    = Iguala el tamaño de las secciones.
> Control+W+n    = Cambia a la ventana siguiente.
> Control+W+p    = Cambia a la ventana anterior.

A parte de estas teclas, están disponibles AvPág y RePág para moverse por el buffer de cualquier ventana y los cursores arriba y abajo para recuperar frases anteriormente escritas.


BITCHX: ENVIO DE FICHEROS

En BitchX también es posible la transferencia de ficheros vía DCC, para ello se disponen del típico comando /dcc send <nick> <fichero>, del que ya disponíamos en ircII. La novedad de BitchX es que incluye por defecto la opción de aceptar todos los ficheros que te sean enviados, opción que se puede cambiar mediante /dcc auto off, de tal modo que cuando se nos envie un fichero, en lugar de ser aceptado automáticamente se nos informará de esto y mediante la tecla F5 se podrá obtener la lista de ficheros que nos son enviados, para aceptar cualquiera de ellos si nos interesa.


SCRIPTS EN BITCHX

Para utilizar scripts en BitchX (funciones y comandos nuevos para un cliente de IRC), tan sólo hay que copiarlos en el directorio .BitchX y cargarlos luego en el programa mediante /load script, teniendo el comando disponible a partir de ese momento. Lo importante de BitchX es que los scripts pueden proporcionar un aspecto diferente al entorno del programa, al ser este totalmente programable, con lo que las posibilidades de BitchX son realmente ilimitadas.


EL CLIENTE CIRCUS

El sencillo cIRCus es uno de los mejores clientes de IRC de Linux. Pese a estar siendo desarrollado actualmente, la version 0.43 es muy estable y puede obtenerse en diferentes formatos (tar.gz y rpm) en la página Web de sus creadores, http://www.nijenrode.nl/~ivo/circus_data/download.html. Circus presenta un atractivo entorno, características multiventana (al estilo de mIRC para Windows), la utilización de colores distintos para nuestros comentarios y los del resto de participantes en el IRC, así como la posibilidad de activar autoraise en las ventanas que deseemos. Autoraise es una propiedad que hace que cuando el contenido de una ventana cambia, ésta pase al primer plano, y sepamos que quien está hablando con nosotros ha dicho una nueva frase. Además soporta correctamente todos los acentos y carácteres españoles, y permite copiar/pegar con el mouse, sin olvidar que puede usarse arriba y abajo en los cursores para ir adelante y atrás en el historial de órdenes, pudiendo repetir así cualquier frase dicha en el pasado.

Por otra parte, cIRCus tiene un sencillo menú en la parte superior con botones que sustituyen a las opciones de conexión, desconexión, entrada en canales (join), dar op, quitar op, dejar un canal, o salir del programa, pudiendo ejecutar además los comandos de IRC aprendidos el mes pasado, con lo que se puede decir que este programa aporta sencillez y funcionalidad a la potencia de los comandos del IRC. Su configuración se realiza editando un fichero de texto llano en nuestro directorio HOME (/home/nombre/.circusrc), desde donde podemos cambiar cualquier aspecto del programa: fuentes, menúes o identidades (al final del fichero, secciones Nick, IRCNAME, notify y Server List, las cuales nos permitirán especificar nuestro nick, nombre del cliente, lista de notificaciones y lista de servidores de IRC por defecto).


ZIRCON

Zircon (http://catless.ncl.ac.uk/Programs/Zircon/) es otro cliente de IRC basado en Tcl/Tk (aunque este no necesita ircII para funcionar sino que utiliza las propias facilidades de red de este lenguaje). Necesitaremos al menos la versión 8.0.3 de este intérprete para su instalación, que se realiza desde un script de Tcl/Tk llamado installZircon, quien se encargará de la correcta ubicación del programa en nuestro disco duro, además de permitirnos la lectura de documentos de ayuda y FAQs sobre Zircon.


INSTALAR UN SERVIDOR DE IRC

Mediante Linux no sólo podemos conectarnos a los IRC existentes (como el IRC Hispano, por ejemplo), sino que también es posible obtener servidores de IRC para convertir nuestra máquina en punto de encuentro de amiguetes o usuarios varios. Para ello simplemente hay que obtener, instalar y configurar un servidor de IRC en nuestra máquina, como ircd. La versión que utiliza el autor es la 10.02, (fichero ircu2.10.02-LinuxELF.tar.gz, ver http://www.argo.es/~jcea/irc/ircd.html, una estupenda página sobre redes e IRC), que consiste en un fichero tar.gz descomprimible con tar -xvzf ircu2.10.02-LinuxELF.tar.gz, con los siguientes ficheros:


[sromero@compiler ircd]$ ls
Authors       LICENCE       config.h      ircd*         ircd.motd     ircd.rehash*
INDEX         README        example.conf  ircd.conf     ircd.off*     remote.motd

Una vez descomprimido (aunque también están disponibles las fuentes para compilar el programa adaptándolo a nuestras necesidades), y como se comenta en el README del programa, basta con editar el fichero de configuración ircd.conf y adaptarlo a nuestras necesidades, para luego ejecutar el daemon ircd. Esto se hace mediante la ejecucación del daemon ./ircd, con un usuario que no sea root, preferentemente llamado irc) para inicializar el daemon de irc, y permitir hasta 252 conexiones a nuestro sistema. Lo más recomendable es instalar la versión rpm (o deb, conviertiendola mediante alien) creando previamente un usuario llamado irc (con adduser) y cambiando su password a nada (a una cadena vacía, editando /etc/passwd o mediante el comando passwd), para despues instalar el rpm de ircd:


[sromero@compiler ircd]$  adduser irc
[sromero@compiler ircd]$  rpm -i  ircd.rpm
 
Para finalizar el uso del daemon de irc basta con ejecutar el script ircd.off. Una manera mucho más sencilla y que configurará adecuadamente ircd para necesidades medias es la instalación a partir del formato rpm, muy recomendable si no conseguimos que funcione la versión tar.gz. Este rpm (creado por Pablo Saratxaga, habitual de es.comp.os.linux) puede obtenerse de la Web de S.u.S.E (www.suse.com), entrando en su FTP, o desde cualquiera de sus mirrors: ftp://ftp.tu-chemnitz.de/pub/linux/suse/5.3/i386.de/suse/n1/ (fichero ircd.rpm). Además dispone del fichero ircd.conf correctamente configurado para el servidor de IRC, y tan sólo habremos de modicarlo si queremos que ircd corra en una red de servidors. Otro fichero interesante es ircd.motd, que nos permitirá variar el mensaje a la entrada de nuestro IRC.

Una vez instalado el daemon/servidor de irc, es posible testear nuestro servidor accediendo a nuestra propia máquina:


[sromero@compiler ircd]$  irc  Juan  localhost:6667

Si todo está correctamente instalado será posible entrar en diferentes consolas virtuales y repetir el proceso para tener varios usuarios en nuestro IRC. Ya sólo nos falta, pues, editar el fichero ircd.conf para dotar a nuestro irc de los canales, comandos y datos que tengamos pensados para él, y dar nuestra dirección IP a las personas que queramos que se conecten al mismo.


EN RESUMEN

Hoy hemos terminado de ver las distintas posibilidades que se nos ofrecen en Linux para la conexión al servicio de Internet Relay Chat, no sólo variadas sino que algunas de ellas son realmente potentes. Ahora es el turno del lector para elegir su cliente de IRC favorito en el Sistema Operativo Linux.

NOTA: Actualmente uno de los mejores clientes de IRC es, sin duda, KvIRC (www.kvirc.com). Muy muy recomendable :-).

Figura 1: "Entrando en el IRC con BitchX."
Figura 2: "El cliente BitchX."
Santiago Romero


Volver a la tabla de contenidos.