ArtBangGNU: Instalación y configuración de Debian estilo CrunchBang.

ArtBangGNU: Instalación y configuración de Debian estilo CrunchBang

Miguel Menéndez

CrunchBang Linux fue una distribución creada por Philip Newborough. Estaba basada en Debian GNU/Linux y utilizaba el gestor de ventanas Openbox y aplicaciones GTK.

Esta distribución estaba diseñada para ofrecer un excelente balance entre velocidad y funcionalidad, era tan estable como el propio Debian, además de incorporar por defecto una interfaz minimalista y moderna que podía ser personalizada hasta el extremo, lo que hacía a esta distribución perfecta para la productividad y para instalar en equipos con pocos recursos de hardware.

El seis de febrero de 2015 Newborough anunció su retirada del proyecto dejándolo en manos de la comunidad pero quienes recogieron el testigo no mantuvieron principios como el minimalismo, la ligereza y el cuidado de los detalles. De esto último se deriva este artículo.

1. Instalación mínima de Debian

Aptitude y Synaptic

2. Instalación de paquetes básicos para reproducir el entorno ’estilo CrunchBang'

2.1. Instalar Xorg

X.Org es una versión libre del sistema de ventanas X. Surgió como una bifurcación del proyecto XFree83 que, en 2004, cambió su licencia del MIT a otra incompatible con la GNU GPL.

~# apt-get install xorg

2.2. Instalar Openbox

OpenBox es un gestor de ventanas para el sistema de ventanas X. En sus inicios derivaba de Blackbox, pero ha sido totalmente reescrito y desde la versión 3 ya no está basado en ninguna porción de código ajeno. Está diseñado para ser rápido y consumir una mínima cantidad de recursos, justo lo que nos interesa.

obconf es una pequeña utilidad gráfica que facilita la administración de las preferencias y la configuración de Openbox. obmenu es un editor gráfico de menús de Openbox.

~# apt-get install openbox obconf obmenu

2.3. Instalar SLiM, LightDM… O ninguno (Xinitrc)

SLiM

SLiM es el acrónimo de Simple Login Manager. Es, como su propio nombre indica, un gestor de sesiones para el sistema de vantanas X extremadamente ligero, rápido y sencillo. SLiM no requiere bibliotecas de GNOME ni de KDE, es justo lo que necesitamos para usar junto a Openbox. Sin embargo, por un lado tanta sencillez hace que carezca de la posibilidad de abrir sesiones remotas (escritorios remotos) a través de VNC o XDMCP (personalmente y en este caso concreto considero esta funcionalidad totalmente prescincible, si fuese verdaderamente necesario acceder remotamente siempre se podría usar SSH). Por otro lado, es más preocupante que su desarrollo fuese abandonado formalmente en junio de 2014 ( réplica de archivos en SourceForge ) y que, además, no tiene una buena integración con systemd.

~# apt-get install slim

Si, como planteaba antes, tenemos el disco duro encriptado y somos la única persona que usará la máquina, puede ser interesante “forzar” a SLiM a que inicie sesión automáticamente con nuestro único usuario (no root). Para ello:

~# nano /etc/slim.conf

Y modificamos las dos siguiente líneas como corresponda (en este ejemplo, SLiM iniciará sesión automáticamente para el usuario miguel):

[TODO!]

LightDM

LightDM es otro gestor de sesiones para el sistema de ventanas X, creado con el objetivo de ser ligero, rápido, adaptable a las necesidades de la persona usuaria y que funcione con diversos entornos de escritorio. LightDM tampoco necesita utilizar las bibliotecas de GNOME o KDE para funcionar, lo que resulta ideal para usar junto a Openbox. Efectivamente es más pesado que SLiM, pero tiene una buena integración con systemd, su desarrollo está vivo y permite abrir sesiones remotas (escritorios remotos) a través de VNC y/o XDMCP.

~# apt-get lightdm

Si, como planteaba antes, tenemos el disco duro encriptado y somos la única persona que usará la máquina, puede ser interesante “forzar” a LightDM a que inicie sesión automáticamente con nuestro único usuario (no root). Para ello:

~# nano /etc/lightdm.conf

Y modificamos las dos siguiente líneas como corresponda (en este ejemplo, LightDM iniciará sesión automáticamente para el usuario miguel):

[TODO!]

Ningún gestor de sesiones (Xinitrc)

Aviso: Problema de confidencialidad en abandono de sesión o suspensión/hibernación. Recuerda instalar un bloqueador de pantalla.

