This document explains briefly how to create a theme based on this engine. It assumes you already know how to modify gtkrc files. The configuration is divided in details. When widgets call the theme drawing functions they specify the detail from the widget they are drawing. This name is used to set different behavior for different details. Ex: detail { name = "button" } When there's no specified configuration for a detail that needs drawing the engine uses the values specified in the detail with name "default". If it doesn't exist, then it uses the built-in defaults. Colors: The colors are global and they are specified as the other themes do. In the future there may be possible to use different colors for different functions. Backgrounds: There are 6 kinds of backgrounds (names in parenthesis): linear gradient (gradient) quadratic gradient (quadratic_gradient) edge gradient (edge_gradient) corner gradient (corner_gradient) diagonal gradient (diagonal_gradient) no gradient (clean) All backgrounds except clean and corner_gradient must specify their direction. Directions for gradient, quadratic_gradient and edge_gradient: automatic -- Selects horizontal or vertical depending on the aspect ratio of the area drawn. horizontal vertical Ex: detail { name = "button" background = { quadratic_gradient, horizontal } } Directions for diagonal_gradient: They specify the direction the light comes from. nort_east south_east nort_west south_west Ex: detail { name = "tooltip" background = { diagonal_gradient, north_east } } Decorations: This option has been created for use in scrollbars. Use in different widgets may result interesting or not. Note that each kind of scrollbar has a different style in the provided gtkrc. This allows to have different gradient orientations for horizontal and vertical sliders. It is not recomended to use automatic gradient direction because it is gets wrong for very short sliders (width > length). Decorations appear in the scroll buttons ([hv]scrollbar detail) and in sliders (slider detail). There are 4 kinds of decorations: slash back_slash double_slash dot none Scroll buttons only have the ability to display a slash or no decoration. Sliders can display any decoration. Ex: detail { name = "slider" background = { quadratic_gradient, vertical } decoration = dot } Flattened gradients: edge_gradient and corner_gradient are quadratic gradients which have a solid rectangle in the middle. The size of the gradient parts is specified using edge_size and corner_size. When the size is decreased the result looks flatter. Ex: detail { name = "button" background = { edge_gradient, horizontal } decoration = none edge_size = 7 } Happy theming!