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!!

Entradas anteriores:

¿Alguien dijo tiling?

Aplicaciones ligeras

Aplicaciones ligeras (II)

 

.deb

Defensor de la cultura libre como motor del desarrollo social y tecnológico. Multitarea.

 

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Información básica sobre protección de datos

  • Responsable David Hernández Martín .
  • Finalidad Moderar los comentarios. Responder las consultas.
  • Legitimación Tu consentimiento.
  • Destinatarios David Hernández Martín.
  • Derechos Acceder, rectificar y suprimir los datos.
  • Información Adicional Puedes consultar la información detallada en el Aviso Legal.