Difference between revisions of "ThemeChooser"

From MythTV Official Wiki
Jump to: navigation, search
(Created page with 'Category:Themes <b>This page is a work in progress, ask in IRC in #mythtv-theming if there are any questions</b> == Theme Chooser/Downloader == A new Theme Chooser screen…')
 
(How to get your theme to the official download site)
 
(2 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 
[[Category:Themes]]
 
[[Category:Themes]]
 +
[[Category:Developer Documentation]]
  
 
<b>This page is a work in progress, ask in IRC in #mythtv-theming if there are any questions</b>
 
<b>This page is a work in progress, ask in IRC in #mythtv-theming if there are any questions</b>
Line 10: Line 11:
 
=== How to get your theme to the official download site ===
 
=== How to get your theme to the official download site ===
  
In order to be distributed via the official themes download site, a theme must meet certain criteria:
 
  
* Feature Complete.  At a minimum, the following list of screens must be themed so that they do not fall back to the default theme windowsAlso, these screens should not just be cut-and-pasted from the defaults in order to pass the completeness test.  We are investigating writing a script to show a themes "completeness" so that this information can be provided to users in the Theme Chooser screen.
+
'''Theme criteria:'''
** Fixme Screen #1
+
 
** Fixme Screen #2
+
* The theme must be freely distributableThe theme must be covered under a license which allows redistribution from the MythTV themes download site.
** Fixme Screen #3
+
* 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.
** .
 
** .
 
* No copyright violations. This includes the following:
 
** Only freely distributable images may be used.  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)
 
** Proper display of copyright notices/images where applicable (ie, MythWeather)
* Fixme Criteria #3
+
* A LICENSE file must be included in the theme's main directory which details the following:
* Fixme Criteria #4
+
** License the theme is being distributed under.
* Fixme Criteria #5
+
** 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.
  
<!--
 
=== Providing your theme via the unofficial user-submitted area ===
 
  
FIXME
+
'''Theme Packaging:'''
  
[[ThemeChooserThemeList]]
+
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.

Latest revision as of 13:21, 29 December 2010


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.