jitsi o cómo tener tu servicio de videoconferencia

En el capítulo de hoy de ‘Escapando del influjo de Google’ os vamos a contar como instalarte, de forma rápida y sencilla, un sistema de videoconferencia que puede correr en sistemas pequeños y con el que dejarás de depender de terceros a la hora de reunirte con la familia y amigos. Porque en estos días de encierro, las herramientas de videoconferencia están haciendo su particular agosto en la recopilación de todo tipo de datos (si, zoom, hablo de ti). Como no podía ser menos, el software del que os voy a hablar es open source, se puede instalar en tus propias máquinas o nubes y se llama Jitsi.

Es modular y escalable pero para usos por debajo de los cien usuarios concurrentes no hace falta mucha máquina. Yo lo he instalado en una instancia EC2 micro y me ha servido para casi diez usuarios. Hay que tener en cuenta que el javascript del que depende la mayoría del procesamiento se ejecuta en cada navegador y que, esos si, se pueden poner al rojo vivo.

Consideraciones previas

Por supuesto, la instalación la he hecho sobre una Debian GNU/Linux 10, buster.

El proceso de instalación de jitsi es tan sencillo que este procedimiento lo puedes aplicar en tu servidor de casa o en una instancia que tengas perdida por alguna nube. Lo único que tienes que tener en cuenta es que hay ciertos puertos que deberás abrir, ya sea en tu router o en algún recurso de la nube.

Yo voy a usar apache como servidor web, porque lo conozco más y porque lo tenía instalado en el servidor pero jitsi no tiene preferencias. Durante la instalación busca el servidor web que ya esté configurado (apache o nginx) y, en caso de que no haya ninguno, instala nginx por defecto. También le voy a instalar un certificado de Let’s Encrypt al virtualhost para cifrar las comunicaciones.

Puertos necesarios

Como parto de la base de que [email protected] tenemos una conexión directa a internet en nuestros servidores sino que la pasamos por algún tamiz, llámese router, vamos a tener que abrir varios puertos de cara a que funcione todo.

ProtocoloPuertoCIDR InternetMotivo
TCP800.0.0.0/0Es necesario resolver el desafío de certbot para instalar el certificado y va por este puerto
TCP4430.0.0.0/0El tráfico llegará por este puerto
TCP44430.0.0.0/0Si no abres este puerto, no tendrás video fuera de tu LAN
UDP100000.0.0.0/0Si no abres este puerto, no tendrás video fuera de tu LAN

Subdominio

Es necesario crear un subdominio que apunte al servidor. En mi caso será meet.debianhackers.net (es ficticio, no os matéis intentando encontrarlo :)).

Instalación de jitsi

Instalación del certificado de Let’s Encrypt

Es tan sencillo como ejecutar un script:

Acceso y configuración

En este punto ya tienes tu servidor de videoconferencias instalado. Para acceder basta apuntar tu navegador favorito (firefox, firefox, firefox… :)) al subdominio que has creado, meet.debianhackers.net.

Las salas se crean bajo demanda y se destruyen cuando las abandona la última persona. Como medida de seguridad se les puede asignar una contraseña para restringir el acceso.

También se le puede instalar módulos para autenticar usuarios contra un LDAP o AD, para grabar las videoconferencias o enviarlas a YouTube y varias cosas más. Quizá en un futuro amplíe este manual…

¡Qué el confinamiento nos sea leve!

jitsi
si, es mi cara de confinado…
 

La evolución del COVID-19, en tu terminal

Tan fácil como hacer un curl:

$ curl https://covid19tracker.xyz/spain

Podéis sustituir “spain” por el nombre o código de vuestro país en inglés.

Y darle las gracias (o invitar a un café) a Waren Gonzaga.

Sed buenos y quedaos en casa.

 

GPG Agent Pinentry

Entrada exprés para contaros una pequeña batalla con pinentry-gnome3 y cifrado de mails en claws-mail, por si os topáis con el mismo problema. Resulta que claws-mail se congela cada vez que intento abrir un mail cifrado; raro, muy raro, llevo años utilizando este cliente de correo electrónico y es uno de los programas más sólidos con los que he trabajado, nunca falla. Dudo que el problema sea de claws-mail, así que me envío un mail sin cifrar y compruebo que lo abre sin rechistar. Vale, seguramente el error tenga que ver con alguno de los módulos que estoy utilizando para cifrar el correo: PGP/Core o PGP/MIME. Lanzo claws-mail en modo debug y me guardo la salida en un fichero de texto para revisarla después:

