Skip to the content.

Theme system

MonsterMesh ships a device-wide theme system with seven palettes, selectable from the Meshtastic Settings → Theme dropdown. Themes recolor the entire device-ui (boot screen, node list, terminal, dropdowns) — not just the emulator.

The seven themes

Theme Look
Dark Stock dark UI
Light Stock light UI
DMG Original Game Boy LCD green (classic four-shade #0F380F → #9BBC0F)
GBC Game Boy Color dark-teal palette
Pocket High-contrast green (the default Game Boy Pocket look)
Poke Blue Generation-1 “Blue” palette
Poke Red Generation-1 “Red” palette

The three “green” themes (DMG, GBC, Pocket) switch the whole UI over to crisp Cozette bitmap fonts with tuned line spacing, for an authentic handheld feel; Dark/Light use the stock fonts.

How it works

Theming lives in the device-ui patches under patches/device-ui/ (these are full-file copies that get dropped into the meshtastic-device-ui library during the build — see BUILD.md):

In the MonsterMesh module itself, the ROM browser asks for the active palette (getBrowserPalette()) and rebuilds its screen when the theme changes, so the file picker matches your chosen look.

Fonts & credit

See CREDITS.md.

Adding or editing a theme

  1. Add the column to the themeColor[][] table in patches/device-ui/Themes.cpp (and the enum in Themes.h).
  2. If it’s a green/handheld palette, make isGreen() return true for it so it gets the Cozette font.
  3. Add its label to the dropdown strings in lv_i18n.c.
  4. Rebuild and re-copy the patched device-ui files (see BUILD.md).