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-roster
1. Si pulsamos RET
en cualquiera de nuestros
contactos, jabber.el
nos abrirá un buffer con el nombre
jabber-chat-nombre@servidor
1 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.
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.
Footnotes:
He omitido los pares *-
y -*
en el nombre del buffer por
problemas en la generación del código html
desde org-mode
.
Comentarios