ThemeChooser

From MythTV Official Wiki
Jump to: navigation, search


This page is a work in progress, ask in IRC in #mythtv-theming if there are any questions


Theme Chooser/Downloader

A new Theme Chooser screen was introduced in mythfrontend in the v0.24 release of MythTV. This screen allows the user to choose a new theme from an available list of locally installed themes and themes which can be downloaded from the official themes.mythtv.org repository.

How to get your theme to the official download site

Theme criteria:

  • The theme must be freely distributable. The theme must be covered under a license which allows redistribution from the MythTV themes download site.
  • There should be no copyright violations.
    • Only freely distributable images and fonts may be included. These may be in the public domain or covered by a copyright that allows free distribution. All image use must comply with the original artists' copyright.
    • Proper display of copyright notices/images where applicable (ie, MythWeather)
  • A LICENSE file must be included in the theme's main directory which details the following:
    • License the theme is being distributed under.
    • Any additional licenses which apply to any freely distributable images or fonts included with the theme.


Theming Suggestions:

  • Include a high resolution preview image. The previous theme selector in mythfrontend displayed only a low resolution preview of the theme. The new Theme Chooser screen can display any size preview the themer choosers and the screen also has a 'full screen' preview mode if the themer chooses to implement it. High resolution previews will allow the user to get a better idea of what your theme looks like on their screen at normal resolution.


Theme Packaging:

Themes are repackaged in a standard format for the Theme Chooser to download and install. This is a scripted process which will eventually be run automatically. The packaging script can repackage themes which are distributed via the following methods:

  • Tarball on a remote web or FTP server. If a tarball is used, it is preferable to have the tarball contain a directory named for the theme as the top level directory in the tarball rather than having themeinfo.xml be in the top-level directory. The script currently understands both compressed and uncompressed tarballs and can work with gzip, bzip2, and lzma compression methods. If tarballs are used, it is preferred that the filename contain both the theme's version and the MythTV version that this particular version works with, for instance Terra_1.1_trunk.tgz or MythCenter_1.0_0.24.tar.bz2.
  • Git or Subversion repository. If the theme's source is managed under a Git or Subversion repository, the packaging script can fetch the latest theme source directly from the repository.
    • To make things easier and allow tracking both development and stable versions of a theme, the following branch layout is recommended (but not required):
      • master (this is where the theme development happens, 'trunk' is using Subversion)
      • mythtv-master branch (theme packages for MythTV 'master' are packaged from this branch)
      • 0.24 (theme packages for MythTV v0.24 are packaged from this branch)
    • The above layout provides the following advantages:
      • Theme development can continue without affecting packaging of themes. Theme changes that are ready for distribution can be merged into the proper packaging branch and the theme version can be bumped up inside the branch's themeinfo.xml.
      • Theme can be maintained for multiple MythTV versions in the same repository.
    • For themers who are distributing more than one theme, the packaging script allows multiple themes to be stored in the same repository. This feature is actually used to package up stock MythTV themes from MythTV's git repository on github.