Theme Folder Structure

For a theme to function as intended, you will need to use the proper folder structure containing all your files in the correct place. Below is an example of the correct structure that you can replicate if you are creating/editing a theme.

.
├── active.txt
├── assets.muxzip
├── credits.txt
├── alternate
│   └── {alternate 1}.ini
│   └── {alternate 1}.muzip
│   └── {altrenate 2}.ini
│   └── {altrenate 2}.muxzip
│   ├── rgb
│   │   ├── {alternate 1}
|   |   │   └── rgbconf.sh
│   │   ├── {alternate 2}
|   |   │   └── rgbconf.sh
├── font
│   └── default.bin
│   ├── header
|   │   └── default.bin
│   ├── footer
|   │   └── default.bin
│   ├── panel
|   │   └── default.bin
├── glyph
│   ├── muxlaunch
│   |   ├── explore.png
│   |   ├── favourite.png
│   |   ├── history.png
│   |   ├── apps.png
│   |   ├── info.png
│   |   ├── config.png
│   |   ├── reboot.png
│   |   ├── shutdown.png
├── scheme
│   └── global.ini
├── 640x480
│   ├── font
│   │   └── default.bin
│   ├── glyph
│   │   ├── muxlaunch
│   │   |   ├── explore.png
│   │   |   ├── favourite.png
│   │   |   ├── history.png
│   │   |   ├── apps.png
│   │   |   ├── info.png
│   │   |   ├── config.png
│   │   |   ├── reboot.png
│   │   |   ├── shutdown.png
│   ├── image
│   |   ├── bootlogo.bmp
│   |   ├── overlay.png
│   |   ├── static
│   |   |   ├── muxlaunch
│   |   |   |   ├── explore.png
│   |   |   |   ├── favourite.png
│   |   |   |   ├── history.png
│   |   |   |   ├── apps.png
│   |   |   |   ├── info.png
│   |   |   |   ├── config.png
│   |   |   |   ├── reboot.png
│   |   |   |   └── shutdown.png
│   |   |   └── muxinfo.png
│   |   └── wall
│   |       ├── default.png
│   |       ├── muxtester.png
│   |       └── muxcharge.png
│   ├── scheme
│   |   ├── default.ini
│   |   └── muxtester.ini
├── 720x480
├── 720x576
├── 720x720
├── 1280x720
└── sound  

In the above example, there are some files here that are not necessary to have a working theme - however the elements included above show off the amount of possible customisation available.

  • font - Here is where you can place custom fonts compiled into a .bin format. Fonts placed in the panel subfolder will override the font used for list items. Fonts placed in the header subfolder will override the font used for the header. Fonts placed in the footer subfolder will override the font used for the footer.
  • glyph - Place png images for list item glyphs. See Theme Folder Structure Glyphs section for full list of names.
  • image - Place all image assets of your theme here. Animated images are also supported (use .gif).
    • static - Images can be set to sit on top of other elements. They are named following their associated program.
    • wall - All backgrounds used sit here. Anything named default.xxx is applied on all programs without dedicated assets.
  • scheme - The brain of the theme. This file will tell your device how windows and text should appear per program, and will also tell your device how to use the files you have dropped into your image folder.
  • sound - These folders will contain files heard during your time in the MustardOS menus.

Themes can support multiple device resolutions by including resolution-specific folders (e.g., 640x480, 720x480). Each resolution folder can contain subfolders such as font, image, scheme, and glyph.

When a device resolution matches a folder, MustardOS will use the content from that specific resolution folder.

To ensure MustardOS can detect the resolutions a theme can support, it is essential to create a subfolder for each resolution your theme is designed to support.

For shared resources across all resolutions, you can place them in the root (outside of the resolution subfolder) of the theme. For example, if all resolutions will use the same fonts and glyphs, you can create a font and glyph folder(s) in the root directory.

The default MustardOS theme is a good example of what can be done on a basic theme level.

Theme Folder Structure Glyphs

Images for populating menu glyphs frequently change as we add new featues to muOS. For a list of all glyphs that are supported be sure to check out the MustardOS.muxthm theme included with muOS located here /MUOS/theme. You can also view the list of glyph images on our github page.


Note: If your theme does not supply images for glyphs then it will fall back to built in default images found in MustardOS.muxthm. If you want to hide glyphs you will need to adjust the appropriate settings in your scheme file. For example disable list item glyphs you would set these settings in your scheme file:

[list]
LIST_DEFAULT_GLYPH_ALPHA=0
LIST_FOCUS_GLYPH_ALPHA=0

Program Names

MustardOS has numerous programs, so they are individually named so that you Themers can set different properties for every single page if you so wish to do so! Anything named default.xxx in the above folder structure can be renamed to mux... to apply ideas to single pages.

You can also set images to appear for individual list items on the main launch page (see the files above under ./image/static/muxlaunch/.

Check out the updated naming conventions of all modules below;

Program Name Function List Item Names
muxapp Dynamic applications page N/A
muxarchive Archive Manager page N/A
muxassign Shows when assigning a core to a folder N/A
muxbackup Device Backup N/A
muxcharge Charging Screen N/A
muxcollect Collections page N/A
muxconfig Configuration page N/A
muxconnect Connectivity N/A
muxcontrol Setting Content Control N/A
muxcredits - N/A
muxcustom Customisation N/A
muxdownload Core/Language Downloader N/A
muxgov - N/A
muxhdmi HDMI Output Settings N/A
muxhistory History page N/A
muxinfo Information page N/A
muxkiosk Kiosk Settings N/A
muxlanguage - N/A
muxlaunch Main Menu explore / collection / history / apps / info / config / reboot / shutdown
muxmessage - N/A
muxnetinfo Network Details N/A
muxnetprofile Network Profiles (within Wi-FI). N/A
muxnetscan Shows when scanning for networks. N/A
muxnetwork Wi-Fi Network Page N/A
muxoption - N/A
muxpass Passcode Lock Screen N/A
muxpicker Catalogue Sets / RetroArch Configurations / Theme Picker N/A
muxplore Content Explore Page N/A
muxpower - N/A
muxrtc Date and Time page N/A
muxsearch Search Content N/A
muxshot Screenshots N/A
muxstorage Storage Space N/A
muxsplash - N/A
muxstart - N/A
muxstorage Storage Migrate/Sync N/A
muxsysinfo System details N/A
muxtag Tag Content N/A
muxtask Task toolkit page N/A
muxtester Input Tester N/A
muxthemedown Theme Downloader N/A
muxthemefilter Theme Filters N/A
muxtimezone Timezone Selection N/A
muxtweakadv Advanced (within General Settings) N/A
muxtweakgen General Settings N/A
muxvisual Interface Options (within General Settings) N/A
muxwarn Reset warning page N/A
muxwebserv Web Services page N/A

Sound Files - Navigation

You are able to use sounds within your theme. Place WAVE files in to the sound directory.

Sound File Function
back.wav Pressing the back button
confirm.wav Selecting an active item
error.wav Error sound
info_close.wav Closing Info Window
info_open.wav Opening Info window
keypress.wav On Screen Keyboard (OSK) key press
muos.wav Something secret - What could it be?
navigate.wav Pressing UDLR buttons
option.wav Change Option Value
reboot.wav Rebooting the device
shutdown.wav Shutting down the device
startup.wav Starting up the device