$ claws-mail --debug > debug.txt

Intento abrir un correo cifrado, la interfaz se vuelve a colgar. Compruebo el log y veo que los módulos asociados a GPG cargan sin problema. Ni idea de qué está pasando, pero se me ocurre que si el log no tira errores, pero la interfaz se cuelga quizá el problema es que el programa está esperando una acción por mi parte que no se muestra en pantalla… una acción como por ejemplo introducir la contraseña de cifrado para desencriptar los mensajes. Y allá voy, lanzo claws-mail desde el terminal y vuelvo a intentar abrir un mail cifrado ¿adivináis qué? El cuadro de diálogo para introducir la contraseña de cifrado (pinentry) me aparece en el terminal (en la versión ncurses). Acabamos de cazar el bicho, el fallo viene de la versión GUI de pinentry. Ni idea de qué versión estoy utilizando así que:

$ aptitude search '~i pinentry'

Me dice que tengo instalados:

pinentry-curses pinentry-fltk pinentry-gnome3 pinentry-gtk2

Así que me voy a /usr/bin a ver a donde apunta el binario:

$ ls -lah /usr/bin | grep pinentry
pinentry -> /etc/alternatives/pinentry

$ ls -lah /etc/alternatives/pinentry
/etc/alternatives/pinentry -> /usr/bin/pinentry-gnome3

Ahí tenemos el origen del problema, pinentry-gnome3. Si lo ejecuto desde el terminal, me dice que:

No $DBUS_SESSION_BUS_ADDRESS found, falling back to curses OK Pleased to meet you

Ahora podemos hacer dos cosas, intentar entender qué está fallando con ese programa en particular, o sustituirlo por otro. Empecemos por la segunda:
# update-alternatives --config pinentry

Y seleccionamos pinentry-gtk2. Reiniciamos gpg-agent, volvemos a probar y voilà, la ventana para meter contraseñas está de vuelta y ya podemos descifrar e-mails de nuevo. Decido desinstalar pinentry-gnome3, total claws-mail sigue estando en GTK2, así que me da un poco igual que el pinentry también lo esté.

Para los curiosos que queráis saber de dónde venía el error o cómo solucionarlo, echad un vistazo aquí.

Hacía tiempo que no me peleaba con mi debian, testing nos tiene muy mal acostumbrados…

Happy hacking!!

 

Sway: un tiling window manager para wayland

Gentes del ciberespacio, no quepo en mí de gozo al encontrarme por pura casualidad con que sway, el fork de i3 para Wayland, está disponible en los repositorios de Debian testing. A tiro de:

# aptitude install sway

Que te instala ya de paso un gestor de fondos de escritorio, unos cuantos wallpapers y las imprescindibles suckless tools. Tampoco está de más instalar el idle management daemon (la traducción es un poco peliaguda, viene a ser un demonio para Wayland para gestionar procesos idle -es decir, que no están siendo utilizados por ningún programa en un momento dado-):

# aptitude install swayidle

Y por supuesto el screenlocker para evitar que os curioseen en los tres minutos que dejáis el ordenador para ir a por café:

# aptitude install swaylock

Sway mola. Mola de cojones. Mola tanto como i3, sólo que en lugar de utilizar Xorg utiliza Wayland. Y tiene casi todas las funciones de i3 más algunas extra (como los famosos gaps). Y si ya usas i3, vas a poder reciclar tu configuración, para que la transición sea lo más suave e indolora posible.

Dicho esto, yo ahora estoy utilizando dwm, así que no he probado extensivamente la versión de sway empaquetada en testing (1.4). Si pensáis migrar desde lo que sea que estéis utilizando, yo recomendaría mantener ambos instalados durante un tiempo, al menos hasta que hayáis comprobado que todo va bien. A su favor tengo que decir que cuando utilizaba i3 compilé una versión seguramente anterior a esta y no encontré ningún fallo que impidiera utilizarlo en el día a día.

