From WebOS Internals
Revision as of 11:22, 21 October 2011 by Sconix (talk | contribs)
Jump to navigation Jump to search
Theme manager.png


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.


The following information will help you install Theme Manager.


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.


The following method can be used to install Theme Manager.

  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)


  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


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 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 teams: com.mydomain.theme-name (e.g. org.webosinternals.simple-test-theme).

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):


Then the contents of the theme.json file is as below. The optional stuff if not used should be left out and make sure that the file contains valid json, i.e. don't use tabs or make typos. Also 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

  "screenshots": [ 
    // Mandatory, at least one screenshot is required

  "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 momend are, images: jpg/png, sounds: mp3/wav 
    // and only files that can be patches 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/",
            "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/",
            "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. Then it can be installed with Theme Manager.


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.)


Supporting Development

Btn donateCC LG.gif

Official Developer Project Page
Official Forum
Official Twitter Account


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

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