ArtBangGNU: Instalación y configuración de Debian estilo CrunchBang
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)
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!]