Si os animáis a juguetear un poco, sed buenos y dejadnos vuestras impresiones en los comentarios.

Happy hacking!

Enlaces de interés:

Documentación de sway
Guía de migración desde i3
Chat de soporte
Subreddit sway

 

NO_PUBKEY 78BD65473CB3BD13 en un chromebook

Si en el chromebook falla la actualización de paquetes de debian del repositorio de Crostini, es porque la llave gpg ha caducado, uno de esos errores que uno no entiende y menos viniendo del mismísimo oráculo.

El error en concreto es este:

Y la solución es sencilla aunque está escondida. No hay que descargarse la llave del servidor keyserver.ubuntu.com porque ahí no está, hay que bajarla directamente de google:

wget -q -O - https://dl.google.com/linux/linux_signing_key.pub | sudo apt-key add -

fuente: https://forums.linuxmint.com/viewtopic.php?t=309679

De porqué tengo un chromebook con linux en lugar de una estación de trabajo con chorrocientos núcleos y RAM como para competir con SkyNet hablaremos otro día… 😀

 

¿Y si lo quiero con debian, qué?


Anastasia es una recién llegada a un montón de cosas: a debianhackers, a la administración de sistemas y, un poco menos, a linux. Pero suple su falta de experiencia con muchas ganas y batallando como una auténtica profesional. También su bisoñez le lleva a ver este sector, habitado por muchos de nosotros desde hace mucho, mucho tiempo, con otra óptica, una más limpia, con casi ninguno de los filtros que el resto, [email protected] [email protected], hemos ido poniendo para no ver lo que no nos gustaba. Ella no tiene esos filtros y se cuestiona porqué los tenemos el resto y porqué aceptamos cosas que en otras condiciones no haríamos. Y todo esto porque decidió comprarse un portátil nuevo en el que instalar debian. Personalmente creo que en debianhackers nos va a venir muy bien este aire nuevo, este torbellino.

diego


Soy tan novata en todo lo que a Linux se refiere que da un poco de vergüenza, pero resulta que esta falta de experiencia también me sirve para algo positivo: las cosas con las que me voy enfrentando acaban siendo toda una aventura. Hace más o menos un año, harta de años de guerra fría con MacOS y Windows decidí pasarme a Linux. Como la hartura era considerable y tenía poco que perder, decidí tirar por lo hardcore y me pase directamente a un Debian con MATE bastante casto y con cero florituras. Aquello fue un antes y un después.

Resultó que no solo mi pobre Acer con una i3 y características más que cuestionables había rejuvenecido como después de unas vacaciones en la costa Mediterránea con un grupo de IMSERSO sino que, por primera vez en mi vida, era yo la que estaba a cargo de lo que pasaba en mi máquina, de cómo funcionaba y qué quería hacer con ella. La decisión de cambiarme a Linux sin mirar atrás también tuvo consecuencias mucho más profundas (como un cambio de mentalidad y de profesión)… pero eso ya es otra historia.

La cuestión es que el viejo Acer peleó como un jabato pero llegó el momento, después de un año de feliz luna de miel con Linux, en el que un nuevo ordenador se convirtió en algo necesario. Y fue allí donde empezó mi odisea.

Tenía cierta (mucha) urgencia a la hora de comprarme un ordenador porque necesitaba disponer de él para una fecha concreta, así que me compré un Asus “gaming” sin sistema operativo porque fue lo mejor que encontré que pudiera llegarme para la fecha prevista. En cuanto a calidad/precio parecia que había tenido suerte y sin SO me ahorraba el paso de tener que lidiar con Windows antes de meterle Debian (algo que por supuesto tenía clarísimo que iba a hacer). La fiesta empezó cuando al llegar el portátil e intentar meterle la distro, todo parecía en orden (el ordenador hacia todo el proceso de arranque con lo cual los volúmenes estaban bien asignados) pero no saltaba al entorno gráfico. Ahí fue cuando tuve mi primer golpe de Debian-realidad: era una ATI, no tenía los drivers necesarios y había que buscarlos e instalarlos. ¿Ah que con meterle el USB con el SO no vale? No, bonita, no. Dejé el proceso en manos de diego y un par de horas después el ordenador ya estaba en condiciones.

