Difference between revisions of "Application:ThemeManager"

From WebOS Internals
Jump to navigation Jump to search
Line 76: Line 76:
  
 
<blockquote>
 
<blockquote>
First you should create a directory for your theme and you should name it in the following style to avoid any conflict with other themes: com.mydomain.theme-name (e.g. org.webosinternals.simple-test-theme).<br>
+
First you should create a directory for your theme and you should name it in the following style to avoid any conflict with other themes: com.mydomain.theme-name (e.g. org.webosinternals.simple-test-theme). Even the theme can be set to support different devices you should make separate theme for different types of devices, i.e. most likely nobody wants to have files for TouchPad installed in his phone for example.<br>
 
<br>
 
<br>
 
The hierarchy inside of that directory is free but the example below uses following hierarchy (the theme.json file is the only one required and has to be named as theme.json):<br>
 
The hierarchy inside of that directory is free but the example below uses following hierarchy (the theme.json file is the only one required and has to be named as theme.json):<br>

Revision as of 11:35, 21 October 2011

Theme manager.png

Overview

Icon Theme-Manager.png

Theme Manager is a webOS (2.1+ w/Enyo installed) application that brings theme support to your device. Using Theme Manager, you will be able to browse locally downloaded themes and apply them the device.


Installation

The following information will help you install Theme Manager.


Overview

Stable Releases
The stable releases of Theme Manager can be found in the WebOS-Internals feed and are recommended for general public use.

Alpha/Beta Releases
The alpha/beta releases of Theme Manager can be found in the the WebOS-Internals Alpha or Beta feeds WebOS-Internals Testing Feed.


Method

The following method can be used to install Theme Manager.


Preware
  1. Open Preware
  2. Start typing “Theme Manager” (no quotes)
  3. Tap the Theme Manager from the list
  4. Tap the Install button
  5. Restart your device (optional, but recommended)

Or

  1. Open Preware
  2. Tap Available Packages
  3. Tap Application > System Utilities > Theme Manager
  4. Tap the Install button
  5. Tap the Ok button to restart Luna


Updating

webOS OTA Updates

Since Theme Manager is an app, it is OTA (over-the-air) update safe. When there is an OTA update to a newer version of webOS from your carrier/HP, you do not need to remove the app before updating. Themes applied with Theme Manager are also OTA safe. After an OTA update, you must re-apply the theme. Before updating to a new OTA, you might want to make sure that the themes you use are supported on the new webOS version.


Application Updates

Updated versions of Theme Manager can be applied via Preware.


Usage

usage notes here.


Making Themes

First you should create a directory for your theme and you should name it in the following style to avoid any conflict with other themes: com.mydomain.theme-name (e.g. org.webosinternals.simple-test-theme). Even the theme can be set to support different devices you should make separate theme for different types of devices, i.e. most likely nobody wants to have files for TouchPad installed in his phone for example.

The hierarchy inside of that directory is free but the example below uses following hierarchy (the theme.json file is the only one required and has to be named as theme.json):

org.webosinternals.simple-test-theme/
  data/
  images/
  patches/
  sounds/
  theme.json


Then the contents of the theme.json file is as below. The optional stuff if not used can be left out. You should make sure that the file contains valid json, i.e. don't use tabs or make typos :). Also you should leave out the comments.

{
  "name": "Theme Name", // Mandatory
  "version": "1.0.0", // Mandatory
  
  "description": "Description for the theme.", // Mandatory

  "creator": "Authors Name", // Mandatory
  "website": "", // Mandatory but can be left empty

  "donations": "", // Optional donation link

  "devices": [
    // Mandatory list of supported devices, valid devices are
    // emulator, touchpad, veer, pre3, pre (= pre,pre+,pre2)
    
    "emulator",
    "touchpad"
  ],

  "screenshots": [ 
    // Mandatory, at least one screenshot is required
    
    "data/default-view.png"
  ],

  "themedata": { 
    // Mandatory, different data can be set for different webOS versions, 
    // every supported version must be listed, the components that does 
    // not exist in the theme should be removed. Components can contain 
    // images, sounds and patches.

    // Allowed files at the moment are, images: jpg/png, sounds: mp3/wav 
    // and only files that can be patched are css files.
  
    "3.0.0": {
      // You can refer to other version with alias if the version is 
      // compatible. At the moment if they differ even the slightest
      // amount you need to create new set, i.e. after alias you can
      // not set any "overrides" at the moment.
    
      "alias": "3.0.2"
    },
    "3.0.2": {
      // Path is always the path in the device and the file path to
      // to the file inside the theme directory.
    
      "app_icons": {
        "images": [
          {
            "path": "/usr/palm/applications/com.palm.app.phone/icon.png",
            "file": "images/icon-phone.png"
          }
        ]
      },
      "app_launcher": {
        "images": [
          {
            "path": "/usr/lib/luna/system/luna-applauncher/images/bg.png",
            "file": "images/search-bg.png"
          }
        ]
      },
      "applications": {
        "sounds": [
          {
            "path": "/media/internal/ringtones/Silent.mp3",
            "file": "sounds/silent.mp3"
          }
        ],
        "patches": [
          {
            "path": "/usr/palm/applications/com.palm.app.messaging/stylesheets/messaging.css",
            "file": "patches/messaging-css.patch"
          }
        ]
      },
      
      // If the component does not have images, sounds or patches then it can
      // be left out, but these are listed here just as an example what components
      // are supported.
      
      "enyo_widgets": {
      },
      "exhibition": {
      },
      "just_type": {
      },
      "keyboard": {
      },
      "lock_screen": {
      },
      "quick_launcher": {
      },
      "status_bar": {
      },
      "system_menus": {
      },
      "wallpapers": {
        "images": [
          {
            "path": "/media/internal/wallpapers/wallpaper.jpg",
            "file": "images/wallpaper.jpg"
          }
        ]
      }
    }
  }
}


Once the theme is ready you should zip the directory with the directory name, e.g. com.mydomain.test-theme.zip. Then it can be installed with Theme Manager. Themes are installed into /media/internal/.themes/ directory where you can even unpack your theme manually while in USB mode or edit/view the already installed themes (When in USB mode you should see .themes directory if you have installed themes).


Troubleshooting/FAQs

Q: What webOS version or device is Theme Manager compatible with?
A: Theme Manager is available for any device running webOS 2.1 and later. (NOTE: Enyo must be installed for Theme Manager to work. This can be done on older devices by installing the updated Maps app available in the App Catalog.)


Resources

Supporting Development

Btn donateCC LG.gif

Official Developer Project Page
Official Forum
Official Twitter Account


Status

Changelog
0.2.0 - Current Alpha Release - (Oct. 19th, 2011)
  • Added support for phones with enyo


0.1.2 - (Oct. 17th 2011)
  • Initial alpha release