Skip to content
Kyle Eichlin edited this page Mar 30, 2024 · 5 revisions

Summary

This repository now hosts a database of themes you can apply from within your device! Starting in CL v112 Alpha 6, the theme menu is now located in the Customization menu. Before, themes were located in the Frontend menu and only worked for Retro Game Platforms, now they work with apps too!

Technical Overview

All themes are stored in this repository in the themes folder. The theme folder includes a themes.json file that lists the available themes and a folder for each individual theme. The old method of theming still has a folder here called "platform_icons_packs" that will be removed in the next few weeks.

Each theme consists of a theme.json file that lists the theme metadata, a preview image, and folders for icons, banners, and posters. Only images are supported for now, with more planned for the future. generate_indicies.py is a simple Python script that generates the main themes.json file and fills in the image filenames for each theme.json. This script should be run after any change is made to a theme.

Theme Root Individual Theme
Screenshot 2024-03-29 at 9 47 49 PM Screenshot 2024-03-29 at 9 49 58 PM

Creating and Editing Themes

Creating a new theme is as simple as making a new folder in the themes/ directory, copying a theme.json from another theme, editing it with the info for the new theme, adding a preview image, placing images in their respective folders (icons, banners, posters), and running generate_indicies.py. The index generator will fill in the image filenames in the theme.json files, this is not done manually.

Filenames

Console Launcher can only know what images match each shortcut by the image filename. For example, a "ColecoVision" Platform will look for a filename in the theme that matches "coleco.png" (the file extension can be any of the supported types listed in generate_indicies.py). Other kinds of shortcuts, like native Android apps look for filenames differently. All image files must follow the convention {shortcut-convention}.{file-extension}. The table below shows the filename each must have to be compatible.

Shortcut Type Shortcut Convention Example
Android Apps The app's package name. Minecraft -> com.mojang.minecraftpe.jpg
CL Folders Not supported.
CL Android Game Folder Just "android" android.webp
Pinned Shortcuts Not supported.
ROM Platforms The platform's short name. This is found in the frontend menu's "Platform Information" section. PlayStation Portable -> psp.gif
ROM Shortcuts A bit tricky-this is the filename of the ROM with no extensions. I recommend using the filename from No-Intro ROM sets. Dimahoo -> dimahoo.svg

Supported File Types

File Type Supported Types
Images jpg, jpeg, png, gif, webp, bmp, svg
Audio Coming someday.
Video Coming someday.

Clone this wiki locally