Por desgracia tuve la mala suerte de que ese Asus vino defectuoso de fábrica y poco después de empezar a usarlo (horas) se quedó completamente pillado y evidentemente tuve que devolverlo y pedir otro. Lo gracioso vino cuando llegó el segundo, misma marca y modelo, y no hubo forma humana de hacerlo funcionar con el entorno gráfico. Ya tenía exactamente los drivers que instalamos en su primo-defectuoso pero en este caso decidió que no le apetecía jugar a mi juego. Mosqueada y ya sin tiempo devolvi el segundo ordenador y diego y yo nos fuimos de compras express el último día laboral antes de mi fecha límite para tener un ordenador funcional.

Mucho podría contar de cómo estuvimos en tres grandes superficies mirando la oferta de portátiles que tenían, pero voy a resumirlo en que en ninguno de los tres sitios vimos ni un solo equipo sin sistema operativo (cosa que me esperaba pero no dejo de indignante) y que en los tres, muy amablemente nos dijeron que si modificamos el Windows que traían los portátiles (véase reescalandolo para meterle otro SO en una particion o directamente borrándolo) instantáneamente perderíamos la garantía. Otra desagradable sorpresa nos llevamos cuando los tres dependientes nos dijeron que lo mismo ocurriría al cifrar el equipo: adeu garantía. Esta información género bastante debate en mi TW y parece que no es tan sencillo ni muy legal quitar una garantía por esos motivos pero la advertencia nos la llevamos.

Finalmente elegimos un HP con muy buenas características, ligero y potente por un precio muy razonable. ¿Se acabó aquí la aventura? La Anastasia de luna de miel con Linux pensó que sí. La realidad fue que zimá (el nombre con el que bauticé a mi nueva compañera y que significa invierno en ruso) se negó a leer el USB con Debian. Sin mas. No le apetecía. Así que teniendo en cuenta que necesitaba el ordenador para el día siguiente tomé la decisión más sensata: Ubuntu y cara de chupar limones hasta que pasase la semana de formación que tenía.

Toda esta aventura me hizo pensar en lo terriblemente desagradecido que puede resultar a veces usar Linux. Y algo todavía más importante: el estoicismo con el que se tomaban ese hecho todos los informáticos con los que hablé del asunto. Escuché muchas veces aquello de “es normal, yo una vez me pase dos semanas intentando dar con el driver” o “hay que tener mucho cuidado y elegir un hardware que vaya con Linux” o “aquí tienes varias webs en las que venden portátiles 100% compatibles con Linux”. Y un 25% más caros, añado yo.

Lo más curioso de todo este asunto es que a pesar del enfado que me he llevado con Linux como SO, en ningún momento he dudado de que quería seguir usándolo (incluso aunque eso supusiese devolver ordenadores, buscar a última hora y comerme la cabeza durante horas para que hiciese algo tan simple como arrancar) Creo firmemente que algo debe cambiar para que más gente tenga acceso a una alternativa a MacOs y Windows y también que distros como Debian son una alternativa maravillosa. Pero también entiendo (ahora) que a no ser que algo cambie, la barrera de entrada es demasiado imponente para la mayoría de personas y eso es algo que no solo hay que constatar sino también combatir.

En la actualidad no solo tienes que tener en cuenta lo normal a la hora de comprarte un portátil (precio, potencia, peso, batería, calidad etc) sino que si quieres “el lujo” de tener un Debian también tienes que pensar en cosas como que las ATI pueden dar problemas mientras que una Intel es una apuesta más segura o que si es un portátil muy nuevo puede que no puedas usar tu Bluetooth sin un adaptador o te vas a pasar horas o días intentando encontrar el driver correcto para que funcione la Wifi o la cámara. Dicho todo eso y después de mi dosis de Debian-realidad, sigo diciendo que lo nuestro es para siempre y que vale la pena a pesar de todo. Ahora quizá lo esté diciendo con más criterio.

Por cierto, a día de hoy todavía tengo que quitarle el Ubuntu a zimá (muy bonito pero echo de menos el olor a deb por las mañanas) y he descubierto que mi hardware no tiene drivers disponibles para que me funcione el Bluetooth en Ubuntu. Home, sweet home.

 

Pandoc: la navaja suiza de los formatos markup

