Giocoso Version 3 - Visual Appearance Customisations

Giocoso Version 2 had a veritable plethora of options that could be set in the Persistent Configuration File to control the visual appearance of the program display -the colour of text used, and so on.

Most of those options have gone in Giocoso Version 3, at least in a form that is readily settable and re-configurable. However, they remain if you know where to look for them and are prepared to experiment!

Some new aspects of the way Giocoso Version 3 works (such as its reliance on forms and message boxes drawn by the dialog utility) mean that customisation is still possible provided you are prepared to tinker with those extra utilities' own configuration files.

Here I'll list a few of the simpler colour/visual tweak customisations it's possible to do to knock Giocoso Version 3 into a shape you're happy with.

1.0 Colour Constants

The Persistent Configuration file is generally edited by taking the Administration menu Option 3. However, the file is merely a text file -and it contains some parameters which are not exposed by that particular menu option:

Here I've opened the file in the Kate text editor that is generally standard on KDE-using distros, but I could have opened it in any available text editor. The file is, of course, found in $HOME/.local/share/giocoso3/txt and is called giocoso.conf. The key parameters to worry about in this context are those appearing on line 6 of the file: the 'colour constants'. The colour names shown here must not be altered, because otherwise Giocoso will break badly. But the numbers assigned to those names can be fiddled with at will: they are the ANSI colour codes:

You can see the configuration file says 'RED=1'... and the ANSI color chart confirms that 1 is indeed red. But you could set RED=9 and achieve a brighter, pinker red... or set it to 13 and get a purple instead. Thus, the 'normal' Giocoso program display looks like this with the default colour constants:

...but if I set the constants to this:


...and then re-launch the program, it will now appear like this:

All sorts of other graphical nightmares are made by possible by fiddling the colour constants in this way!

2.0 XTerm Colours

Giocoso tends to run inside an XTerm terminal: if you use the program launcher that the Giocoso installation procedure creates for you, it will contain a launch command such as:

/usr/bin/xterm -bg black -fg green -geometry 103x28 -fa 'Space Mono:style=Regular' -fs 12 -ti 340 -tn xterm-256color -e

...which is certainly pretty nasty, but basically says 'launch xterm at a certain size, using a certain font, and then run the shell script within it'. Rather crucially, however, it also contains a "bg" command, which sets the background terminal colour and an "fg" command, which sets the default foreground terminal colour. You can therefore edit the launcher command to specify any of the possible foreground and background colours, by name. Available colours are:

  • black
  • blue
  • green
  • yellow
  • cyan
  • white
  • magenta
  • red

If you set -bg magenta -fg blue within the launcher command, therefore, you can end up with this nightmare:

I'm not saying I'm recommending this approach, in case that wasn't obvious! I'm just saying that extensive control over Giocoso Version 3's appearance is possible, if you are prepared to fiddle enough with the launcher command and Giocoso's own colour constants. The interaction between them can be quite tricky to predict ahead of time, though, so extensive experimentation is probably required!

3.0 Dialog Colours

No matter how ghastly a colour scheme you've managed to cook up using the techniques mentioned in Sections 1 and 2 above, the moment you take a Giocoso option that invokes the display of a dialog box of some kind, the program's colours will immediately switch to those configured for use by the Dialog utility. For example, here's my weird choice of colours (in a vaguely sane terminal colour scheme!) from a couple of screenshots ago:

...but the second I take Option 2 on this menu, which triggers the display of a music selection filter form, I see this:

That black/white/grey/blue/red colour scheme is that belonging to the dialog utility and is immune from colour changes you may make to Giocoso or XTerm. In fact, it's controlled by its own, entirely independent, configuration file: $HOME/.local/share/giocoso3/txt/abgiodialog.conf. It's simply a text file and can thus be edited in any standard text editor. It contains a bazillion lines such as:

screen_color = (WHITE,BLACK,ON)
shadow_color = (BLACK,BLACK,ON)
dialog_color = (BLACK,WHITE,OFF)
title_color = (GREEN,WHITE,OFF)
border_color = (WHITE,WHITE,ON)
button_active_color = (WHITE,RED,ON)
button_inactive_color = dialog_color
button_key_active_color = button_active_color
button_key_inactive_color = (RED,WHITE,ON)
button_label_active_color = (WHITE,RED,ON)
button_label_inactive_color = (BLACK,WHITE,ON)

...and hopefully you can see where the red, green, white and black colours are being configured. This is a pretty hard file to understand or edit intelligently, I'll warn you in advance: the key thing to spot is that each dialog display element is described with a foreground, background and highlight combo. Hence, the default colouration of all dialogs invoked by Giocoso (governed by the 'screen_color' parameter) is to have a black background, white foreground text, and the white will be bright-white, because highlighting has been set 'ON'. Armed with this little knowledge, therefore, it's possible to replace colour names and see what effect such replacement has on things. If you're going to fiddle with this, I'd strongly recommend only changing one colour/parameter at a time, though!

Available colour names for the dialog utility are: black, red, green, yellow, blue, magenta, cyan and white.

Thus, by merely editing the first of the dialog configuration options to read: screen_color = (WHITE,YELLOW,ON) you can achieve this thing of beauty:

Again: I'm not recommending you should actually do this! I'd rather you spent your time listening to music instead, of course... but the capability to tailor these things is definitely there.

[ User Manual Home ]