## GKrellM Themes Reference

Changelog-themes

    =========================================================================
    Intro
    -----
    The GKrellM structure is a framed stack of monitors and there are two
    monitor types, Charts and Meters, which have background images applied
    to drawing areas.  Charts have two drawing areas, the chart area and the
    panel area.  Meters have one drawing area, the meter area.
    Most theme images and options are applied at this level and many can
    be specified to apply to a particular Chart or Meter monitor.
          _______________________
          |_____________________|<- frame
          | |                 | |
           .                   .
          | |-----------------| |
          | |                 | |  Chart Monitor
          | |   chart area    | |
          | |                 | |
          | |-----------------| |
          | |   panel area    | |
          | |-----------------| |
           .                   .
           .                   .
          | |-----------------| |
          | |   meter area    | |  Meter Monitor
          | |-----------------| |
           .                   .
          |_|_________________|_|
          |_____________________|

    A theme is a directory in one of the locations: ~/.gkrellm/themes,
    /usr/local/share/gkrellm/themes or /usr/share/gkrellm/themes.  If a
    "gkrellmrc" file exists in a theme directory, it is parsed for theme
    specific settings such as borders, margins, colors, and krell parameters.
    The theme directory also has images for the frame, background images for
    each of the drawing areas, and detail images (decals and krells) which
    are drawn on panel and meter areas.

    Terminology:
    ------------
    Chart monitor -  A monitor type which has two background areas - a
    chart area with a bg_chart image as a background, and a panel area
    with a bg_panel image as a background.  Labels, decals, and krells
    are drawn in panel areas.

    Meter monitor -  A monitor type which has a single background area - a
    meter area with a bg_meter image as a background.  Labels, decals,
    and krells are also drawn in meter areas.

    Decals are pixmap graphics or text elements such as LEDs, button images,
    toggling labels, etc. placed in fixed locations in panel or meter
    areas.  These may have transparency and may overlap.

    Krells are pixmap graphics which are programatically moved horizontally
    across the face of a panel or meter area.  They implement meter indicator
    movements, moving animations, and slider controls.  Krells may have
    transparency and they move over decals.

    Image Structure:
    ----------------
    All theme images are either base level images which are in the toplevel
    of the theme directory, or monitor specific theme images which are placed
    in subdirectories of the toplevel.  All base level images have a default
    which will be used if it is not provided in a theme.

    Excluding detail and optional images (see below), here is the base set of
    images required for a theme change in GKrellM (.png used as an example).

    	F : frame_top.png
    	f : frame_bottom.png
    	  : frame_left.png
    	  : frame_right.png
    	c : bg_chart.png           a chart area background
    	p : bg_panel.png           a panel area background
    	m : bg_meter.png           a meter area background
    	  : bg_grid.png            a chart area background grid line
    	  : bg_separator.png       a chart area data view separator

    This is a side section view showing how these images are used to build
    GKrellM.  frame_left/right and bg_grid are not shown and not all
    monitors are shown.

       |<--Meters->|<--------Charts----------|<--------Meters---------->|
     | | Cal | Clk | CPU Chart  |  PPP Chart |Timer|  Mem | Swap |  FS  | |
     | |     |     |        |   |        |   |     |      |      |      | |
     o-o\___/-\___/-\______/-----\______/-----\___/-\____/-\____/-\____/o-o
     | |     |     |        |   |        |   |     |      |      |      | |
      F   m     m      c      p     c      p    m      m      m      m   f

    The last row shows where background images are applied to the monitors.

    ====================================================================
    Theme Image Names
    -----------------
    The background areas, krells, or some monitor detail images can have
    a monitor specific custom image substituted for the base level default
    image.  For a custom image to take effect, it only has to exist in the
    monitor specific subdirectory.

    Here is a table showing the image naming structure in a theme directory.
    Images may be .png as shown or .jpg or .xpm.

    Base level images in the top level of the theme directory
    --------------------------------------------------------------------------
    frame_top.png
    frame_bottom.png
    frame_left.png
    frame_right.png
    --------------------
    bg_chart.png
    bg_grid.png
    bg_separator.png
    bg_panel.png
    bg_meter.png
    bg_slider_panel.png
    bg_slider_meter.png
    --------------------
    button_panel_in.png
    button_panel_out.png
    button_meter_in.png
    button_meter_out.png
    --------------------
    krell_panel.png
    krell_meter.png
    krell_slider.png
    --------------------
    decal_misc.png
    --------------------
       (optional images for plotting data)
    data_in.png
    data_in_grid.png
    data_out.png
    data_out_grid.png

    Custom images in the theme subdirectories
    --------------------------------------------------------------------------
    Builtin Chart monitor theme subdirectories are:
    	cpu, disk, inet, net, proc

    Builtin Meter monitor theme subdirectories are:
    	apm, cal, clock, fs, host, mail, mem, timer, uptime

    Plugins will each have their own theme subdirectory which can be
    determined from the plugin documentation.

    All builtin or plugin Chart monitor theme subdirectories may have the
    custom images:

    	bg_chart.png
    	bg_grid.png
    	bg_panel.png
    	krell.png
    	spacer_top.png
    	spacer_bottom.png

    All builtin or plugin Meter monitor theme subdirectories may have the
    custom images (however, not all may use the krell.png):

    	bg_meter.png	(bg_panel.png is accepted for convenience)
    	krell.png
    	spacer_top.png
    	spacer_bottom.png

    In addition to the above custom images, each builtin or plugin may
    have additional images which are extension to the theme.  And they
    may also accept custom integer, string, or image border settings
    in the gkrellmrc.  Plugins should document what these images and
    custom settings are and how they are used.  The builtin theme gkrellmrc
    settings will be listed later in the gkrellmrc section, while the builtin
    image extensions are listed here:

    cpu:
    	cpu/nice.png
    	cpu/nice_grid.png

    net:
    	net/decal_net_leds.png

    mail:
    	mail/decal_mail.png
    	mail/krell_penguin.png

    mem:
    	mem/krell_buffers.png
    	mem/krell_cache.png
    	mem/bg_swap.png
    	mem/krell_swap.png

    sensors:
    	sensors/bg_volt.png

    timer:
    	timer/decal_timer_button.png
    	timer/bg_timer.png

    ==========================================================================
    Theme Image Descriptions
    ---------------------------
    --- Background images -----

    frame_top.png
    	The rendered height can be set with frame_top_height and a border
    	specified with frame_top_border in gkrellmrc.
    	Transparency is allowed.

    frame_bottom.png
    	The rendered height can be set with frame_bottom_height and a border
    	specified with frame_bottom_border in gkrellmrc.
    	Transparency is allowed.

    frame_left.png
    	The rendered width can be set with frame_left_width and a border
    	specified with frame_left_border in gkrellmrc.
    	Transparency is allowed.

    frame_right.png
    	The rendered width can be set with frame_right_width and a border
    	specified with frame_right_border in gkrellmrc.
    	Transparency is allowed.

    bg_chart.png
    	The background image for the chart area of a chart monitor.
    	To provide custom backgrounds for specific chart monitors,
    	theme subdirectories may have a custom version of this image.

    bg_grid.png
    	This is a 1 or 2 pixel high image which is pasted onto a bg_chart
    	background image to show grid lines.  Use it to get nice etched
    	grid lines.  It should balance the requirement that it be visible
    	yet not distract the eye from the data that is plotted on the
    	chart.
    	Monitor subdirectories may have a custom version of this image.

    bg_separator
    	The user may optionally split Charts into data views.   Data views
    	on a chart will be separated by this image.  It will be rendered to
    	bg_separator_height (specified in the gkrellmrc), which should
    	probably be	2 pixels high.

    bg_panel.png
    	The background image for the panel area of a chart monitor.
    	A border for this image can be set in the gkrellmrc.
    	Monitor subdirectories may have a custom version of this image.

    bg_meter.png
    	The background image for the meter areas of meter monitors.
    	A border for this image can be set in the gkrellmrc.
    	Meter monitor subdirectories may have a custom version of this image
    	which for convenience may be named bg_panel.png.

    bg_slider_panel.png
    	A background or trough for a slider (krell_slider image). It may
    	be pasted on top of a bg_panel if a slider is created for a
    	chart monitor panel and the monitor coder elects to apply the image.
    	If you do not make this image or the monitor coder has not applied it,
    	then a slider will simply move over the bg_panel image.  So an
    	alternative to this image would be to customize looks with a bg_panel.png.

    bg_slider_meter.png
    	A background or trough for a slider (krell_slider image).  It may
    	be pasted on top of a bg_meter if a slider is created for a
    	meter monitor panel and the monitor coder elects to apply the image.
    	If you do not make this image or the monitor coder has not applied it,
    	then a slider will simply move over the bg_meter.png image.  So, an
    	alternative to this image would be to customize looks with a bg_meter.png.

    ---------------------------
    --- Detail images ---------

    The default theme images will be used for any of these which do not
    exist in your theme directory.

    button_panel_out.png
    button_panel_in.png
    	These are images for a button type where the images for it are
    	displayed only when the panel area where they exist has the mouse.
    	When this button appears, it is an overlay on a label (or decal)
    	to emphasize that the label has been assigned button status
    	for launching a command.  Since the button is an overlay, it ideally
    	should be a 1 - 3 pixel highlighting border surrounding a transparent
    	interior (see the default theme implementation), but it could be a
    	semi-transparent special effect image depending on the theme.
    	If these images do not exist in your theme then the button overlay
    	will be constructed with a default gray color and may or may not
    	look good with your theme.
    	Set the border sizes for these images in the gkrellmrc with the
    	button_panel_border option.

    button_meter_out.png
    button_meter_in.png
    	Same as for button_panel except for overlay buttons in a meter area.
    	Set the border with the button_meter_border option in the gkrellmrc.
    	If your bg_meter is similar to bg_panel, then these can be copies of
    	the button_panel_in/out images.

    krell_panel.png
    	A vertical stack of krell frames.  See the Tips and Comments below.
    	These are used in the bg_panel areas and are intended to be used
    	as fast response indicators on chart monitors.  The default depth
    	is 4, although the middle two frames are identical.  If you make
    	a custom krell_panel, you must tell GKrellM the depth in the
    	gkrellmrc file if it is different from the default.
    	Chart monitor subdirectories may have a custom version of this image,
    	which should be named krell.png

    krell_meter.png
    	A vertical stack (default depth 1) of krells used in the bg_meter
    	area of meter monitors.  If you make a custom krell_meter, you must
    	tell GKrellM the depth in the gkrellmrc file if it is different
    	from the default.
    	Meter monitor subdirectories may have a custom version of this image,
    	which should be named krell.png

    krell_slider.png
    	A vertical stack (default depth 7) of krells used in the bg_panel
    	or bg_meter areas of chart or meter monitors.  If you make a custom
    	krell_slider, you must tell GKrellM the depth in the gkrellmrc
    	file if it is different from the default.

    decal_alarm.png
    	A vertical stack of images that are cycled through when an alarm
    	is triggered.  These images are usually placed behind a text decal
    	to highlight the value that has triggered the alarm.  If you don't
    	have sensor voltage monitoring or the APM monitor to play with,
    	run "gkrellm -demo" and you will be able to set APM alerts and
    	see the decal_alarm and decal_warn in action.  Set the number
    	of frames this image has in the gkrellmrc:
    	    decal_alarm_frames n

    decal_warn.png
    	Same as decal_alarm.png, except it is triggered by a less serious
    	warning event.  Set the number of frames for this image in the gkrellmrc:
    	    decal_warn_frames n

    decal_misc.png
    	A vertical stack of decals used for various monitors.  I have tried
    	to make these theme generic, but you could touch them up to better
    	match your theme.

    ---------------------------------------
    --- Optional data plotting  images ----

    data_in.png
    data_in_grid.png
    data_out.png
    data_out_grid.png
    	If these images exist they are used to plot data on the charts.
    	You can have textured or 3D plotted data to go with your bg_chart.
    	The data_in_grid and data_out_grid should be 1 or 2 pixel high
    	images and are drawn where the plotted data crosses a chart grid line.
    	If any of these do not exist data plotting falls back to using the
    	in_color and out_color specified in gkrellmrc.  Any shading effect you
    	put into a data image should probably track shading on your bg_chart.
    	Shading effects are not very apparent on low data density charts,
    	so get a big compile or net download going to see the effects.

    -----------------------------------------------
    --- Monitor specific cosmetic spacer images ---

    XXX/spacer_top.png
    XXX/spacer_bottom.png
    	Most monitors can use bg_XXX images and border settings to get a
    	desired appearance.  But some monitors are implemented with multiple
    	internal meter panels where these spacer images can be used to fine
    	tune the look.  Spacers are rendered to a default height of 3 pixels
    	unless set otherwise in the gkrellmrc.  These images have no defaults.
    	For example, a meter monitor with two panels can be either of:

    	    without spacers:              with spacers:
    	---------------------         ---------------------    spacer_top
    	|                   |         ---------------------
    	|                   |         |                   |    bg_meter
    	---------------------         ---------------------
    	|                   |         |                   |    bg_meter
    	|                   |         ---------------------
    	---------------------         ---------------------    spacer_bottom

    -------------------------------------------
    --- Builtin monitor custom images ----

    cpu/nice.png
    cpu/nice_grid.png
    	Used to plot the cpu nice time data in a color different from either
    	the data_in or data_out colors.  If these images don't exist and the
    	cpu_nice_color and cpu_nice_grid_color strings are not
    	set in the gkrellmrc, cpu nice time will use the data_in color.

    mail/krell_penguin.png
    	This is the multi frame penguin animation for new mail notification.
    	However, it does not have to be a penguin - any altenative will do.
    	Frame 0 is displayed when there is no new mail to announce and so
    	should be left blank.  When the penguin animation is enabled, new
    	mail to announce triggers the display of frames 1 through depth-2
    	as an animation moving across the width of the mail monitor panel.
    	Since frame depth-1 is not fully visible, it is not displayed and
    	is left blank.  The depth must be specified in the gkrellmrc:
    		StyleMeter mail.krell_depth = d

    mail/decal_mail.png
    	This is the stationary envelope animation in the mailcheck panel.
    	If envelope animation is enabled, frame 1 is shown by default and
    	a new mail count increase triggers frames 1 through depth-1 to be
    	shown as an animation.
    	If envelope animation is disabled, frame 1 is shown by default and
    	frame 0 is shown when a new mail count increase is detected.
    	This image is applied by default to all themes.
    	The number of frames is specified in the gkrellmrc file:
    		decal_mail_frames n

    mem/krell_buffers.png
    	An extra krell in the mem panel which shows kernel buffers usage.  It
    	should probably be de-emphasized with respect to the main panel krell.
    	Offset and depth parameters for it can be set in the gkrellmrc:
    	    set_integer mem_krell_buffers_yoff y
    	    set_integer mem_krell_buffers_depth d
    	    set_integer mem_krell_buffers_x_hot x
    	    set_string  mem_krell_buffers_expand {left | right | bar-mode }

    mem/krell_cache.png
    	An extra krell in the mem panel which shows kernel buffers usage.  It
    	should probably be de-emphasized with respect to the main panel krell.
    	Offset and depth parameters for it can be set in the gkrellmrc:
    	    set_integer mem_krell_cache_yoff y
    	    set_integer mem_krell_cache_depth d
    	    set_integer mem_krell_cache_x_hot x
    	    set_string  mem_krell_cache_expand {left | right | bar-mode }

    net/decal_net_leds.png
    	A vertical stack of 4 leds in the order:
    			rx_off, rx_on, tx_off, tx_on
    	The net LEDs are stenciled onto the bg_panel backgrounds of Net
    	chart monitors.  They may have non rectangular shapes with
    	transparency.  The rx and tx LEDs may overlap in complex ways
    	because they are individually stenciled onto the net bg_panels.

    timer/bg_timer.png
    	This is a background for the timer part of the TimerButton meter
    	monitor and is superimposed on top of its bg_meter.
    	It can be used to highlight the timer and visually separate it
    	from the button.  A border can be set for it in the gkrellmrc:
    		set_image_border timer_bg_timer l,r,t,b

    sensors/bg_volt.png
    	A framing background for the voltage values of the voltage sensor
    	monitor.  Run "gkrellm -demo" using the default theme to see it if
    	you don't have hardware sensor monitoring.  You can also set a border
    	for this image in the gkrellmrc:
    		set_image_border sensors_bg_volt l,r,t,b
    	Probably the top and bottom border should be only 1 or 2.

    timer/decal_timer_button.png
    	This is a vertical stack of button images for the button in the
    	TimerButton monitor.  There are 4 frames in the order:
    		off, pressed, standby, on

    ==========================================================================
    Notes on making a GKrellM theme
    -------------------------------
    1) A theme directory can exist anywhere for development purposes and can be
       specified on the command line:
           gkrellm -t theme_dir
       Hit the F5 key to reload a theme as you make changes.

    2) Detail images are drawn on bg_panel or bg_meter backgrounds as
       layers and each image may have transparency.

    3) Krells have several style parameters which you can set in the gkrellmrc:

      a) krell_yoff: adjusts a krell's vertical offset into a panel or meter area.

      b) krell_depth:  To build a krell with depth, vertically stack krell images
         in a krell_panel or krell_meter image and specify the number of frames
         in a krell_depth line in the gkrellmrc.  The frame displayed will
         be a function of the depth and horizontal x position of the krell:
           Depth 1: One frame displayed at all positions.
                 2: Display frame 0 at x = 0, frame 1 at all other positions.
             n > 2: Display frame 0 at x = 0, frame n-1 at x = full_scale, and
                    remaining frames at positions proportional to x/full_scale.

      c) krell_x_hot: is an offset in pixels from the left edge of a krell image.
         Krell images are drawn so that the krell x_hot spot is drawn at the
         current krell position in a panel or meter area.

      d) krell_expand:  The default is for a krell to be drawn at the same size
         as its original image.  But, if a krell_expand value is set, the krell
         width will be rendered to match the width of the GKrellM window.
         The krell_expand values are:
           left: The krell image area from the left edge to the x_hot spot is
               rendered to fit the GKrellM window width.  Look at the GKrellMSS
               plugin's VU meter krells for an example of this krell type.
           right: The krell image area from the x_hot spot to the right edge is
               rendered to fit the GKrellM window width.  This may not be useful.
           bar-mode: The total krell image width is rendered to fit the GKrellM
               window width.  Additionally, the krell x_hot spot is ignored.
               Instead, the krell position is indicated by drawing only the portion
               of the rendered krell image from its left edge to the current
               krell position.  The visual appearance is then a static "bar"
               across the full panel width with only the left portion up to
               the current krell position visible.  If krell_depth is not 1,
               then only the last frame of the krell image will be used in this
               mode.  This is new in GKrellM version 1.2.5.

    4) Run "gkrellm -demo" to see some less frequently used features you may
       not have available or enabled, such as cpu temps or the apm monitor.

    =======================================================================
    Theme Alternatives
    ------------------
    If there is a line in your gkrellmrc:
        theme_alternatives = N
    then you can have 1 to N different gkrellmrc and image alternatives
    that can be selected in the Themes tab.  For each alternative N,
    you can have an optional gkrellmrc_N whose options will override any
    set in the base level gkrellmrc.  If any image_N.png exists, it will
    be used in place of the base image.png.  This can be used to give
    some flexibility to your theme.  You could have more than one frame
    style or different font colors and sizes.  For example if you have
        theme_alternatives = 2
    Then you would have 3 gkrellmrc files:
    	gkrellmrc        (always applied)
    	gkrellmrc_1      (applied after gkrellmrc for theme alternative 1)
    	gkrellmrc_2      (applied after gkrellmrc for theme alternative 2)
    And you can have alternative images selectively applied depending on
    the alternative selected.  If you had these images:
    	bg_meter.png
    	krell.png
    	krell_1.png
    	fs/krell.png
    	fs/bg_meter_2.png
    then, the images would be used:
    Default Alternative 0:
    	Base images: bg_meter krell    fs monitor images: fs/krell bg_meter
    Alternative 1:
    	Base images: bg_meter krell_1  fs monitor images: fs/krell bg_meter
    Alternative 2:
    	Base images: bg_meter krell    fs monitor images: fs/krell fs/bg_meter_2

    ==========================================================================
    The gkrellmrc file
    ------------------

    Adjustments to label positions, margins, label colors/fonts, image borders,
    krell parameters, frame rendering, etc  are made in the gkrellmrc file.
    Setting these values may have a variable effect on different monitors
    because the programmer may use the values to differing degrees.  For
    example, margins may affect a label or some text decal but not affect
    other text decals because the programmer explicitely centers the decal.

    The possible gkrellmrc lines are listed here.

    The author line credits the theme maker.  This will appear in the Themes
    configuration window.
    	author = "yourname  email address"

    Theme alternatives are possible, see above.
        theme_alternatives = N

    If allow_scaling is true, then LED position and size is scaled according
    to the chart_width/chart_width_ref ratio.  chart_width_ref is the width
    you use for designing images and placing LEDs.
    	chart_width_ref  = w
    	allow_scaling    = {true | false}

    Frames can be rendered to heights and widths different from the
    drawn image sizes.  0 means use the drawn image width or height.
    	frame_top_height  = h
    	frame_bottom_height  = h
    	frame_left_width  = w
    	frame_right_width  = w

    Borders for images are specified with comma separated numbers in the order:
        left border, right border, top border, bottom border

    Borders for the main GKrellM window frame images.
    	frame_top_border = l,r,t,b
    	frame_bottom_border = l,r,t,b
    	frame_left_border = l,r,t,b
    	frame_right_border = l,r,t,b

    The data colors plotted on the charts are plotted in two different ways.
    If the images data_in.xxx, data_in_grid.xxx, data_out.xxx, and
    data_out_grid.xxx exist in the theme dir, they are used to plot data.
    If they do not exist, then the colors set here are used.
    Grid colors are drawn where the plotted data crosses a grid line.
    This allows grid lines to "show through" on high density charts.
    Colors are hex triplets ( #rrggbb ) or rgb.txt color names.  Put quotes
    around two word rgb_color_names.
    	chart_in_color       = { #rrggbb | rgb_color_name }
    	chart_in_color_grid  = { #rrggbb | rgb_color_name }
    	chart_out_color      = { #rrggbb | rgb_color_name }
    	chart_out_color_grid = { #rrggbb | rgb_color_name }

    The height of the bg_separator image that separates chart data views.
    	bg_separator_height = 2

    Some tweaking on drawing the background grid lines.  0 is normal and 1
    inhibits grid line drawing at the top and bottom of charts.
    This is useful for bg_chart pixmaps that have 3D shading at the top and
    bottom and is a cosmetic effect.
    	bg_grid_mode = {0,1}

    Negative x values here mean justify |x| pixels from right frame.
    Positive x values mean justify x pixels from left frame.
    Where to put the LEDs of each net interface monitor in its panel:
    	rx_led_x = x
    	rx_led_y = y
    	tx_led_x = -x
    	tx_led_y = y

    Number of frames in the stationary animated mail decal.  Delay is
    number of update ticks between each frame.  Set these if you replace
    the default mail decal envelope animation.
    	decal_mail_frames = 18
    	decal_mail_delay = 1

    Number of frames in the alarm and warn decal animation.
    	decal_alarm_frames = 10
    	decal_warn_frames = 10

    There is a krell image used as a slider control.  Set its depth and x_hot
    if you replace the default.  You can have a bar mode krell slider if you
    set krell_slider_expand to "bar-mode" (for this depth should be 1).
    There is one slider krell for all meter areas and panel areas, so style
    setting does not apply.
    	krell_slider_depth = d
    	krell_slider_x_hot = x
    	krell_slider_expand = {left | right | bar-mode}  # New in 1.2.5

    Set the borders for the background slider trough images.  There is one
    image for all panel areas and and one image for all meter areas, so style
    setting does not apply.
    	bg_slider_panel_border = l,r,t,b
    	bg_slider_neter_border = l,r,t,b

    Borders for the panel and meter buttons.
    	button_panel_border = l,r,t,b
    	button_meter_border = l,r,t,b

    Fonts.  Use the large/normal/small font names in style settings below to
    change the default font assigned to any text.
    	large_font  = "-adobe-courier-medium-r-normal-*-*-120-*-*-m-*-iso8859-*"
    	normal_font = "-adobe-courier-medium-r-normal-*-*-100-*-*-m-*-iso8859-*"
    	small_font  = "-adobe-helvetica-medium-r-normal-*-*-80-*-*-p-*-iso8859-*"

    ========= Spacer height settings ============
    If you use any top or bottom spacers for monitors you can set something
    other than the default 3 pixel height.  "mon" is a chart or meter monitor
    style name as listed below for styles (eg, clock, fs, gkrellmms, etc)
    	spacer_top_height mon h
    	spacer_bottom_height mon h

    ========= Extension hooks ===========
    These are ways to get options set for image or feature extensions which
    plugins will use.  Builtins may also use these hooks to set parameters.

    If a monitor uses a background image in addition to the standard bg_panel
    or bg_chart and its code allows for the image to be themed,
    a hook to set the border for that image may have been provided.
    It may be necessary to check plugin documentation to find the names, but for
    example, say a plugin "frump" uses an additional background image
    "bg_special.png" and for setting its border has added an image border
    hook "frump_bg_special".  Then if you have made a theme image
    frump/bg_special.png for this plugin, you can set the image border with:

    	set_image_border  frump_bg_special = l,r,t,b

    Plugins also have a way to request integer or string initialization
    values from the gkrellmrc.  Again, check for plugin Theme file documentation.
    There could be options like:

    	set_integer frump_some_integer = n
    	set_string  frump_some_color_string = "deep sky blue"

    Builtin monitor extension hooks:
    --------------------------------
    CPU monitor nice data color:
    	set_string cpu_nice_color color_string
    	set_string cpu_nice_grid_color color_string

    Net timer monitor border for the optional bg_timer.png image.  If bg_timer.png
    exists, it will be placed inside the top_margin and bottom_margin and at
    the left margin of the timer panel.  The timer display will be placed
    inside of the borders.
    	set_image_border timer_bg_timer 1,1,2,2

    Memory monitor krell_buffers optional image:
    	set_integer mem_krell_buffers_yoff 0
    	set_integer mem_krell_buffers_depth 1
    	set_integer mem_krell_buffers_x_hot -1
    	set_string  mem_krell_buffers_expand none   # New in 1.2.5
    Memory monitor krell_cache optional image:
    	set_integer mem_krell_cache_yoff 0
    	set_integer mem_krell_cache_depth 1
    	set_integer mem_krell_cache_x_hot -1
    	set_string  mem_krell_cache_expand none     # New in 1.2.5

    ========= Style settings for the monitors. ============
    Some options can be set to apply globally to areas of all similar monitors,
    or can be set to individually apply only to an area of a specific monitor.
    This is done with Style lines which can have a global '*' scope name or a
    specific monitor name.  Since these theme specifications begin at
    the monitor drawing area level, there are Style lines for each area.
    There are StyleChart and StylePanel lines for the chart and panel
    areas in the Chart monitors, and a StyleMeter line for the single
    meter area in the Meter monitors.

    Chart monitor style settings
    ----------------------------
    The builtin Chart monitors are: cpu, proc, disk, inet, and net.
    To apply a setting to a particular monitor, replace the '*' with
    the monitor name.  Plugin Chart monitor style names may be available
    which can also be used in place of the '*'.

    --Style settings applicable to the chart areas of Chart monitors--
    * textcolor line settings are:
    		color shadow_color drawing_effect
      color or shadow_color may be hex #rrggbb or text rgb_color_names, with
      two word rgb_color_names enclosed in quotes.
    * transparency settings are:
      1 - Forces a totally transparent chart, panel, or meter area.
      2 - For a partially transparent chart, panel, or meter area.
    	StyleChart	*.border = l,r,t,b
    	StyleChart	*.textcolor = #rrggbb #rrggbb {shadow | none}
    	StyleChart	*.alt_textcolor = #rrggbb #rrggbb {shadow | none}
    	StyleChart	*.font = {large_font | normal_font | small_font}
    	StyleChart	*.transparency = { 1 | 2 }

    --Style settings applicable to the panel areas of Chart monitors--
    Label postions are a percent of chart width, so a position of 50
    would center a label.
    margin is used for both left and right margins (for labels, decals, etc)
    Krell_depth is the number of frames in the krell image.
    Krell_x_hot is an offset into a krell frame. Set to -1 to set x_hot to center.
    Krell_y_off is an offset from a panel or meter area top for krell drawing.

    	StylePanel	*.border = l,r,t,b
    	StylePanel	*.label_position = { 0-100 | center | none }
    	StylePanel	*.margin = m
    	StylePanel	*.top_margin = m
    	StylePanel	*.bottom_margin = m
    	StylePanel	*.textcolor = #rrggbb #rrggbb {shadow | none}
    	StylePanel	*.alt_textcolor = #rrggbb #rrggbb {shadow | none}
    	StylePanel	*.font = {large_font | normal_font | small_font}
    	StylePanel	*.alt_font = {large_font | normal_font | small_font}
    	StylePanel	*.krell_depth  = d
    	StylePanel	*.krell_x_hot  = x
    	StylePanel	*.krell_y_off  = y
    	StylePanel	*.krell_expand  = none
    	StylePanel	*.transparency = { 1 | 2 }

    Meter monitor style settings
    ----------------------------
    The builtin Meter monitors are: apm, cal, clock, fs, host, mail, mem, swap,
       timer, and uptime.
    To apply a setting to a particular monitor, replace the '*' with
    the monitor name.  Plugin Meter monitor style names may be available
    which can also be used in place of the '*'.

    --Style settings applicable to the meter areas of Meter monitors--

    	StyleMeter	*.border = l,r,t,b
    	StyleMeter	*.label_position = { 0-100 | center | none }
    	StyleMeter	*.margin = m
    	StyleMeter	*.top_margin = m
    	StyleMeter	*.bottom_margin = m
    	StyleMeter	*.textcolor = #rrggbb #rrggbb {shadow | none}
    	StyleMeter	*.alt_textcolor = #rrggbb #rrggbb {shadow | none}
    	StyleMeter	*.font = {large_font | normal_font | small_font}
    	StyleMeter	*.alt_font = {large_font | normal_font | small_font}
    	StyleMeter	*.krell_depth  = d
    	StyleMeter	*.krell_x_hot  = x
    	StyleMeter	*.krell_y_off  = y
    	StyleMeter	*.krell_expand  = none
    	StyleMeter	*.transparency = { 1 | 2 }

    =======================================================================

For a working gkrellmrc example, here is the Default theme equivalent gkrellmrc