Developers / Theme development

Make the dock your own.

Create a theme with a text editor. No compiler is needed.

Theme format Packaging Import and test

A NovaDock theme is one plain text file named theme.cfg. It controls colours, tile shape, placement, font, labels and spacer defaults. Graphic dock backdrops are not used.

  1. Copy one bundled theme directory to a working drawer.
  2. Edit theme.cfg with a plain text editor.
  3. Give it a new display name and adjust only the values you need.
  4. Keep it in its own newly named theme drawer, import it in Appearance and choose Test.
NAME=Blue Copper
SHAPE=CHAMFER
SIDE=BOTTOM
POSITION=CENTER
FONT=TOPAZ
LABELS=ALWAYS
SPACER_WIDTH=52
SPACER_LINE=YES
SPACER_LINE_COLOR=ACCENT
SPACER_LINE_WIDTH=2
BG=25,38,76
TILE=32,50,92
HOVER=48,72,120
TEXT=235,240,255
SUBTLE=155,175,205
ACCENT=86,155,235
BAR=30,42,65
ACCENT2=86,210,170

Supported values

  • SHAPE: ROUNDED, SQUARE, CHAMFER or MINIMAL.
  • SIDE: BOTTOM, TOP, LEFT or RIGHT.
  • POSITION: START, CENTER or END.
  • FONT: WORKBENCH, TOPAZ or BOLD.
  • LABELS: ALWAYS, HOVER or HIDDEN.
  • BEVEL: YES for a raised frame around the dock, or NO.
  • Colours: decimal red, green and blue values from 0 through 255.
  • SPACER_WIDTH: 20 through 140 pixels.
  • SPACER_LINE: YES or NO; colour is SUBTLE, ACCENT, SECONDARY or TEXT; width is 1 through 8.
Expandable theme catalogue

Appearance lists the bundled presets followed by every valid theme drawer found in PROGDIR:Themes. Third-party themes do not replace built-in slots, and the catalogue grows dynamically with the installed themes.

The drawer name is the stable theme ID. Use only letters, digits, underscore and hyphen, with a maximum of 31 characters. The NAME entry is the friendly label displayed in Preferences.

BG is the dock background; TILE and HOVER distinguish items; TEXT and SUBTLE control labels. ACCENT and ACCENT2 colour meters and graphs, while BAR is the unfilled meter colour. Check that both normal and hovered text remain readable.

Find starting points in the bundled theme source when the tagged release is available. Keep your own unique drawer ID so an update does not replace another author's theme.

Package a theme

A portable ZIP or LHA package should contain no executable and can use:

BlueCopper-1.0/
  README.txt
  Themes/
    BlueCopper/
      theme.cfg

Include the theme name, author, license, NovaDock version, theme ID, installation and uninstall instructions. Keep filenames and directory case exactly as shown. Test the package from a clean copy before publishing it.

Import and test

  1. Extract the package anywhere.
  2. Open NovaDock Preferences and choose Appearance.
  3. Choose Import... and select the pack's theme.cfg.
  4. NovaDock validates and copies it to PROGDIR:Themes/<theme-id>/theme.cfg, then selects it.
  5. Choose Test. Use Save only when the result is correct.

Selecting a theme changes the Preferences sample. Test temporarily applies the complete preset while Preferences stays open; closing Preferences after a Test restores the original appearance. Use applies it for this session and exits; Save keeps it permanently and exits.

Test horizontal and vertical placement, long labels, hover colours, meters and spacers. Refresh mode is a separate resource preference and is not changed by a theme.

Importing the same theme ID updates that theme safely: the new file is copied and validated before the installed copy is replaced. For manual installation, copy the complete theme drawer into NovaDock:Themes/ and reopen Appearance.

To uninstall an imported theme, select it in Appearance and choose Import...; NovaDock offers to remove it. A theme that is in use or saved cannot be removed, so Use or Save another theme first. Bundled themes cannot be removed.

Want to create an executable extension instead? See the Plugin SDK guide.