Themes

JamMt is capable to change its look by applying themes. This might be helpful for example if your laser glasses don't allow you to see a certain color on the screen. Beside the default theme there should be at least one theme on JamMt's website ready for downloading. Currently this is the 'Monochrome' theme. A theme consists of a .theme file and several PNG images.

Using a theme

To apply a theme you have to unzip/untar it and then copy it to the folder '.JamMt/themes/' within your home directory. Then you have to add/edit the colortheme entry in the file '.JamMt/config' and restart JamMt. To use the 'Monochrome' theme for example, add the following line within the 'Settings' section like this
< Settings>
...
< colortheme> Monochrome</colortheme>
...
</Settings>

Creating a theme

For each theme there has to be a folder within '.JamMt/themes'. The name of that folder determines the theme name as it has to be given in the config file. Within the theme folder there has to be the file 'themename.theme', where 'themename' is identical to the folder name. Beneath this file the theme folder has to provide several images in png format.

The .theme file format

Within the .theme file you can specify several colors and the position and height of each image. It is a simple text file that includes a variable specification on each line. Comments may be inserted by preceding a '#'. Colors are specified by their red, green, blue and alpha values. The height and position is given in units of the screen height. Here, the position 0.0 is the center of the screen. The following listing shows all default values:
# color of the 'y' axis
ChartFgCol: 255, 0, 0, 255

# background color of the chart
ChartBgCol: 230, 230, 230, 255

# color of the 'y2' axis
ChartFg2Col: 0, 200, 0, 255

# color of grid
GridCol: 30, 30, 30, 255

# background color of the info boxes
InfoboxBgCol: 250, 250, 250, 255

# foreground color of the info boxes
InfoboxFgCol: 40, 40, 40, 255

# y coordinates
handle_y = -0.4
lens_y = 0.0
substrate_y = 0.0
beam-analyzer_y = 0.0
clipping_y = 0.0
text-label_y = 0.0
info-box_y = 0.5

# components heights
handle_h = 0.1
lens_h = 0.4
substrate_h = 0.4
beam-analyzer_h = 0.8
clipping_h = 0.2
text-label_h = 0.8
info-box_h = 0.4

The image files

The naming convention for the PNG files is as follows:
These files must exist:
component[_flavor]_default_active.png

Other files have to follow the convention:
component[_flavor]_mode_state.png

The following values are allowed:
component: handle, lens, substrate, beam-analyzer, text-label, clipping
flavor: convex-convex, concave-concave, plan-plan
plan-convex, plan-concave, convex-concave
mode: rotate, default
state: active, inactive

Note that only lenses and substrates have a 'flavor'.