-
-
Notifications
You must be signed in to change notification settings - Fork 89
MUI Theme integration and improvements
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/#?
-
MUI:
-
Image Formats
-
MUI:
-
.mf0,.mf1, etc. for images with multiple states -
.mbrfor 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
-
MUI:
-
Naming Differences
- Certain identifiers differ (e.g.,
ArrowLeftin MUI vs.Previousin AROS).
- Certain identifiers differ (e.g.,
This mismatch complicates theme development and prevents straightforward theme sharing between MUI and AROS.
The goal is to align AROS theming with MUI conventions while retaining enough flexibility for backward compatibility.
-
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.
- Adopt a consistent scheme:
-
Standardize names and extensions
- Update current AROS theme asset names to match MUI’s naming (e.g.,
ArrowLeftinstead ofPrevious). - Rename all single images to
.mbr. Split the current dual state single image files into separate.mf0,.mf1components.
- Update current AROS theme asset names to match MUI’s naming (e.g.,
-
Improve theme discovery
- Update Zunes “External” option to scan
Presets/Themes/for usable image sets. - Dynamically generate image specifications for Zune configs.
- Update Zunes “External” option to scan
-
Integrate with system tools
- Update
C:Decorationto use the revised scheme. - Maintain fallback support for legacy paths during transition.
- Update
-
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.
- Add support for separating the c:Decoration multi-state images, into single state and multi state flavours. (using
- 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/.mf1multi-state images.
- Modify Zunes “External” option to:
- Scan
Presets/Themes/for directories containing.mbror.mf#?. - Ignore directories without suitable image files.
- Generate image specifications automatically for detected themes.
- Update Zune configs to use these generated specs.
- Update
C:Decorationto 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.
- Extend image loading code to recognize
.mf0,.mf1, etc. - Add support in
C:Decorationand Zune configs for switching between states. - Update example themes to demonstrate
.mf#?assets in practice.
- 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.
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
- 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.