The theme consists of one folder containing svgz files for decoration and buttons, one KConfig file
for the theme details and one metadata.desktop file which you can use to name your theme, author
information, etc.
Although the engine uses Plasma technology, it isn't Plasma. So it does not know anything about
Plasmoids and you will never be able to put Plasmoids into the decoration. That is out of scope of
this engine.
Aurorae uses the features provided by KWin 4.3. So the themes can provide their own decoration
shadows and it is recommended that your themes provide those. The engine supports ARGB decoration
which is enabled by default. If you provide a theme using translucency, please make sure, that it
works without compositing as well.
Window Decoration
=================
The window decoration has to be provided in file "decoration.svgz". This svg has to contain all the
elements required for a Plasma theme background. The decoration has to use the element prefix
"decoration".
If you want to provide a different style for inactive windows you can add it to the same svg. The
inactive elements must have the element prefix "decoration-inactive". The theme engine tests for
this prefix and if not provided inactive windows will be rendered with the same style as active
windows.
You have to provide a special decoration for opaque mode, that is when compositing is not active.
This opaque decoration is used for generating the window mask. The element prefix is
"decoration-opaque" for active and "decoration-opaque-inactive" for inactive windows. The mask is
generated from the active window.
Buttons
=======
You have to provide a svgz file for each button your theme should contain. If you do not provide a
file for a button type the engine will not include that button, so your decoration will miss it.
There is no fallback to a default theme. The buttons are rendered using Plasma's FrameSvg as well.
So you have to provide the "center" element. Borders are not supported
You can provide the following buttons:
* close
* minimize
* maximize
* restore
* alldesktops
* keepabove
* keepbelow
* shade
* resize
* help
Each button can have different states. So a button could be hovered, pressed, deactivated and you
might want to provide different styles for active and inactive windows. You can use the following
element prefix to provide styles for the buttons:
* active (normal button for active window)
* inactive (normal button for inactive window)
* hover (hover state for active window)
* hover-inactive (hover state for inactive window)
* pressed (button is pressed)
* pressed-inactive (pressed inactive button)
* deactivated (button cannot be clicked, e.g. window cannot be closed)
* deactivated-inactive (same for inactive windows)
You have at least to provide the active element. All other elements are optional and the active
element is always used as a fallback. If you provide the inactive element, this is used as a
fallback for the inactive window. That is, if you provide a hover element, but none for inactive,
the inactive window will not have a hover effect. Same is true for pressed and deactivated.
Reasonable that means if you provide a deactivated and an inactive element you want to provide a
deactivated-inactive element as well.
Configuration file
==================
The configuration file is a normal KConfig file. You have to give it the name of your decoration
with suffix "rc". So if your theme has the name "deco", your config file will be named "decorc".
The following section shows the possible options with their default values.
[General]
TitleAlignment=Left # vorizontal alignment of window title
TitleVerticalAlignment=Center # vertical alignment of window title
Animation=0 # animation duration in msec when hovering a button
ActiveTextColor=0,0,0,255 # title text color of active window
InactiveTextColor=0,0,0,255 # title text color of inactive window
LeftButtons=MS # buttons in left button group (see http://api.kde.org/4.x-api/kdebase-workspace-apidocs/kwin/lib/html/classKDecorationOptions.html#8ad12d76c93c5f1a12ea07b30f92d2fa)
RightButtons=HIA__X # buttons in right button group
Shadow=true # decoration provides shadows: you have to add padding
[Layout] # uses Layout Manager (see http://api.kde.org/4.x-api/kdebase-workspace-apidocs/kwin/lib/html/classKCommonDecoration.html#7932f74c28432ad8de232f1c6e8751ce)