[mythtv] On Themes & Theming

Robert S. Kerr rskerr at dsbox.com
Wed Feb 2 16:22:24 UTC 2005


All,

MythTv is definately the best PVR software out there, it is far, 
however, from being the best looking PVR software.  (C'mon I know you've 
all looked over at the XBMC and found one of the 50 or so themes that 
you wished existed on Myth).  Don't even get me started on the lack of 
audible feedback or animated backgrounds.

Being a curious type, I did some looking around and here's what I 
found.  IMHO this is because MythTv if rather unfriendly when it comes 
to both developing and maintaing themes. 

Firstly, it is difficult to do part of a theme because MythTv doesn't 
really do defaulting in a usefull way.  If you change UI.XML, or 
MUSIC-UI.XML, you have to create a complete replacement for the default 
file.  Sure you can copy from an existing theme, BUT, when you do that, 
you now have this huge chunk of theme XML that may only contain a few 
changes, and that you now have to maintain.  This is the cause of the 
second problem.

Because we copy the theme files in whole, themes become out of sync with 
the MythTv engine quickly and when they do, they stop working for 
changed features.  If someone adds a spiffy new feature to the MUSIC-UI 
for example (Dynamic Playlists, or Metadata editing are two examples), 
if you don't update your theme, you don't get the new feature.  Either 
the software crashes, or if the developer who write the feature was 
careful, it pops up a dialog that says your theme doesn't have what it 
needs and so you can't see the screen.  If you are like most, you don't 
go fix the theme, you switch to one that does work and never look back.  
Can you say orphaned theme?  A better approach would be to show the 
screen from the default theme.  Sure it might look incongruous, but at 
least you can get the job done and you get a constant reminder to go fix 
the theme.

Lastly, there isn't any complete documentation anywhere about the 
theming files and process.  Yes, there are partial efforts done by 
several people, but they are either dated, incomplete or both.  This is 
to be expected in any open source process, but we can do better.  There 
are three different kinds of themes (UI Themes, Menu Themes, and OSD 
Themes) that I've found so far and yet the only documentation that I've 
ever seen is about UI theming.

So I propose three changes:

First, lets get the engine to default at lower level then at the whole 
theme file.  At the window level is next obvious choice, but I could see 
even down at the container level.  For fonts, we should allow user font 
descriptions to override the default ones with a notice or warning 
instead of throwing an error and saying you can't define a second font 
with the same name.  That way, I'd get new features in a theme without 
being forced to update it and when I did update it, I could only update 
the pieces that are required.  Our goal should be to allow theme 
developers to include in their files the minimum amount of content 
required to make the theme.  That way themes are far more likely to 
remain current.  Right now we are rather on the side of requiring the 
maximum amount of theme xml.

Second, lets get a section in the main Myth documentation that covers 
theming and the whole process.  That way when we make changes to the 
myth core we can update those docs as well, and it can become a more 
communal process to maintain a theme.

Lastly, I'd like to recommend we make it easier to upload themes to the 
main mythtv.org site.  Those that know art and graphics tend not to be 
developer types and probably won't go through the trouble of posting to 
the dev list.

I'm happy to start on the first two items, but I want to be sure the 
work makes sense and will be accepted into CVS before I spend the time.

Riskpeep


More information about the mythtv-dev mailing list