Notxor tiene un blog

Defenestrando la vida


Configuración de Jabber en emacs.

Este post va a ser muy corto. El tema es que estaba hablando ayer con Ángel de uGeek, un blog-podcast sobre tecnología. Estábamos hablando sobre Jabber o XMPP y los programas que lo soportan. Y apareció el comentario de «existe un paquete para emacs que soporta Jabber o XMPP. Y aquí he venido yo a cansinar otra vez con el emacs y esta vez va de comunicaciones y mensajería.

¿Qué es Jabber (XMPP)?

XMPP es un estándar abierto de mensajería, también se le conoce como Jabber. Lo bueno de este sistema es que puedes montarte tu propio servidor de mensajería y conectarlo a una red federada de servidores, de modo que puedes conversar con otras personas sean cuales sean sus servidores. Por ejemplo, en la conversación del otro día, Ángel hablaba desde su cuenta de Disroot mientras yo lo hacía desde mi cuenta de suchat con toda normalidad. Se intercambiaron no sólo conversaciones escritas, también mensajes de sonido en un entorno cifrado con OMEMO.

La funcionalidad, como cualquier sistema de mensajería instantánea, no hace falta explicarla. Basta pensar en aplicaciones tipo «güasá», para saber lo que hace este sistema; solo que lo hace desde un punto de vista descentralizado. Lo viene haciendo desde 1999 y una de las críticas que he visto por Internet es que debería actualizarse el protocolo. Sin embargo, como dice el famoso aforismo: Si funciona, no lo toques.

Clientes de Jabber (XMPP)

Lo único que necesitas para utilizar este sistema de mensajería es una cuenta. Las cuentas parecen direcciones de correo, tienen un símbolo @ separando el nombre del servidor del estilo nick@servidor.com. Si queréis añadirme a vuestra lista de contactos podéis darme un toque con el nick «notxor» en «suchat.org».

Hay clientes para todos los sistemas operativos. Como en el entorno en el que han tenido más éxito este tipo de aplicaciones es en la telefonía móvil, recomiendo la aplicación Conversations que se puede encontrar en el repositorio libre https://f-droid.org, aunque también en la tienda de la gran G.

En GNU/Linux también se puede utilizar algunas aplicaciones como gajim o Psi+. Es posible que existan también aplicaciones (o versiones de éstas) para el «Güindón del Bili Puertas», pero como las desconozco no hablaré sobre ellas. En todo caso, recomiendo sólo las que estoy seguro que soportan encriptación OMEMO, por razones de seguridad.

Pero hoy he venido a hablar del paquete jabber.el para emacs.

El paquete jabber.el

Instalación

Como cualquier paquete de emacs que está en MELPA. Supongo que la mayoría de los que puedan leer este artículo sabe cómo. Sin embargo, lo pongo aquí por si alguien nuevo en el mundillo de emacs aparece a leerlo: M-x package-install RET jabber.el RET.

Configuración

Una vez instalado se puede utilizar llamando directamente al comando jabber-connect desde M-x. Emacs interrogará sobre la cuenta y la contraseña y se conectará sin más necesidad de configuración. Si quieres automatizar todo y que haciendo la conexión emacs sepa a qué servidor y con qué cuenta se debe conectar hay que hacer algo con la configuración.

Sólo hay que rellenar la variable jabber-account-list con los datos de las cuentas que se quieran configurar. Por ejemplo:

;;; Configuración de jabber
(setq jabber-account-list '(
                            ("notxor@suchat.org"
                             (:password . "")
                             (:port . 5222)
                             (:connection_type . starttls))
                            ("notxor@ingobernable.net"
                             (:password . "")
                             (:connections_type . ssl))
                            ))

Yo las he rellenado con mis dos cuentas... se pueden ver (excepto las contraseñas, por razones evidentes), los parámetros de conexión.

Me sirven además, porque me conecto a cada una de ellas de una manera distinta: a la cuenta suchat.org utilizo el protocolo starttls al puerto 5222, mientras que a la otra hago una conexión por ssl al puerto por defecto (que es el 5223, si no recuerdo mal.

Se pueden configurar muchos más parámetros, como avatar, notificaciones y muchas otras cosas. Recomiendo leer la documentación para conocer todos los detalles.

Si configuras la variable jabber-account-list aparecerá en el menú de emacs un desplegable de Jabber, para conectar, desconectar y demás opciones del servicio de mensajería. Como yo no lo quiero permanente allí, lo que he hecho es guardarlo en fichero que he llamado cuentas-jabber.el. Cuando quiero conectarme cargo ese fichero con load-file y después hago el jabber-connect-all, para que me conecte a todas.

Uso del paquete

Lo mejor es leer la documentación, pero voy a dar un par de pinceladas para usarlo así de primeras. Ya, ya. Esa frase ha sonado a «lee el puto manual» de siempre, pero con más mano izquierda. Voy a suponer que el usuario nunca ha utilizado Jabber (XMPP) como mensajería, y menos en emacs.

Si, como en el punto anterior cuento, ya has hecho la conexión con el comando M-x jabber-connect-all, o C-x C-j C-c, o con el menú ─si somos aficionados al ratón─, ya estás en condiciones de hablar con tus contactos. Como en otras aplicaciones tenemos una «ventana» con la lista de nuestros contactos (en emacs es un buffer de nombre jabber-roster1. Si pulsamos RET en cualquiera de nuestros contactos, jabber.el nos abrirá un buffer con el nombre jabber-chat-nombre@servidor1 donde podemos hablar directamente con el contacto seleccionado. Pongo una captura de pantalla, en mi sesión i3wm, con emacs escribiendo este artículo a la vez que chateo conmigo mismo. Se ve en la barra superior, donde aparece con quién estamos hablando ─el avatar incluido si tiene alguno el usuario─, el estado de conexión y demás. Luego hay un espacio con los mensajes intercambiados y después de una línea --- podemos escribir. Escribir mensajes largos es complicado, porque pulsar RET enviará lo escrito bajo los tres guiones, aunque se puede hacer el salto de línea con C-j. También destaco que el último mensaje ha llegado cifrado con OMEMO para que se vea que se muestra un mensaje de aviso, pero no el mensaje.

captura-jabber-emacs.png

Vista la imagen: ¡ni mil palabras más!

Conclusiones

jabber.el es una herramienta sencilla y casi completa. No soporta cifrado OMEMO, pero supongo que eso no será demasiado importante si el «güasá» ha sido la principal aplicación de mensajería sin ningún tipo de cifrado durante muchos años. Además Jabber (XMPP) no está asociada a ningún dato personal, como el número de teléfono. Por lo tanto es un sistema bastante más anónimo y descentralizado que merece la pena explorar.

Ahora también lo podemos utilizar sin salir de nuestro editor favorito.

Nota al pie de página:

1

He omitido los pares *- y -* en el nombre del buffer por problemas en la generación del código html desde org-mode.


Comentarios

Debido a algunos ataques mailintencionados a través de la herramienta de comentarios, he decidido no proporcionar dicha opción en el Blog. Si alguien quiere comentar algo, me puede encontrar en Mastodon y en Diaspora con el nick de Notxor.

También se ha abierto un grupo en Telegram, para usuarios de esa red.

Disculpen las molestias.