El título es explicativo en sí mismo, pandoc es un conversor de formato markup a un montón de formatos de salida:

  1. Otros formatos markup (markdown, restructured text, asciidoc…)
  2. HTML4/5
  3. Formatos e-book (EPUB, FictionBook2)
  4. Formatos de documentación (GNU TexInfo, Haddock markup)
  5. Formatos Roff
  6. Formatos TeX (LaTeX, ConTeXt)
  7. Formatos XML (DocBook, JATS, TEI)
  8. OPML
  9. Formatos de procesador de textos (docx, odt, open document xml)
  10. Jupyter notebooks (ipynb)
  11. Formatos Wiki markup (MediaWiki, DocuWiki…)
  12. Formatos de presentación (LaTeX Beamer, reveal.js…)
  13. PDF

Podemos encontrar el paquete en repositorios Debian, así que instalarlo es pan comido. Para convertir entre formatos:

El parámetro standalone indica que queremos generar un fichero html válido (incluyendo cabecera y cuerpo); los parámetros –from y –to indican los formatos de entrada y salida; el parámetro -o indica el fichero de salida.

Para convertir a PDF, necesitamos LaTeX (pdflatex, xelatex, lualatex) o alguno de estos paquetes: pdfroff, wkhtml2pdf, prince, weasyprint.

El comando es bastante sencillo, si queremos producir el fichero con LaTeX (pdflatex):

Y si queremos utilizar un motor alternativo (wkhtml2pdf en este ejemplo):

Para más información, siempre es recomendable acudir a la guía de usuario. Y si no os sentís muy cómodos con la línea de comandos, hay una demo del conversor en versión web aquí.

¡A darle caña al markdown!

 

Clipmenu: un gestor de portapapeles minimalista

Al hilo de la anterior entrada sobre la filosfía KISS, hoy vamos a hablar de clipmenu, un gestor de portapapeles minimalista que se integra a la perfección en dmenu. Desafortunadamente, no lo tenemos en repositorios Debian, pero instalarlo es tan sencillo como:

a) Instalar las dependencias:

b) Descargar los scripts de la web:

c) Lanzar el demonio al arranque:

Editamos el archivo .xinitrc en nuestra home y añadimos:

Ejemplo de uso:

