System Monitor skins specification
Basics
The skin is the the INI-file with the skin settings and the set of images used in the skin. The images must be in the PNG format. This is possible to use the alpha channel (transparency) in the images. The INI file must be named MemonSkin.ini. All files must be placed into the single folder.
INI file contain the section in the square brackets and the values:
[section]
valueName = value
Values can contain the text, numbers, positions, sizes, and colors. There are some syntax rules to define the complex values like the colors.
Colors
System monitor supports the colors in the RGBA (Red Green Blue Alpha) format. Every color component must be in the range 0-255. The alpha component is the transparency value (0 – transparent, 255 – opaque). The alpha component is optional (it is 255 by default). The color components must be separated by the space. Here some examples:
color1 = 255 0 0 ; red color color2 = 0 255 0 ; green color color3 = 0 0 255 ; blue color color4 = 34 56 98 128 ; color with transparency
Positions and Sizes
All sizes and positions must be defined in the points. The positions is relative to the left-top corner of the skin. The left-top corner have the 0 0 position. Size and Position must have two numeric values separated by space. The first value is the horizontal position (X). The second value is the vertical position (Y). For size these values are width and height.
Pos = 23 34 ; position at X:23 Y:34 size = 48 24 ; width:48 height:24
The Counters
The counters is the system parameters the System Monitor can show. The values in the table bellow are the same as they must appear in the INI file. Here is the list of supported counters:
Value | Description |
CPU | The CPU usage. |
PHYS_TOTAL | Total physical memory |
PHYS_USED | Used physical memory |
PHYS_FREE | Free physical memory |
VIRT_TOTAL | Total virtual memory |
VIRT_USED | Used virtual memory |
VIRT_FREE | Free virtual memory |
PAGE_TOTAL | Total page file size |
PAGE_FREE | Free space in the page file |
PAGE_USED | Used space in the page file |
CPU# | This counter can appear in the diagrams only. SM split the diagram to show the usage of the every core or processor in the multi-core systems. |
Section [options]
The section [options] used to define the skin name and author. Possible values:
- name – (required) the skin name. This value is shown in the skins list.
- author – (optional) the skin author's name
- email – (optional) the author's email
- url – (optional) the author's home page
Example:
[options]
name = Vista Sidebar
author = Tordex
email = support@tordex.com
url = http://www.truelaunchbar.com
Section [general]
This section describes the global skin parameters. The values in this section can be:
- background – (optional) the image file name for the skin background.
- autosize – (optional, default: none) Specifies the auto-sizing feature for the skin. This parameter can be one the following:
Value | Description |
none | The auto size is disabled. The skin size is defined by the background image of in the size value. |
width | The skin uses the default button width as the base size. So the width of the button never be more the the default button width. The height is scaled with the constrain proportions. This value can be used to make non-square skins for vertical toolbars. |
height | The skin uses the default button height as the base size. So the height of the button never be more the the default button height. The width is scaled with the constrain proportions. This value can be used to make non-square skins for horizontal toolbars. |
- size – (optional) the skin size. This value is ignored if you define the background image and the autosize is set into none. If the autosize is enabled then the size value used as the base size to calculate all other positions and sizes.
Sections [diagram#]
The sections [diagram#] defines the chart (diagram) to draw the counters. The # is the 1-based index of the diagram. Here is the list of possible values in this section:
- field – (required) the counter name
- type – (required) the type of the chart. Some other parameters are depends of the chart type. This parameter can be one of the following:
Value | Description |
VertRow | The vertical row |
HorzRow | The horizontal row |
History | The histogram |
Pie | The pie chart |
RotateImage | The image rotation depending of the counter value. This type can be used to create the gauge like effects. |
- image – (optional) this is the image file name. If the chart don't uses the image this parameter is ignored.
- background – (optional) this is the image file name for the chart background
- size – (required) the size of the chart
- point – (required) the position of the chart
- rotatePoint – (optional) the position of the center point in the image to rotate image around it. This parameter used only is the parameter type is the RotateImage.
- rows – (optional) the number of the rows for multi-core charts. This parameter is always ignore if the counter type not a CPU#.
- cols – (optional) the number of the cols for multi-core charts. This parameter is always ignore if the counter type not a CPU#.
- color – (required) the color of the chart
- color2 – (optional) the second color in case of the gradient fill.
- emptyColor – (optional) the color of the “empty part” of the rows and pie charts.
- emptyColor2 – (optional) the second color of the “empty part” of the rows and pie charts. This color is used for gradient fill.
- outlineColor – (optional) the main outline color
- emptyOutline – (optional) the outline color of the “empty part” of the rows and pie charts.
- gradient – (optional) the gradient type to fill the charts. This parameter can be one the following:
Value | Description |
X | Fill the chart by horizontal gradient. Parameters color and color2 used and the start color and the end color. |
Y | Fill the chart by vertical gradient. Parameters color and color2 used and the start color and the end color. |
solid | The solid fill, color2 is ignored |
- startAngle – (optional) the image will be rotated on this angle when the counter have the minimum value. This parameter used only if the type is the RotateImage.
- endAngle – (optional) the image will be rotated on this angle when the counter have the maximum value. This parameter used only if the type is the RotateImage.
- fillType – (required) this parameter defines how the chart will be filled or outlined. This parameter can be one the following:
Value | Description |
solid | The chart will be filled by solid color or gradient. Also the chart can be outlined. |
line | The chart will be outlined only. Plugin uses the color parameter for outlining. |
picture | The chart will be filled by the picture. |
- imageStyle – (optional) this parameter defines how to process image to fill the chart. This parameter can be one the following:
Value | Description |
stretch | Stretch the image |
tile | Tile the image |
crop | Crop the image. When using this type width or the height of the chart is set into the width or height of the image. |
- TopSizeMargin – (optional) the part of the image at the top side that never stretched. This parameter used if the fillType is the picture and the imageStyle is the stretch.
- BottomSizeMargin – (optional) the part of the image at the bottom side that never stretched. This parameter used if the fillType is the picture and the imageStyle is the stretch.
- LeftSizeMargin – (optional) the part of the image at the left side that never stretched. This parameter used if the fillType is the picture and the imageStyle is the stretch.
- RightSizeMargin – (optional) the part of the image at the left side that never stretched. This parameter used if the fillType is the picture and the imageStyle is the stretch.
- valuesFrom – (optional) the side from what the values will grow. Can be one of the following: left, right, top, bottom.
- startFrom – (optional) the side from what the new values will appear in the histograms. Can be one of the following: left, right, top, bottom.
Here the examples of the [diagram#] sections:
[diagram1] field = CPU ;the CPU usage counter type = History ;the histogram point = 16 16 ;position size = 30 31 ;size fillType = solid ;fill type color = 0 255 0 128 ;fill color outlineColor = 0 255 0 255 ;outline color startFrom = right ;new values from the right valuesFrom = bottom ;values grows from the bottom [diagram2] field = PHYS_FREE ;the physical memory counter type = VertRow ;vertical row point = 2 16 size = 12 31 color = 0 255 255 128 ;transparent fill color outlineColor = 0 255 255 255 valuesFrom = bottom
Sections [DataSlot#]
The sections [DataSlot#] defines the text data to draw. The # is the 1-based index of text data. Here is the list of possible parameters in this section:
- field – (required) the counter name
- text – (optional) any text string to draw. This parameter is ignored if the feald parameter is defined.
- format – (optional) the data format. This parameter can be one the following: auto – skin selects the format automatically, percent – text data is in the percent form. The percent format depends of the counter name. For the CPU counters the format is always “percent”.
- font – (optional) the font name to draw the text. By default skin uses the Arial font.
- align – (required) the text horizontal alignment. This parameter can be one the following: left, right, center. The vertical alignment is always center.
- pos – (required) the text position
- size – (required) the text size
- color – (required) the text color
- showUnit – (optional) 0 (zero) – hide the counter unit. 0 (zero) – show the counter unit.
- bold – (optional) the text the bold text. This parameter can be 0 (zero) or 1. If the value is 1 the text is bold.
- italic – (optional) the text the italic text. This parameter can be 0 (zero) or 1. If the value is 1 the text is italic.
Here the examples of the [diagram#] sections:
[DataSlot1]
field = CPU
font = Tahoma
bold = 0
italic = 0
align = right
pos = 0 0
size = 46 17
color = 0 255 0
Sections [image#]
The sections [image#] defines the images draw on the skin. The # is the 1-based index of the image. Here is the list of possible parameters in this section:
- image – (required) the image file name.
- pos – (required) the image position
- zorder – (required) the image zorder. This parameter can be 0 (zero) to draw image before charts, 1 to draw image after the chart and before the text and 2 to draw the image after the text.
Multi-core support
Section [core]
This section is used to define the chart for one core in the multi-core skin. The section have the same parameters as the [diagram#] sections. The parameter field is ignored here. Also some new parameters added:
- coreSize – (required) the chart size.
- dock – (required) the side where the core charts must be attached. This parameter can be one the following: left, right, top or bottom.
- rows – (required) the number of the rows.
- cols – (required) the number of the columns.
You must define one of the parameters rows or columns only. Not the both. The omitted parameter is calculated by the skin.
Section [coreText]
This section is used to define the text on the core chart in the multi-core skin. The section have the same parameters as the [DataSlot#] sections. The parameter field is ignored here. Also some new parameters added:
- showText – (required) this parameter must be 1 to show the text.
Section [coreImage#]
This sections is used to define the images to draw on the core chart in the multi-core skin. The section have the same parameters as the [image#] sections.