ArtBangGNU: Installing and configuring Debian CrunchBang style.

ArtBangGNU: Installing and configuring Debian CrunchBang style

Miguel Menéndez

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)

Warning: Confidentiality problem in session abandonment or suspension/hibernation. Remember to install a screen locker.

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

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

Comments

Found a bug? Do you think something could be improved? Feel free to let me know and I will be happy to take a look.