Viviendo sin entorno gráfico (X/Wayland)

  Hace un tiempo me mencionaron la idea de pasar una semana "al negro", esto es sin entorno gráfico. Lo primero que se me vino a la mente fue que no podría ver videos o navegar o escuchar música o usar telegram,etc.
  Bueno pues me entró la curiosidad y me puse a configurar una máquina virtual con gentoo pero sin entorno gráfico. Hace tiempo quería crear una máquina virtual para probar cosas como por ejemplo usar libressl en lugar de openssl así que aproveché la instancia. Luego de instalar gentoo con libressl lo primero que hice fue instalar w3m que es un navegador web para el terminal. Existen otras alternativas como por ejemplo links pero en mi caso w3m instalaba menos dependencias. para abrir una página simplemente escribimos:

user $ w3m chilemagic3000.cl

  Lo que nos mostraría algo así:

  Es aquí donde empiezan los problemas.. O navego o uso otra cosa, pero no ambos al mismo tiempo. Recuerden que no tenemos ventanas por lo que cada aplicación que abramos se irá a pantalla completa y no nos dejará ni siquiera usar la consola del sistema. Esto se vuelve muy poco práctico ya que en general necesito estar en la web mientras edito documentos o programo, un desafío sin entorno gráfico eh?
  La solución es simple (quizás no para todo el público): usar emacs. Emacs es un editor, pero es capaz de ser mucho más. En él podemos tener el editor mismo, un navegador web, una terminal e incluso un cliente de chat de telegram. En gentoo es muy fácil instalar emacs, basta con un simple comando (es necesario habilitar la USE libxml2 para dar soporte al navegador web) y si quieres puedes habilitar el soporte global agregando la USE emacs a tu make.conf:

root # USE="libxml2" emerge --ask app-editors/emacs
# Opcional: Agregar la USE emacs al make.config y actualizar el sistema:
root # euse -E emacs && emerge -qvuDN @world

  No entraré en detalles de cómo usar emacs, con esto me refiero a los atajos del teclado o cómo se abren archivos. Lo que necesitas saber es que M-x significa "Apretar Alt + x" ; C-x significa "Apretar Control + x" y RET significa apretar Enter. Entonces abrimos emacs, y hacemos M-x eww RET escribimos chilemagic3000.cl y se abrirá el navegador web. Una vez abierto si apretamos C-x 3 RET se nos partirá la pantalla en 2 (como en un Tiling Window Manager) y podemos cambiarnos al buffer de la derecha con C-x o. Una vez en el buffer de la derecha podemos abrir otra cosa, en mi caso abriré la terminal de emacs "emacs shell" con M-x eshell. El resultado se ve así:

  Ya teniendo un navegador y terminal deberíamos poder desempeñarnos de forma normal sin problema. Pero porqué no ponernos un poco locos? Lo primero que se me ocurrió fue usar telegram. ¿Telegram web? NO. ¿Telegram desktop? NO. La respuesta es telega, un cliente no oficial hecho para usar desde emacs. Podemos encontrar las instrucciones para instalar en la página de github de telega. Luego de instalar las dependencias listadas instalamos la librería tdlib (ojo, es un poco pesada de compilar, recuerda tener un swap de al menos 2gb y no realizar nada más mientras se compila).

  Otro problema con el el que encontré fue agregar MELPA a emacs, ya que la página melpa.org necesita soporte para JavaScript y el navegador eww de emacs no tiene soporte para Javascript tuve que improvisar. Alojé el código en chilemagic3000.cl/melpa.org y desde allí fue mucho más fácil copiar y pegar el código como se ve en la animación de acá abajo:

animated

  Ya con el código de melpa cerramos emacs con C-x C-c y volvemos a abrirlo. Ahora que inició con melpa hacemos un M-x package-refresh-contents RET y luego M-x package-install RET escribimos telega le damos enter y comenzará a instalar telega. Ya instalado abrimos telega con M-x telega RET, configuramos el número de teléfono y ya podemos chatear.