[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