Open Source
GitHubGitHub Issue

Mayhem Theme Manager

Loadable theme engine for PortaPack Mayhem firmware on HackRF One.

COMING IN A FUTURE UPDATEDrop .mthm theme files on your SD card. The entire UI recolors without recompiling firmware.

Overview

A loadable theme engine for PortaPack Mayhem that lets you customize the entire UI from your SD card. Drop a .mthm text file into the THEMES/ folder, select it in Settings, and the menus, icons, title bar, highlights, and buttons all recolor instantly. Works alongside the existing 6 built-in themes. Ships with 10 handcrafted themes inspired by movies, games, and retro computing.

Screenshots

Theme selector.Settings > Theme
Settings > Theme. Select [SD] themes
Porpoise theme.Main menu
Porpoise
Prompt theme.Main menu
Prompt
HAL theme.Main menu
HAL
Bebop theme.Main menu
Bebop
Samus theme.Main menu
Samus
Codec theme. Main menu
Codec
Smelly Flowers theme. Main menu
Smelly Flowers

Features

  • Drop .mthm text files into THEMES/ on your SD card. No recompilation needed
  • Select custom themes in Settings > Theme alongside the 6 built-in themes
  • Simple key=value text format. Create your own in any text editor
  • 26 style keys + 2 standalone color keys for full UI coverage
  • Hex (#RRGGBB) or decimal (R,G,B) color format
  • Theme persists across reboots. Preference saved to NVRAM
  • Max 16 custom themes listed in the UI
  • Ships with 10 handcrafted example themes

Safety

  • Cannot brick or crash the device. All parse errors silently fall back to DefaultGrey
  • Cannot corrupt SD card. Theme files are read-only, only filename is written (~30 bytes)
  • Cannot corrupt settings. Persistent memory struct is unchanged
  • SD card removal safe. Boots to DefaultGrey, preference preserved for reinsertion
  • Forward compatible. Unknown keys silently ignored by parser
  • Backward compatible. Old firmware treats unknown theme_id as default
  • Malformed or incompatible files are silently ignored
  • Max file size 8 KB. Themes typically under 1 KB

Included Themes

PorpoiseCRT phosphor glow

Electric orange on black. Warm amber glow like a vintage oscilloscope.

Prompt1980s green terminal

Pure green-on-black duotone. Blinking cursor energy.

HAL2001: A Space Odyssey

Near-black void with electric red. The unblinking eye.

BebopCowboy Bebop

Deep violet-black with bright hot pink. Sunset jazz.

SamusMetroid power suit HUD

Dark grey visor with pink HUD scan lines.

CodecMetal Gear Solid

Dark gunmetal grey with pale electric yellow.

AbyssThe Abyss (1989)

Pitch black with alien bioluminescent aqua-green.

LunaMonochrome

Pure black and white. No color. Clean and minimal.

Mile HighDenver Broncos

Deep navy blue with bright orange accents.

Smelly FlowersStar Trek LCARS

Dark background with warm peach-salmon text.

Theme File Format

Themes use a simple key=value text format. Each style key takes a background and foreground color pair. Missing keys fall back to DefaultGrey.

# Porpoise // CRT phosphor glow
name = Porpoise
author = SuperBasicStudio
version = 1

bg_darkest  = #050200 #FF6600
bg_medium   = #FF6600 #000000
bg_lightest = #FF6600 #000000
status_active = #FF6600

Implementation

C++PortaPack MayhemHackRF OneSD Card.mthm format