ArtBangGNU: Installing and configuring Debian CrunchBang style
CrunchBang Linux was a distribution created by Philip Newborough. It was based on Debian GNU/Linux and used the Openbox window manager and GTK applications.
This distribution was designed to offer an excellent balance between speed and functionality, it was as stable as Debian itself, in addition to incorporating by default a minimalist and modern interface that could be customized to the extreme, which made this distribution perfect for productivity and to install on computers with few hardware resources.
On February 6, 2015, Newborough announced his withdrawal from the project, leaving it in the hands of the community, but those who picked up the baton did not uphold principles such as minimalism, lightness, and attention to detail. This article derives from the latter.
1. Minimal Debian Installation
Aptitude and Synaptic
2. Installing basic packages to reproduce the ‘CrunchBang style’ environment
2.1. Install Xorg
X.Org is a free version of the X window system. It emerged as a fork of the XFree83 project which, in 2004, changed its license from MIT to one incompatible with the GNU GPL.
~# apt-get install xorg
2.2. Install OpenBox
OpenBox is a window manager for the X window system. In its beginnings it was derived from Blackbox, but it has been completely rewritten and since version 3 it is no longer based on any portion of foreign code. It is designed to be fast and consume a minimum amount of resources, just what interests us.
obconf
is a small graphical utility that makes it easy to manage Openbox settings and preferences. obmenu
is a graphical Openbox menu editor.
~# apt-get install openbox obconf obmenu
23. Install SLiM, LightDM… Or none (Xinitrc)
SLiM
SLiM is the acronym for Simple Login Manager. It is, as its name suggests, an extremely light, fast and simple session manager for the X window system. SLiM doesn’t require any GNOME or KDE libraries, it’s just what we need to use alongside Openbox. However, on the one hand, such simplicity means that it lacks the possibility of opening remote sessions (remote desktops) through VNC or XDMCP (personally, and in this specific case, I consider this functionality totally dispensable, if it were truly necessary to access remotely, you could always use SSH). On the other hand, it is more worrying that its development was formally abandoned in June 2014 ( replica files on SourceForge ) and also does not have a good integration with systemd.
~# apt-get install slim
If, as I mentioned before, we have an encrypted hard drive and we are the only person who will use the machine, it may be interesting to “force” SLiM to automatically log in with our only user (not root). For it:
~# nano /etc/slim.conf
And we modify the next two lines accordingly (in this example, SLiM will automatically login for user miguel):
[TODO!]
LightDM
LightDM is another session manager for the X window system, created with the goal of being lightweight, fast , adaptable to the needs of the user and that works with various desktop environments. LightDM also doesn’t need to use the GNOME or KDE libraries to work, which is ideal for use in conjunction with Openbox. It is indeed heavier than SLiM, but it has a good integration with systemd, its development is alive and it allows to open remote sessions (remote desktops) through VNC and/or XDMCP.
~# apt-get lightdm
If, as I mentioned before, we have an encrypted hard drive and we are the only person who will use the machine, it may be interesting to “force” LightDM to automatically log in with our only user (not root). For it:
~# nano /etc/lightdm.conf
And we modify the next two lines accordingly (in this example, LightDM will automatically login for user miguel):
[ALL!]
No session manager (Xinitrc)
If, as I mentioned before, we have an encrypted hard disk and we are the only person who will use the machine, it may be interesting to completely dispense with a session manager and “force” the system to automatically log in with our only user (not root) . To do this, and as long as your system is already “governed” by 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 michael --noclear --noissue %I 38400 linux
In this example, the user miguel will be logged in automatically.
We close the root session to create/modify some files in the root directory of the user with whom the automatic session will start (miguel, in this example):
~# exit
~$ cd
We create or modify, as appropriate, the ~/.xinitrc
file in the user’s root directory:
~$ 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
In order for PCmanFM, Thunar or any other file manager of our choice to show the trash and, above all, automatically mount any storage unit that we click, it is essential that dbus-launch
be among the options to be executed (it will also be necessary that the file manager is launched as a daemon, as we shall see).
We can prevent the typical login welcome message from being displayed on the console by creating the empty ~/.hushlogin
file in the user’s root directory:
~$ > /home/miguel/.hushlogin
Also, optionally, we can prevent the script startup paragraph from being displayed on the console when starting X by adding the following lines to the ~/.profile
file:
~$ nano /home/miguel/.profile
if [ -z "$DISPLAY" ] && [ $(tty) == /dev/tty1 ]; then
startx >/dev/null 2>&1
fi
2.4. Install tint2
Tint2 is the ideal panel for Openbox. Its developers describe it as simple, very light, and not very intrusive. It is highly customizable:
- Has notification area (clock, battery and network status, etc.)
- Extremely easy to customize (colors, transparency, borders, background, etc.)
- You can send windows from one desktop to another, even by clicking and dragging with the mouse
- Works seamlessly with multiple monitors
- Has the option to hide automatically
gsimplecal
is a very simple calendar that will be displayed when you click on the clock in the Tint2 panel.
~# apt-get install tint2 gsimplecal
2.5. Install Conky
Conky is a free system state monitor for X. It is extremely configurable and capable of monitoring virtually any system variable, from the status of processors, memory and hard drive occupancy, temperatures, processes, network and battery to new messages in the email inbox, weather information , breaking news and a very long etcetera. Unlike other mammoth plugins that do exactly the same thing, Conky renders the information directly in an X window, this means that the consumption of system resources is minimal with proper configuration.
In the Debian repositories you will find two Conky packages: conky-std
and conky-all
, here are the differences:
conky-std with support for:
X11, XDamage, XDBE, Xft, MPD, MOC, math, hddtemp, portmon, wireless, ncurses, ALSA mixer, apcupsd, I/O stats, argb and Lua
conky-all with support for:
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 and XMMS2
In principle, conky-std
is more than enough:
~# apt-get install conky-std
The Conky configuration file (~/.conkyrc) is in the repository “ ArtBangGNU ”.
2.6. Install Compton
Compton is a compositor for the X window system. Basically it is responsible for providing better visual effects to our desktop (transparencies, shadows). It’s very lightweight and ideal for window managers that don’t have compositing capabilities natively, like Openbox.
Although Compton was the default window composer in CrunchBang GNU/Linux, I personally consider it expendable, especially when our goal is to configure a system that is as agile as possible. Of course, I have to admit that a minimal shadow around the windows gives depth to our desktop, making it more intuitive.
~# apt-get install compton
2.7. Install dmenu
dmenu
is a very light and fast dynamic menu for X. Read arbitrary text from stdin
and create a menu with one item per line. Thus, you can select an element with the position keys (arrows) or by typing part of the name and the line is printed to stdout
.
It was a classic on CrunchBang GNU/Linux. However I never got along very well with him (if you take him out of English he becomes a bit silly).
~# apt-get install suckless-tools
The dmenu configuration file (~/.config/dmenu/dmenu-bind.sh) is in the “ ArtBangGNU ” repository.
2.8. Installing more packages
2.8.1. terminal emulator
Terminator was the default terminal emulator on CrunchBang GNU/Linux:
~# apt-get install terminator
The Terminator configuration file (~/.config/terminator/config) is in the repository “ ArtBangGNU ”.
2.8.2. file manager
PCManFM (LXDE) is simpler but I think it has nothing to envy:
~# apt-get install pcmanfm
2.8.3. file search
Catfish was also the file search tool brought by CrunchBang GNU/Linux:
~# apt-get install catfish
2.8.4. Plain text editor
Geany
is much more flexible and versatile than a regular plain text editor. To provide it with the CrunchBang GNU/Linux features, it is necessary to also install the geany-plugins
package:
~# apt-get install geany geany-plugins
2.8.5. Archive manager
Xarchiver , a free and lightweight wizard for file compression and decompression. Did it come by default in CrunchBang GNU/Linux?
~# apt-get install xarchiver
2.8.6. run commands
gmrun (Gnome Completion-Run Utility) is the ultra-lightweight command launcher, it has autocompletion. Another classic from CrunchBang GNU/Linux and essential in Openbox.
~# apt-get install gmrun
2.8.7. Sound
CrunchBang GNU/Linux did you install PulseAudio? and used [TODO!] as the mixer and [TODO!] for the notification area potentiometer. PulseAudio has always seemed to me too big and complex for the function it has to fulfill and, worse, it has cost me countless hours on too many occasions… [ALSA]( http://www.alsa-project.org / “ALSA Project.”) pure and simple fulfills its functions scrupulously and I don’t remember that it has failed me.
In this case, alsamixergui
will replace [TODO!] and volumeicon-alsa
will replace [TODO!] as the hotkey in the notification area:
~# apt-get install alsa-base alsa-tools alsa-tools-gui alsa-utils alsamixergui volumeicon-alsa
2.8.8. screen capture
CrunchBang GNU/Linux installed [EVERYTHING!] and added a number of launchers to the Openbox menu. I’ve never used them, the Xfce screenshot wizard has always seemed light and intuitive enough. In any case, we will install both:
~# apt-get install xfce4-screenshooter
2.8.9. appearance manager
LXAppearance
is a totally dispensable utility, but it will occasionally greatly facilitate the task of changing the design and decoration of the windows, the colors, icon pack, fonts, and mouse cursor design. The lxappearance-obconf
package contains an add to
ObConf
of Openbox:
~# apt-get install lxappearance lxappearance-obconf
2.8.10. Designs and icons
The gtk2-engines-murrine
package is also unnecessary, however it will greatly improve the appearance of many GTK-based applications (those same applications that will fill the -logs- with warnings if they don’t find it).
mate-icon-theme-faenza
is also optional, but if not installed the Gnome icons will be used by default. The
Faenza
icons for MATE are very modern and this The package is very complete, including a whole series of light icons suitable for the generally dark backgrounds that we will use.
~# apt-get install gtk2-engines-murrine mate-icon-theme-faenza
2.8.11. Cursors and mouse pointers
Similar to CrunchBang GNU/Linux, the mouse cursor package DMZ (version in white) is very necessary to replace the default X (black) pointers: As the resulting desktop backgrounds will tend to be very dark, contrasting light cursors are imposed. We can’t waste even 10 milliseconds searching the screen for the mouse pointer! (and if we use several monitors, I won’t even tell you…).
~# apt-get install dmz-cursor-theme
2.8.12. power management
Power Manager
from Xfce. Initially, this utility would only be needed for laptops or workstations with an uninterruptible power supply. But, even if this were not the case, I always install it: It allows you to reduce the brightness of the screen to save energy, turn off the monitors after a period of absence to increase confidentiality, lock the desktop to prevent hindering misuse, etc.
~# apt-get install xfce4-power-manager
2.8.13. wallpaper manager
Another totally unnecessary utility that was installed by default in CrunchBang GNU/Linux but that occasionally will greatly facilitate the task of changing the desktop background images is Nitrogen :
~# apt-get install nitrogen
2.8.14. clipboard manager
In CrunchBang GNU/Linux we used [TODO!], I replace it with Parcellite . Equally light but, in my opinion, with a more current and better maintained development:
~# apt-get install parcellite
2.8.15. Network and Bluetooth connection manager
Not that I’m much of the NetworkManager from Gnome, but it’s a complete and fully functional helper.
blueman
will only be necessary if your laptop or desktop computer has Bluetooth (or if you eventually use it by connecting a USB adapter, for example).
~# apt-get install network-manager network-manager-gnome blueman
2.8.16. lock and screen saver
Although an animated screen saver is totally anachronistic (as an energy saving measure and to increase the useful life of our monitors, it is more appropriate to program its shutdown), [XScreenSaver]( http://www.jwz.org /xscreensaver/ “XScreenSaver.”) has another extremely important function from a privacy point of view (especially if you decided in step 2.3. not to install any session manager): It can lock the desktop to prevent or at least make it difficult the use of the system during our absences.
~# apt-get install xscreensaver
2.9.17. Pop-up notifications
There may be another simpler utility, but Xfce Notify Daemon is fit for purpose:
~# apt-get install xfce4-notifyd
2.9.18. task manager
The mythical htop , no objection:
~# apt-get install htop
2.9.19. Support for sleep and hibernation
There is an urban legend that the sleep and hibernate options are only intended for laptops… Really? In any case, if you are going to need hibernation, remember that the size of the swap partition must be at least equal to the size of the installed RAM.
~# apt-get install acpi-support
2.9.20. Screen manager (extended desktop)
If you regularly or sporadically connect other monitors, televisions or projectors to your computer, ArandR will be essential:
~# apt-get install arandr
2.9.21. Printer(s)
Finally, the printer manager CUPS :
~# apt-get install cups
3. Settings to recreate the ‘CrunchBang style’ environment
3.1. Configure Xorg
Nothing to configure here, at the moment.
If the installation is being done on a laptop with TouchPad, you may want to enable the ’tap’ option:
[ALL!]
3.2. Configure Openbox
The Openbox configuration files are in the repository “ ArtBangGNU ”.
3.2.1. The autostart file
The contents of the Openbox autostart
file (located in ~/.config/openbox/autostart
for a specific user or in /etc/skel/.config/openbox/autostart
for any new user) might look like this:
Note that, in this example, the compton
composer is not launched (see steps 2.X and 3.X); volumeicon
replaces [ALL!]
(see steps 2.X and 3.X); the daemon for the sound volume keys is also not launched (we have not installed it); Thunar is also not launched as a daemon, PCManFM does instead (see steps 2.X and 3.X); and Parcellite replaces [ALL!].
3.2.2. The menu.xml file
The following is just an example file (located in ~/.config/openbox/menu.xml
for a specific user or in /etc/skel/.config/openbox/menu.xml
for any new user ), with launchers to utilities that we have installed in previous steps and to applications that we can install or not in following steps.
Note that, due to very personal preferences, I have dispensed with the gksu
command (which depends on sudo
) to launch those applications that require root privileges. Instead I have used the su
command through terminal emulators.
3.2.3. The rc.xml file
Located in ~/.config/openbox/rc.xml
for a specific user or in /etc/skel/.config/openbox/rc.xml
for any new user.
4. Installation of applications for end use
4.1. Accessories
Already installed Catfish, Geany, PCmanFM, Terminatory and Xarchiver. There is not much else to install in this section.
4.2. Audio and video
Already installed ALSA Mixer as a sound mixer.
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. Images
Already installed 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. Office
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. Programming
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. Other suggested installations and configurations
[TODO!]