Post tutorial RSS Getting started - theme files & folders overview

A simple overview of theme files location and use. Need some knowledge of HTML, CSS & Javascript.

Posted by on - Intermediate Other

Desura provides an option for themes that can modify much of the overall look and feel of the client program.

Much of the Desura is actually a webpage with some clever use of CSS & Javascript to create features such as the games list. Themes can also add extra features (eg. extra category columns in the game list).

Getting Started

The first thing you'll want to know is where the themes are. These are stored in the Desura folder (where-ever you have installed it) in Desura/data/themes. There is a folder here for each theme. To get started you can copy the default theme, rename the folder and start making some changes.

Inside the theme folder

theme.xml: this file lays out the details of the theme (name, creator, version & preview image) and is also where you can modify the overall colour scheme. The rest of the file is mostly concerned with describing the filenames of icons will rarely need to be changed.

preview.jpg: this file is shown as the preview image when selecting the theme inside the Desura client.

css folder: this folder contains the "Cascading Style Sheets" that control the style (look and feel) of the respective.

html folder: this contains the webpages used for each element (chat, error, loading, playlist & settings) but don't expect a lot of HTML in them. As each element is very interactive the majority of these files is the javascript that builds the final output you see in the client.

images folder: this contains a multiple of icons & logos (png format) that you can modify to fit the style of your theme.

js folder: the "nuts and bolts" of the element's (chat, playlist, etc) functionality - these javascript files provide the functions that are utilised in the HTML files above-mentioned.

Other resources

Also of use are two other folders in the Desura/data folder:

bindings: this contains the API (including comments) - listing functions that you have available to use in your themes javascript modifications.

language: this folder contains each of the language files and can be useful to determine what strings you are able to utilise in your theme (or if you want to see what the text for a particular string is).


That's it for now - hopefully this gives you a better idea of where things are so you can start creating new themes. Future tutorials might cover a specific change (eg. removing "demos" from your games list "favourites" view).

feillyne Staff
feillyne - - 5,816 comments

Nice, thank you for the tutorial. I could also write one on how to add a simple custom theme.

Reply Good karma+2 votes
Zarius Author
Zarius - - 33 comments

Yeah, I think that'd be a great idea :)

Reply Good karma+2 votes
Arcones - - 5,546 comments

Very nice! Thanks for the tut, I plan on using it :)

Reply Good karma Bad karma+2 votes
RandomClown - - 1 comments

Good start, but we need an advanced tutorial to teach us how to fetch data like our "Games" listing, or individual "Settings" entries

Reply Good karma Bad karma+2 votes
NothingMuchHereToSay - - 24 comments

Anything new? How might I go about making a custom theme?

Reply Good karma Bad karma+1 vote
Krum110487 - - 2 comments

I created a custom theme that adds support for genre and hiding games, along with a few other things:

Reply Good karma Bad karma+1 vote
Post a comment
Sign in or join with:

Only registered members can share their thoughts. So come on! Join the community today (totally free - or sign in with your social account on the right) and join in the conversation.