March 3, 2008

BashStyle-NG: A useful idea poorly implemented

Author: Bruce Byfield

Inside BashStyle-NG, a strong idea struggles to be born. On one hand, if you use the bash shell at all, you will likely find several of BashStyle-NG's customization options worth trying -- all the more so because they are only a few mouse clicks away. On the other, a poorly designed interface makes using the program a matter of guesswork, despite the fact that the latest release is supposedly the third release candidate for version 5.0.

Designed for GNOME, BashStyle-NG should require few dependencies not already on your system, with the possible exception of the 2.4 versions of Python, pythongtk, and pyglade. Although information on the download page suggests that a .deb package is forthcoming, it is not in the project's repository, so for now the program must be compiled from source, using ./configure and make install in the usual way.

The program opens from Main Menu -> Accessories in the GNOME menu in a small dialog with six views. Before you can apply any of BashStyle's tweaks, you must select the Use Bashstyle? box in the Basic View.

BashStyle's options cover a wide range of options, some of which will be familiar to experienced users -- for instance, coloring individual portions of the command prompt such as the user and host names and setting command aliases. Others are likely to be less well-known, such as colored man pages and grep output, and a command completion blacklist.

Sad to say, though, BashStyle is nowhere near as close to official release as its release candidate status suggests. For instance, starting the program floods the console with a list of the options that are not set -- a debugging aid that might be acceptable in an alpha release, but is hardly something you'd expect in a piece of software that is supposedly close to its official release.

Even worse, navigating the interface is largely a matter of guesswork. The six views are arranged across the top, but nothing in the window indicates which you are currently viewing. In fact, it is only by experimenting that you realize that the program always starts with the Basic view.

Nor does the window include any button you can click for online help. The closest you get is a few cryptic phrases on the Alias page which are unnecessary if you already know how to use the alias command, and next to useless if you are a newcomer looking for a graphical shortcut.

Navigation is not improved, either, by the selection of item names. Only the Alias view is self-evident. The others are Basic, Expert, Advanced, Functions, and Style -- all of which might mean something to the developer, but convey next to nothing to others. What, for instance, is the difference between the contents of Expert and Advanced? As for Functions and Style, isn't the whole of the program supposed to be concerned with one or the other of these?

The confusion continues within the views, especially the Style view. While you can probably figure out that you are choosing an overall look and feel when you click a selection in the Choose Style drop-down list, names like Vector, Elite, and Power-User give you no idea what design scheme you are choosing, because you are given no preview. Similarly, you can only learn by experimentation what you get when you Erasedups or Ignoredups from the History Control Type, or what colors you get for grep output when you choose Smoothblue as opposed to Iceview.

For that matter, why items are placed in a particular view is largely a mystery as well. It makes sense that the check box to enable BashStyle is in the Basic view, and that you set command aliases in the Alias view. But why is the check box for colored man pages under Functions, rather than with other color options under Basic? And why is the Timeout (which is misspelled) and other options for grep placed under Advanced? The arrangement seems completely arbitrary.

Done properly, BashStyle could be a handy little utility. For better or worse, most versions of GNU/Linux are going to require use of the command line for advanced work, so the ability to customize a virtual console only makes sense. However, in its present form, BashStyle irritates as much as it assists. The program needs an interface expert to serve as midwife. Otherwise, without someone to overhaul its design and usability, BashStyle seems likely to be stillborn.


  • Reviews
  • Tools & Utilities
  • Desktop Software