mainhd.gif - 15Kb

NEW! (May 2024): !Compo is now available again and can be downloaded via the "!Store" RO Repository! To mark this revival of !Compo I have added a new "!Compo Revived" webpage to illustrate just how powerful and flexible it can be via its ability to allow the user to develop new ways to create graphics, etc.

These pages are intended to provide useful information for users of !Compo.

!Compo is an excellent application for working on graphics. Personally I find it outstandingly useful as a way to create web graphics, etc. However, these pages aren’t meant to be a ‘how to use’ tutorial, nor are they about art or graphic design. Their main purpose is to provide some extra ‘inside information’ to help you setup or customise your copy of !Compo so that using it becomes easier. They also provide some detailed information on ‘CompoScript’ along with some example scripts.

In addition to the information on these pages, I have also been writing an occasional series of articles on using Compo for ‘Archive’ magazine. The first of these appeared in the August 2000 issue. Some example images and other resources used for the articles can however be downloaded from my Archive page. The resources available for downloading include useful examples of Composcript and scriptlets. These include:
I have now (2024) added a pdf copy of the Archive artices. You can download a copy of this series from Archive-1-6.pdf

If you have an up-to-date copy of Compo you should be able to use the above scripts/scriptlets. Please note that the files are provided mainly as a resource so that Archive readers can try out the examples described in the articles. Brief instructions are included in the zips provided, and these should suffice for you to get the scripts working. However, if you want the full text explaining the above scripts, or have questions, you'd better subscribe to Archive magazine! :-)

Please note that the content of these webpages were written by me. Neither Clares nor Rob Davison are responsible for any of the daft things I may write. Nor do they (or I!) take any responsibility if you alter !Compo with disasterous results. Keep a backup copy of any files you alter! Proceed with care! Keep away from children! (Oops! That last is just a piece of generally good advice. After all, the writing on the packs of most medicine gives the same advice, so it must be sound.) OK, now read on...

script.gif - 8Kb

CompoScript is a scripting language that Rob Davison has developed for use with !Compo. To use it you require a version of !Compo no lower than 1.18. CompoScript is potentially a very significant and powerful enhancement of Compo's capabilities. It allows new processing functions to be added to Compo by the user. It also allows for the ‘automation’ of a variety of graphical tasks such as the generation of animations!

Some reference information on the CompoScript commands, etc, is provided with Compo itself. However to make things easier for those first starting out on using CompoScript I have written some explanations that use a few simple examples to demonstrate how the scripts work and how they can be used. I have also provided some reference pages. By examing the example scripts I have provided alongside the explanations you should find it easier to discover how to write and apply scripts of your own.

The CompoScript examples pages I have produced so far are:

The example script files, etc, can be downloaded by clicking on this link.

From 1.18j onwards, Compo supports ‘scriptlets’ as a convenient way to integrate scripts into Compo. As a demonstration I have produced two simple examples of scriptlets. These can be downloaded from the following page which also explains how scriptlets can be installed and used.

The Reference pages provided so far are as follows:

prfs.gif - 5Kb

!Compo provides various settings, many of which can be saved as user preferences. These are mostly stored in the file ‘!Compo.resources.prefs’ which is in the form of a readable textfile. Generally you should use Compo itself to write this preferences file as it will always produce valid files. Modifying these manually short circuits the range and validation checking in Compo. Out of range values in a preferences file can prevent the program from running.

The meanings and purpose of many of the items in that file should be obvious, other are somewhat obscure. (To add to the obscurity, some lines have duplicated titles! Also, in true ‘programmer’ fashion, the logical statements ‘TRUE’ or ‘FALSE’ are sometimes replaced with ‘0’ or ‘-1’ just to confuse the unwary.)

For convenience, I have divided the list and explanation of the items in the preferences file into two tables on pages linked below:

Note that the details given are those currently correct for versions 1.15 to 1.17. The details of the preferences file may change without notice in future as !Compo is developed, and many of the settings may be absent from earlier versions.

msgs.gif - 5Kb

If you are feeling bold enough, you can also edit some parts of the file ‘!Compo.Resources.messages’. In particular this contains two useful sections. The first of these is a line that starts with:


This is followed by the list of default canvas sizes that can be accessed via the ’Canvas size’ menu. The standard format of each entry is

<width in pixels>x<height in pixels>[optional comment]\

For example, in the file as it comes with !Compo, the message string begins

m3:#Sizes\640x512\768x576 (PAL video)\768x512 etc...

Hence the first size listed on the menu is 640 by 512 pixels, the second is 768 by 576 and is labelled as ‘PAL video’, and so on. You can edit this list to create a set of default sizes that you prefer.

In my case, I have edited the first part of this message string to read

m3:#Sizes\1024x705 (Backdrop)#\600x180 (Big header)\500x150 (Mid header)\450x120 (Small header)#\ etc...

as I most frequently want to create backdrops for a 1024 by 768 screen mode, or things like ‘header’ images for webpages. By examining this example you can also see that I have included some extra # symbols. These generate a broken line in the displayed menu so you can visually group sets of standard canvas sizes in a convenient way.

Another example is the set of default text sizes available from the menu in the text creation/editing window. By default this is controlled by the line


in the messages file. In this case each of the values is a text size in points. These can be altered to new values which you may find more convenient. However, you should take care to leave the final item in this list alone!

As with the preferences file, please remember to take backup copies of files before making alterations, and take care to make changes that are within the ranges and formats that !Compo expects. Note also that new versions of !Compo may contain new copies of the preferences or messages files in order to support new features. Hence upgrading may overwrite any changes you have made by hand. For that reason also keep copies of any changed files as a reminder in case you have to reapply anything!

Content and pages maintained by: Jim Lesurf
using HTMLEdit, Compo, and TechWriter.