Si, como planteaba antes, tenemos el disco duro encriptado y somos la única persona que usará la máquina, puede ser interesante prescindir totalmente de un gestor de sesiones y “forzar” al sistema a que inicie sesión automáticamente con nuestro único usuario (no root). Para ello, y siempre que tu sistema ya esté “gobernado” por systemd:

~# mkdir /etc/systemd/system/getty@tty1.service.d
~# nano /etc/systemd/system/getty@tty1.service.d/autologin.conf
[Service]
  ExecStart=
  ExecStart=-/sbin/agetty --autologin miguel --noclear --noissue %I 38400 linux

En este ejemplo, se iniciará sesión automáticamente para el usuario miguel.

Cerramos la sesión de root para crear/modificar algunos archivos en el directorio raíz del usuario con el que se iniciará la sesión automática (miguel, en este ejemplo):

~# exit
~$ cd

Creamos o modificamos, según proceda, el archivo ~/.xinitrc en el directorio raíz del usuario:

~$ nano /home/miguel/.xinitrc
#!/bin/sh
#
# ~/.xinitrc
#
# Executed by startx (run your window manager from here)

if [ -d /etc/X11/xinit/xinitrc.d ]; then
  for f in /etc/X11/xinit/xinitrc.d/*; do
    [ -x "$f" ] && . "$f"
  done
  unset f
fi

# exec enlightenment_start
# exec i3
# exec mate-session
# exec xmonad
# exec startlxqt
# exec startlxde
# exec awesome
# exec bspwm
# exec gnome-session
# exec startkde
# exec startxfce4
# exec icewm
# exec fluxbox
# exec openbox-session
# exec cinnamon-session
# exec pekwm

exec ck-launch-session dbus-launch openbox-session

Para que PCmanFM, Thunar o cualquier otro gestor de archivos de nuestra elección muestre la papelera y, sobre todo, monte automáticamente cualquier unidad de almacenamiento que pinchemos es imprescindible que dbus-launch esté entre las opciones a ejecutar (también será necesario que el gestor de archivos se lance como demonio, como veremos).

Podemos evitar que se muestre en consola el mensaje de bienvenida típico del inicio de sesión creando el archivo vacío ~/.hushlogin en el directorio raíz del usuario:

~$ > /home/miguel/.hushlogin

Además, de forma igualmente opcional, podemos evitar que al iniciar X se muestre en consola la parrafada del arranque del script añandiendo las siguientes líneas al archivo ~/.profile:

~$ nano /home/miguel/.profile
if [ -z "$DISPLAY" ] && [ $(tty) == /dev/tty1 ]; then
  startx >/dev/null 2>&1
fi

2.4. Instalar tint2

Tint2 es el panel ideal para Openbox. Sus desarrolladores lo describen como sencillo, muy ligero, y poco intrusivo. Es altamente personalizable:

  • Tiene área de notificaciones (reloj, estado de la batería y de la red, etc.)
  • Extremadamente fácil de personalizar (colores, transparencia, bordes, fondo, etc.)
  • Puedes enviar ventanas de un escritorio a otro, incluso pinchando y arrastrando con el ratón
  • Funciona perféctamente con múltiples monitores
  • Tiene la opción de ocultarse automáticamente

gsimplecal es un calendario muy sencillo que se mostrará al hacer click sobre el reloj del panel Tint2.

~# apt-get install tint2 gsimplecal

2.5. Instalar Conky

Conky es un monitor libre de los estados del sistema para X. Es extremadamente configurable y capaz de monitorizar prácticamente cualquier variable del sistema, desde el estado de los procesadores, ocupación de la memoria y del disco duro, temperaturas, procesos, red y batería hasta nuevos mensajes en la bandeja de entrada de correo electrónico, información meteorológica, noticias de última hora y un larguísimo etcétera. A diferencia de otros complementos mastodónticos que hacen exactamente lo mismo, Conky renderiza la información directamente en una ventana de X, esto propicia que el consumo de recursos del sistema sea mínimo con una configuración adecuada.

En los repositorios de Debian encontrarás dos paquetes de Conky: conky-std y conky-all, he aquí las diferencias:

conky-std con soporte para:

X11, XDamage, XDBE, Xft, MPD, MOC, math, hddtemp, portmon, wireless, ncurses, ALSA mixer, apcupsd, I/O stats, argb y Lua

conky-all con soporte para:

X11, XDamage, XDBE, Xft, MPD, MOC, math, hddtemp, portmon, wireless, ncurses, ALSA mixer, apcupsd, I/O stats, argb, Lua, RSS, Weather, IBM, nvidia, eve-online, Imlib2, cairo and imlib2 lua bindings, Audacious y XMMS2

En principio, conky-std es más que suficiente:

~# apt-get install conky-std

El archivo de configuración de Conky (~/.conkyrc) está en el repositorio « ArtBangGNU ».

2.6. Instalar Compton

Compton es un compositor para el sistema de ventanas X. Básicamente se encarga de dotar de mejores efectos visuales a nuestro escritorio (transparencias, sombras). Es muy ligero e ideal para gestores de ventanas que no cuentan con funcionalidades de composición de forma nativa, como Openbox.

Aunque Compton era el compositor de ventanas por defecto en CrunchBang GNU/Linux, personalmente lo considero prescindible, máxime cuando nuestro objetivo es configurar un sistema lo más ágil posible. Eso sí, he de reconocer que una mínima sombra alrededor de las ventanas dota de profundidad a nuestro escritorio, haciéndolo más intuitivo.

~# apt-get install compton

2.7. Instalar dmenu

dmenu es un menú dinámico, rápido y muy ligero para X. Lee texto arbitrario desde stdin y crea un menú con un elemento por línea. Así, puedes elegir un elemento con las teclas de posición (flechas) o escribiendo parte del nombre y la línea es impresa en stdout.

Era un clásico en CrunchBang GNU/Linux. Sin embargo nunca me llevé muy bien con él (si le sacas del inglés se vuelve un poco bobo).

~# apt-get install suckless-tools

El archivo de configuración de dmenu (~/.config/dmenu/dmenu-bind.sh) está en el repositorio « ArtBangGNU ».

2.8. Instalación de más paquetes

2.8.1. Emulador de terminal

Terminator era el emulador de terminal por defecto en CrunchBang GNU/Linux:

~# apt-get install terminator

El archivo de configuración de Terminator (~/.config/terminator/config) está en el repositorio « ArtBangGNU ».

2.8.2. Administrador de archivos

PCManFM (LXDE) es más sencillo pero creo que no tiene nada que envidiarle:

~# apt-get install pcmanfm

2.8.3. Búsqueda de archivos

Catfish también era la herramienta para buscar archivos que traía CrunchBang GNU/Linux:

~# apt-get install catfish

2.8.4. Editor de texto plano

Geany es mucho más flexible y versátil que un editor de texto plano al uso. Para dotarlo de las características CrunchBang GNU/Linux es necesario instalar también el paquete geany-plugins:

~# apt-get install geany geany-plugins

2.8.5. Gestor de archivos comprimidos

Xarchiver , un asistente libre y ligero para la compresión y descompresión de archivos. ¿Venía por defecto en CrunchBang GNU/Linux?

~# apt-get install xarchiver

2.8.6. Ejecutar comandos

gmrun (Gnome Completion-Run Utility) es el lanzador de comantos ultraligero, dispone de autocompletado. Otro clásico de CrunchBang GNU/Linux e imprescindible en Openbox.

~# apt-get install gmrun

2.8.7. Sonido

CrunchBang GNU/Linux ¿instalaba PulseAudio? y usaba [TODO!] como mezclador y [TODO!] para el potenciómetro del área de notificaciones. PulseAudio siempre me ha parecido demasiado grande y complejo para la función que debe cumplir y, peor, me ha hecho perder incontables horas en demasiadas ocasiones… ALSA puro y duro cumple escrupulosamente sus funciones y no recuerdo que me haya fallado.

En este caso, alsamixergui sustituirá a [TODO!] y volumeicon-alsa sustituirá a [TODO!] como potenciómetro rápido en el área de notificaciones:

~# apt-get install alsa-base alsa-tools alsa-tools-gui alsa-utils alsamixergui volumeicon-alsa

2.8.8. Capturador de pantallas

CrunchBang GNU/Linux instalaba [TODO!] y añadía una serie de lanzadores al menú de Openbox. Nunca los usé, el asistente de capturas de pantallas de Xfce siempre me ha parecido lo suficientemente ligero e intuitivo. En cualquier caso, instalaremos ambos:

~# apt-get install xfce4-screenshooter

2.8.9. Gestor de apariencia

LXAppearance es una utilidad totalmente prescindible pero que puntualmente nos facilitará enormemente la tarea cambiar el diseño y la decoración de las ventanas, los colores, el paquete de iconos, las fuentes tipográficas y el diseño del cursor del ratón. El paquete lxappearance-obconf contiente un añadido para ObConf de Openbox:

~# apt-get install lxappearance lxappearance-obconf

2.8.10. Diseños e iconos

El paquete gtk2-engines-murrine también es innecesario, sin embargo mejorará notablemente la apariencia de numerosas aplicaciones basadas en GTK (esas mismas aplicaciones que llenarán los registros -logs- de avisos si no lo encuentran).

mate-icon-theme-faenza también es opcional, pero de no instalarlo se usarán por defecto los iconos de Gnome. Los iconos Faenza para MATE son muy ‘modernuquis’ y este paquete es muy completo, incluyendo toda una serie de iconos claros idóneos para los fondos generalmente oscuros que emplearemos.

~# apt-get install gtk2-engines-murrine mate-icon-theme-faenza

2.8.11. Cursores y punteros del ratón

Al igual que ocurría en CrunchBang GNU/Linux, el paquete de cursores de ratón DMZ (versión en blanco) es muy necesario para sustituir a los punteros por defecto de X (negros): Como los fondos del escritorio resultante tenderán a muy oscuro, se imponen unos cursores claros que contrasten. ¡No podemos perder ni 10 milisegundos buscando por la pantalla el puntero del ratón! (y si usamos varios monitores, ni te cuento…).

~# apt-get install dmz-cursor-theme

2.8.12. Gestión de energía

Power Manager de Xfce. En principio, esta utilidad sólo sería necesaria para portátiles o estaciones de trabajo con sistema de alimentación ininterrumpida. Pero, aunque no fuese el caso, yo la instalo siempre: Permite reducir el brillo de la pantalla para ahorrar energía, apagar los monitores tras un tiempo de ausencia para aumentar la confidencialidad, bloquear el escritorio para impedir dificultar usos indebidos, etc.

~# apt-get install xfce4-power-manager

2.8.13. Gestor de fondos de escritorio

Otra utilidad totalmente prescindible que se instalaba por defecto en CrunchBang GNU/Linux pero que puntualmente nos facilitará enormemente la tarea cambiar las imágenes del fondo del escritorio es Nitrogen :

~# apt-get install nitrogen

2.8.14. Gestor del portapapeles

En CrunchBang GNU/Linux usábamos [TODO!], yo lo sustituyo por Parcellite . Igualmente ligero pero, a mi entender, con un desarrollo más actual y mejor mantenido:

~# apt-get install parcellite

2.8.15. Gestor de conexiones de red y Bluetooth

No es que sea yo muy del NetworkManager de Gnome, pero es un asistente completo y totalmente funcional.

blueman será necesario únicamente si tu portátil u ordenador de sobremesa dispone de Bluetooth (o si eventualmente lo usaras conectando un adaptador USB, por ejemplo).

~# apt-get install network-manager network-manager-gnome blueman

2.8.16. Bloqueo y protector de pantalla

Aunque un protector animado de pantalla sea algo totalmente anacrónico (como medida de ahorro energético y para aumentar la vida útil de muestros monitores es más adecuado programar su apagado), XScreenSaver tiene otra función extremadamente importante desde el punto de vista de la confidencialidad (especialmente si en el paso 2.3. decidiste no instalar ningún administrador de sesiones): Puede bloquear el escritorio para impedir o, al menos, dificultar el uso del sistema durante nuestras ausencias.

~# apt-get install xscreensaver

2.9.17. Notificaciones emergentes

Tal vez haya otra utilidad más sencilla, pero Xfce Notify Daemon es adecuado para su propósito:

~# apt-get install xfce4-notifyd

2.9.18. Gestor de tareas

El mítico htop , nada que objetar:

~# apt-get install htop

2.9.19. Soporte para suspensión e hibernación

Hay una leyenda urbana que dice que las opciones de suspender e hibernar están destinadas únicamente a ordenadores portátiles… ¿En serio? En cualquier caso, si vas a necesitar hibernación, recuerda que el tamaño de la partición swap debe ser, al menos, igual al tamaño de la memoria RAM instalada.

~# apt-get install acpi-support

2.9.20. Gestor de pantallas (escritorio ampliado)

Si habitualmente o de forma esporádica conectar a tu ordenandor otros monitores, televisores o proyectores, ArandR te resultará imprescindible:

~# apt-get install arandr

2.9.21. Impresora(s)

Por último, el administrador de impresoras CUPS :

~# apt-get install cups

3. Configuración para recrear el entorno ’estilo CrunchBang’

3.1. Configurar Xorg

Nada que configurar por aquí, de momento.

Si la instalación se está haciendo sobre un ordenador portátil con TouchPad, tal vez quieras activar la opción ’tap':

[TODO!]

3.2. Configurar Openbox

Los archivos de configuración de Openbox están en el repositorio « ArtBangGNU ».

3.2.1. El archivo autostart

El contenido del archivo autostart de Openbox (localizado en ~/.config/openbox/autostart para un usuario concreto o en /etc/skel/.config/openbox/autostart para cualquier nuevo usuario) podría ser éste:

Fíjate en que, en este ejemplo, no se lanza el compositor compton (ver pasos 2.X y 3.X); volumeicon sustituye a [TODO!] (ver pasos 2.X y 3.X); el demonio para las teclas del volumen de sonido tampoco se lanza (no lo hemos instalado); tampoco se lanza Thunar como demonio, lo hace PCManFM en su lugar (ver pasos 2.X y 3.X); y Parcellite sustituye a [TODO!].

3.2.2. El archivo menu.xml

El siguiente no deja de ser un archivo de ejemplo (localizado en ~/.config/openbox/menu.xml para un usuario concreto o en /etc/skel/.config/openbox/menu.xml para cualquier nuevo usuario), con lanzadores a utilidades que hemos instalado en pasos anteriores y a aplicaciones que podremos instalar o no en pasos siguientes.

Fíjate en que, por preferencias personalísimas, he prescindido el comando gksu (que depende de sudo) para lanzar aquellas aplicaciones que requieren privilegios de root. En su lugar he empleado el comando su a través de emuladores de terminal.

3.2.3. El archivo rc.xml

Localizado en ~/.config/openbox/rc.xml para un usuario concreto o en /etc/skel/.config/openbox/rc.xml para cualquier nuevo usuario.

4. Instalación de aplicaciones para uso final

4.1. Accesorios

Ya instalados Catfish, Geany, PCmanFM, Terminatory y Xarchiver. No hay mucho más para instalar en esta sección.

4.2. Audio y vídeo

Ya instalado ALSA Mixer como mezclador de sonido.

4.2.1. Audacity

~# apt-get install audacity

4.2.2. Banshee

~# apt-get install banshee banshee-extension-albumartwriter banshee-extension-foldersync banshee-extension-duplicatesongdetector banshee-extension-lastfmfingerprint banshee-extension-radiostationfetcher
~# apt-get install banshee-community-extensions

4.2.3. Brasero

~# apt-get install brasero

4.2.4. EasyTag

~# apt-get install easytag

4.2.5. MusicBrainz Picard

~# apt-get install picard

4.2.6. OpenShot

~# apt-get install openshot

4.2.7. SoundConverter

~# apt-get install soundconverter gstreamer0.10-plugin-ugly gstreamer0.10-plugin-bad

4.2.8. VLC

~# apt-get install vlc vlc-plugin-vlsub

4.2.9. WinFF

~# apt-get install winff

4.3. Comunicación

4.3.1. Chromium

~# apt-get install chromium chromium-l10n

4.3.2 Filezilla

~# apt-get install filezilla

4.3.3. Gigolo

~# apt-get install gigolo

4.3.4. Icedove

~# apt-get install icedove icedove-l10n-es-es

-ast, -eu, -gl, -ca, -es-ar, -es-cl, es-mx, -en-gb

4.3.5 Iceweasel

~# apt-get install iceweasel iceweasel-l10n-es-es

4.3.6. Transmission

~# apt-get install transmission-gtk

4.4. Imagen

Ya instalado xfce4-screenshooter

4.4.1. BirdFont

(Sid) dpkg -i birdfont-*.deb

4.4.2. FontForge

~# apt-get install fontforge

4.4.3. GIMP

~# apt-get install gimp

4.4.4. Inkscape

~# apt-get install inkscape

4.4.5. Scribus

~# apt-get install scribus

4.4.6. Shotwell

~# apt-get install shotwell

4.4.7. Viewnior

~# apt-get install viewnior

4.5. Oficina

4.5.1. Evince

~# apt-get install evince

4.5.2. Galculator

~# apt-get install galculator

4.5.3. LibreOffice

~# apt-get install libreoffice libreoffice-l10n-es libreoffice-help-es

-ast, -ca, -eu, -gl, -en-gb, -en-za

4.6. Programación

4.6.1. Diffuse

~# apt-get install diffuse

4.6.2. Giggle

~# apt-get install giggle

4.6.3. gitg

~# apt-get install gitg

4.6.4. Poedit

~# apt-get install poedit

5. Otras instalaciones y configuraciones sugeridas

[TODO!]

Comentarios

¿Has encontrado un error? ¿Crees que algo podría mejorarse? No dudes en comentármelo y estaré encantado de echarle un vistazo.