Skip to content

MUI Theme integration and improvements

Nick Andrews edited this page Sep 13, 2025 · 17 revisions

Plan for Improving MUI/AROS Theme Handling

Background and Current Situation

AROS theming and MUI theming are similar in concept but diverge in structure and naming conventions. This makes it harder to reuse or port themes between the two systems. Key differences include:

  • Image Storage Paths

    • MUI:
      images/<themename>/<optional style>/<size>/#?
      
    • AROS:
      THEME:Images/Gadgets/#?
      
  • Image Formats

    • MUI:
      • .mf0, .mf1, etc. for images with multiple states
      • .mbr for single images
      • All stored as IFF ILBM
    • AROS:
      • Flat filenames, no multi-state support, no standardized extensions
  • Naming Differences

    • Certain identifiers differ (e.g., ArrowLeft in MUI vs. Previous in AROS).

This mismatch complicates theme development and prevents straightforward theme sharing between MUI and AROS.


Proposed Changes

The goal is to align AROS theming with MUI conventions while retaining enough flexibility for backward compatibility.

  1. Unify directory and naming structure

    • Adopt a consistent scheme:
      THEME:Images/<size>/<name>.mbr
      
    • Reserve space for multi-state image formats (.mf0, .mf1) even if not immediately supported.
  2. Standardize names and extensions

    • Update current AROS theme asset names to match MUI’s naming (e.g., ArrowLeft instead of Previous).
    • Rename all single images to .mbr.
  3. Improve theme discovery

    • Update Zunes “External” option to scan Presets/Themes/ for usable image sets.
    • Dynamically generate image specifications for Zune configs.
  4. Integrate with system tools

    • Update C:Decoration to use the revised scheme.
    • Maintain fallback support for legacy paths during transition.
  5. Lay groundwork for advanced features

    • Add support for multi-state images (.mf0/.mf1).
    • Prepare for optional style directories in the future (like MUI’s <optional style>).

Implementation Roadmap

Phase 1: Directory and Naming Standardization

  • Define the new canonical path format:

THEME:Images//.mbr

  • Audit and rename existing theme assets to match MUI identifiers.
  • Convert all single-image assets to .mbr.
  • Create placeholders or stubs for .mf0/.mf1 multi-state images.

Phase 2: Theme Discovery & Config Integration

  • Modify Zunes “External” option to:
  • Scan Presets/Themes/ for directories containing .mbr or .mf#?.
  • Ignore directories without suitable image files.
  • Generate image specifications automatically for detected themes.
  • Update Zune configs to use these generated specs.

Phase 3: System Tool Updates

  • Update C:Decoration to look for the new path structure.
  • Keep compatibility with the old THEME:Images/Gadgets/ scheme for transition.
  • Provide developer guidelines and conversion scripts for theme authors.

Phase 4: Multi-State Image Support

  • Extend image loading code to recognize .mf0, .mf1, etc.
  • Add support in C:Decoration and Zune configs for switching between states.
  • Update example themes to demonstrate .mf#? assets in practice.

Phase 5: Long-Term Alignment with MUI

  • Document the new scheme as the official AROS theming standard.
  • Encourage theme authors to build cross-compatible themes.
  • Consider adding optional <style> subdirectories for advanced themes.

Example Theme Directory Layout

Here’s how a Classic theme might look under the new scheme:

Presets/Themes/Classic/
└── Images/
├── 16/
│ ├── ArrowLeft.mbr
│ ├── ArrowRight.mbr
│ └── Button.mf0
├── 32/
│ ├── ArrowLeft.mbr
│ ├── ArrowRight.mbr
│ └── Button.mf0
└── 64/
├── ArrowLeft.mbr
├── ArrowRight.mbr
└── Button.mf0


Long-Term Goal

  • Align AROS theming closely with MUI for easier theme sharing.
  • Provide consistent naming and directory standards.
  • Enable richer theming support (multi-state images, multiple resolutions, styles).
  • Keep backward compatibility while migrating smoothly to the new scheme.

Clone this wiki locally