(Autor: Chris Down. Fuente: https://github.com/cdown/clipmenu)

Y listo, ahora cada vez que lancemos el script clipmenu obtendremos una lista con el contenido de nuestro portapapeles (por defecto muestra 8 entradas, pero se puede editar el script para ampliarlo o reducirlo). Para copiar una de las entradas sólo hay que pulsar intro y para pegarla, la combinación de teclas habitual.

Fácil ¿verdad?

 

seguridad, mfa y demás hierbas

Aún recuerdo la primera contraseña que utilicé en serio. Fue para la cuenta en el servidor Unix de la universidad y tenía ocho caracteres que formaban una palabra que no podía deducirse de mi persona. Me sentía completamente seguro. Luego aprendes lo que de verdad significa la seguridad aplicada a la tecnología y los sistemas informáticos y recuerdas aquella primera contraseña con cariño.

Y llega el día en que una buena contraseña (+50 caracteres de todo tipo) ya no es suficiente y descubres la autenticación con dos factores (o 2FA).

usando factores de autenticación

La autenticación con múltiples factores, un escalón por encima de la 2FA implica utilizar dos o más evidencias (o factores) para autenticar a alguien. Las opciones son: conocimiento, algo que sabe, como una contraseña; posesión, algo que tiene; e inherencia, algo que se es.

Contándolo rápidamente y usando el ejemplo de una cuenta de email, el 2FA sería utilizar dos factores, es decir, un factor más además de la contraseña (ese algo que conoces) para verificar que, efectivamente, eres quien dices ser. Así, podemos usar algo que tenemos o algo que somos. Como personalmente estoy en contra del uso de medidas de autenticación biométricas (a ver como cambias de iris…), usaremos algo que tenemos, algo como una contraseña temporal u OTP.

la app de google

Hace ya tiempo que google (quién sino) sacó una app para darte todas las contraseñas temporales que necesitases y, de paso, para que asegurases tu email a la vez que te liaban un poco más en su ecosistema de móvil, apps, email, calendarios y cualquier tipo de servicio que puedas imaginar. Esta app, google authenticator, validaba tu acceso dándote un número de seis cifras que tienes que introducir cada vez que accedas a tus cuentas. Todo muy seguro.

Y parecía que si querías usar un segundo factor de autenticación, o bien ponías tu número de teléfono en todas partes para que te enviasen un email o estabas fuera. Porque si intentas salir del yugo de google, terminar instalando una app así es un gran paso atrás. También hicieron una app para chrome pero, de nuevo, como utilizo firefox no podía usarla.

gauth

El truco radica en que el algoritmo sobre el que descansa la app es público y está perfectamente definido en el RFC 6238 y cualquiera puede usarlo. Tanto es así que un tal Gerard Braad se hizo su propio autenticador de dos factores, lo llamó gauth authenticator y lo publicó en github. Y, no contento con eso, hizo apps para firefox, firefox os, chrome, chromeOS, webOS y android.

Gauth almacena la información de la clave (la descriptción y la clave secreta) en la cache del navegador y lo vincula al perfil con lo que si cambias de navegador, de dispositivo o entras en el modo anónimo, las claves serán diferentes.

uso y disfrute

A mi, con mi tontería, se me han ocurrido tres formas de usar gauth en todos mis dispositivos porque claro, no voy a instalar una app en el móvil o en chrome para tener TOTP. Para disfrutar de la experiencia completa, recomiendo usar un gestor de contraseñas donde guardar los MFA. En mi caso concreto, utilizo keepass y tengo los ficheros en mi nube privada, disponibles desde cualquier lugar.

1. usa la web de gauth

Tan sencillo como eso, accedes a la web de gauth, introduces la clave (obviamente, no es una buena idea meter una descripción muy profusa) y ya puedes tener tu código.

2. instala el código en tu servidor

Te hace falta un dominio, un puñado de bytes disponibles y un git clone. Yo, además, le puse autenticacion extra usando el .htaccess. Una vez hecho esto, accedes a la URL de tu servidor y configuras las claves.

3. <modo paranoico on>

Esta opción también la uso para las claves que necesito en el móvil y con algunas del trabajo, aquellas que considero que merecen especial protección. Consiste en descargarme el código y descomprimirlo en local, ya sea el ordenador o el móvil. Obviamente, los dispositivos donde hago esto tienen el almacenamiento cifrado, ya ni lo considero una medida extra sino que va de serie.

Una vez instalado gauth en local, lo abro desde Firefox y añado las claves. Es lo más parecido a un google authenticator casero que he podido emular.

conclusiones

La única conclusión posible es que, en un mundo tan digitalizado y accesible, que tus datos dependan de una contraseña que seguramente es demasiado sencilla de averiguar es un riesgo.

 

Keep It Simple Stupid

Hace tiempo que no dedicamos una entrada al principio KISS y a su aplicación al mundo del software. En pocas palabras, software sencillo que hace una cosa y la hace bien. Optimizar recursos. Hacer más con menos. Minimalismo.

La filosofía KISS no implica renunciar, sino optimizar. Significa pensar en qué necesitamos y cómo podemos conseguirlo de la manera más eficiente posible. Un concepto muy extendido cuandose habla de minimalismo en el software es el de bloat o bloatware. El significado de bloated es “hinchado, inflamado” y en este contexto hace referencia a código que añade características o funciones innecesarias que incrementan el uso de recursos. Por supuesto, existe un amplio debate en torno a qué es y que no es bloatware, y se trata de una cuestión fundamentalmente subjetiva. A mi el sentido común me dice que si lo utilizas, no es bloatware. Y por tanto, desde el entorno de escritorio más pesado hasta el gestor de ventanas más minimalista pueden ser considerados bloated, o no. Quizá necesites todas y cada una de las funciones de un gestor de archivos con interfaz GUI o quizá te sirva con ranger. Puede que no necesites que tu gestor de ventanas organice tus ventanas automáticamente. O a lo mejor es algo fundamental para tu flujo de trabajo. Gnome puede ser bloatware, dwm puede ser bloatware.

Disertaciones conceptuales a parte, en esto de programar software sencillo, la gente de suckless hace un trabajo excelente. Entre sus herramientas más famosas se encuentran el gestor de ventanas dwm, la suite suckless-tools (con dmenu y slock a la cabeza), el emulador de terminal st (simple terminal) y el navegador web surf. Hoy vamos a echar un vistazo a dwm y a algunas aplicaciones ligeras que conjugan la mar de bien con un flujo de trabajo minimalista. Casi, casi nos lo podemos tomar como un “aplicaciones ligeras (III)”. Hay infinidad de sitios donde podéis encontrar información sobre dwm, así que no me voy a extender demasiado.

Conceptos básicos sobre dwm:

  1. Es un tiling window manager, organiza ventanas automáticamente según una distribución (“layout”) predefinida para ocupar el máximo espacio posible en pantalla.
  2. Es sencillo (menos de 2000 líneas de código) y modular (hay una buena colección de parches que permiten personalizarlo.
  3. Está escrito en C, y se configura editando un header file (config.h) y recompilando.
  4. En lugar de escritorios virtuales trabaja con tags: la principal diferencia es que una misma ventana puede estar etiquetada en varios tags.

Compilación e instalación

Descargamos el código fuente de la web de suckless:

wget https://dl.suckless.org/dwm/dwm-6.2.tar.gz

Accedemos al directorio y compilamos:

make clean install

Y listo, en 2-3 segundos tenemos dwm compilado con la configuración por defecto. Para personalizarlo, editamos el fichero config.h y recompilamos. Aunque es bastante intuitivo, siempre es recomendable consultar el manual antes de tocar nada.

Aquí os dejo el mío como ejemplo:

Parcheando dwm

La idea detrás de dwm es ofrecer un software sencillo, que hace una cosa y la hace bien. Sin embargo, hay un montón de parches que permiten añadir distintas funcionalidades a dwm. El procedimiento es sencillo:

patch -p1 < parche
make clean install

El parámetro -p se refiere al nivel de directorio en el que se encuentra el código a parchear. Por ejemplo, si estamos en el mismo directorio, utilizaremos -p1. Aviso de que parchear el código fuente de dwm puede romper cosas, si pensáis utilizar más de un parche idlos incorporando uno a uno (parchear, compilar, parchear, compilar…).

Iniciando una sesión gráfica sin gestor de inicio de sesión

a. Instalamos xinit.

b. Creamos el archivo .xinitrc en nuestra /home:

Aquí podéis lanzar los programas que necesitéis al inicio. Importante, la última orden debe ser el exec dwm que lanza el gestor de ventanas.

c. Tecleamos startx después de loguearnos con nuestro usuario y contraseña.

KISS software

Estas son las aplicaciones ligeras que utilizo normalmente:

1) Gestor de ventanas: dwm
2) Compositor: compton
3) Demonio de notificaciones: dunst
4) Lanzador de aplicaciones: dmenu
5) Capturas de pantalla: scrot
6) Terminal: st
7) Editor de texto: vim / nano
8) Editor de texto GUI: mousepad
9) Gestor de fondos de escritorio: nitrogen
10) Gestor de temas GTK: lxappearance
11) Herramienta de configuración de monitores: lxrandr + xrandr
12) Navegador de archivos: pcmanfm / ranger
13) Lector RSS: newsbeuter (debian stable) / newsboat (debian testing/sid)
14) Cliente IRC: irssi
15) Cliente FTP: ftp/sftp en terminal / filezilla
16) Visor de imágenes: viewnior
17) Visor de PDF: zathura + tabbed / qpdfview (tiene pestañas)
18) Gestor de portapapeles: clipmenu

Lógicamente, esto no es una lista exhaustiva de todo el software que utilizo. Faltan muchos imprescindibles (GIMP, Inkscape, Darktable, LibreOffice, Calibre…) que no son tan ligeros y que seguro que todos conocéis.

Dudas, sugerencias y/o críticas en los comentarios.

Happy desktop hacking!!

[Editado 30/12/2019]

Para que las teclas de brillo funcionen con los comandos incluídos en el config.h con tarjeta gráfica intel:

  1. Creamos el archivo /usr/share/X11/xorg.conf.d/20-intel.conf como root
  2. Añadimos:

Guardamos ¡y listo!

Entradas anteriores:

¿Alguien dijo tiling?

Aplicaciones ligeras

Aplicaciones ligeras (II)