LaunchBox Theme Files and Folder Structure

Written By launchbox

Last updated About 1 month ago

LaunchBox Desktop themes live in the LBThemes folder. Each theme is its own folder, and most theme work happens inside that theme's Views folder.

A typical LaunchBox theme looks like this:

LaunchBox\LBThemes\[Theme Name]    LaunchBox\LBThemes\[Theme Name]\Views    LaunchBox\LBThemes\[Theme Name]\Images    LaunchBox\LBThemes\[Theme Name]\Fonts    LaunchBox\LBThemes\[Theme Name]\Plugins

The Views folder is required for any XAML files you want to customize. The other folders are optional, but they are useful for assets that ship with the theme.


Starting From Default

LaunchBox creates a built-in Default theme here:

LaunchBox\LBThemes\Default

When creating a new theme, copy the Default folder and rename the copy:

LaunchBox\LBThemes\My Theme

Avoid editing the Default theme directly. Keeping Default unchanged gives LaunchBox a reliable fallback and gives you a clean reference when comparing your custom files against the original theme.

After creating your copy, apply it from:

Tools > Manage > LaunchBox Themes and Media

Select your installed theme, click Apply Theme, and restart LaunchBox when prompted.


Root Theme Folder

The root theme folder is the top-level folder for your theme:

LaunchBox\LBThemes\My Theme

This folder can contain:

Item

Purpose

Views

Themeable XAML files loaded by LaunchBox.

Images

Images included with the theme.

Fonts

Font files included with the theme.

Plugins

Optional plugin DLLs for advanced themes.

LaunchBoxTheme.sln

Optional Visual Studio solution generated with the Default theme.

LaunchBoxTheme.csproj

Optional WPF project file generated with the Default theme.

Most themes only need Views, Images, and possibly Fonts.


Views Folder

The Views folder contains the XAML files that make up the LaunchBox Desktop interface:

LaunchBox\LBThemes\My Theme\Views

Common files include:

MainView.xaml    SideBarView.xaml    BoxesContentView.xaml    ListContentView.xaml    GameDetailsView.xaml    PlatformFiltersDetailsView.xaml    ContentBackgroundView.xaml    ControlsView.xaml    WorkingView.xaml    NotificationView.xaml    NotificationListView.xaml

LaunchBox loads these files by name. For example, when LaunchBox needs the game details panel, it looks for:

LaunchBox\LBThemes\My Theme\Views\GameDetailsView.xaml

If your theme does not include a specific view, LaunchBox can fall back to the matching view from the Default theme. This means you can customize only the views you care about instead of replacing every file.


Images Folder

Use the Images folder for artwork and visual assets that belong to your theme:

LaunchBox\LBThemes\My Theme\Images

Examples:

LaunchBox\LBThemes\My Theme\Images\Background.png    LaunchBox\LBThemes\My Theme\Images\Panel.png    LaunchBox\LBThemes\My Theme\Images\Icons\Play.png

When referencing theme assets from XAML, use the theme folder placeholder:

<Image Source="LAUNCHBOX_THEME_FOLDER/Images/Background.png" />

LaunchBox replaces LAUNCHBOX_THEME_FOLDER when it loads the XAML, so the path resolves to the active theme folder.


Fonts Folder

Use the Fonts folder for font files that ship with your theme:

LaunchBox\LBThemes\My Theme\Fonts

The Default theme includes several fonts, and custom themes can include their own.

A theme font can be referenced from XAML using the theme folder placeholder:

<TextBlock        FontFamily="LAUNCHBOX_THEME_FOLDER/Fonts/MyFont.ttf#My Font"        Text="LaunchBox" />

The exact font family name after the # must match the font's internal family name, not necessarily the file name.


Plugins Folder

Advanced themes can include plugin DLLs here:

LaunchBox\LBThemes\My Theme\Plugins

When the theme is active, LaunchBox loads plugins from this folder.

Most theme developers should start with XAML-only themes. Use theme plugins only when the theme needs behavior that cannot be handled with XAML, bindings, converters, templates, or existing LaunchBox view models.


Project Files

The Default theme includes generated project files:

LaunchBox\LBThemes\Default\LaunchBoxTheme.sln    LaunchBox\LBThemes\Default\LaunchBoxTheme.csproj

These files are useful if you want to open the theme in Visual Studio or work with richer XAML tooling.

They are not required for simple theme changes. LaunchBox loads the XAML files directly from the active theme folder, so many themes can be edited without compiling a project.


Files You Should Usually Edit First

For most themes, start with these files:

File

Why Start Here

MainView.xaml

Controls the overall LaunchBox window layout.

SideBarView.xaml

Controls navigation, filters, and search.

BoxesContentView.xaml

Controls the box/grid browsing view.

ListContentView.xaml

Controls the list/table browsing view.

GameDetailsView.xaml

Controls the selected game details panel.

Make small changes first, restart LaunchBox, and confirm the theme still loads correctly before moving on to larger layout changes.


What Not to Put Here

Do not put LaunchBox Desktop theme files in:

LaunchBox\Themes

That folder is for Big Box themes.

Do not put main LaunchBox Desktop theme files in:

LaunchBox\StartupThemes    LaunchBox\PauseThemes

Those folders are for game startup, shutdown, and pause themes.

Desktop LaunchBox themes belong in:

LaunchBox\LBThemes


In Short

A LaunchBox Desktop theme is a folder inside LaunchBox\LBThemes. The Views folder contains the XAML files LaunchBox loads, while Images and Fonts hold assets used by those views. Advanced themes can include plugins, but most themes should begin as simple XAML customizations copied from the Default theme.