Skip to content

MUI Theme integration and improvements

Nick Andrews edited this page Sep 14, 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
      • MUI also has .image files, which appear to be BOOPSI imageclass binary objects
    • 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 separating the c:Decoration multi-state images, into single state and multi state flavours. (using .mf0/.mf1, and .mbr).
    • Prepare for optional style directories in the future (like MUI’s <optional style>). Implement as separate actual themes (E.g. THEMES:/Dark THEMES:/Light - with the actual theme files inside the optional sub directory.)
    • provide Disk/Drawer/HardDisk/Ram/Volume ".image" BOOPSI imageclass objects, that show the icon.library default.icons for those items instead of hard coded images, so that it is consistent with the used desktop/system imagery. Themes can provide additional replacement versions if desired.

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