Create my own skins or GUI for LinuxMCE

From LinuxMCE
Revision as of 18:35, 24 February 2008 by Rwilson131 (Talk | contribs) (wiki formating)

Jump to: navigation, search

First a quick glossary of terms.


Graphical User Interface

The graphical user interface ,GUI or UI, you see on the orbiters is defined in the pluto_main database. sqlCVS is the utility that keeps the databases in sync and allows you to share your changes with others.


Designer is a software program used to create the screens to see on orbiter. Every element you see on the Orbiter's screen, including the screen itself, is a "Design Object" or "DesignObj". Every DesignObj has one or more variations for each of the user interfaces. Examples of the user interfaces are "standard 3:4 monitors, tvs and webpads", "vertical 4:3 PDA's", "Symbian series 60 mobile phones", and so on. So for example a screen (a DesignObj), let's say a DVD remote, may have two columns of buttons and a data grid for the standard 3:4 variation. However since the 4:3 PDA variation is designed for a smaller screen, there may be fewer buttons, and a "more..." button to take you to another screen which contains the rest.


A skin refers to a set of graphical files (bitmaps) which are the backgrounds of the DesignObjs. For example there can be a "marble" skin, which has images that look like marble, and a "wood" skin, in which the buttons and backgrounds look like wood.

Additional Screens

Additionally multiple screens can be designated as candidates for the main menu. Since the main menu is a primary screen the user interacts with, there can be a version that simply lists all the scenarios in a grid, like LinuxMCE's default, or any other version that focuses on just media scenarios, or one with pop up windows and rotating graphics, and so on. Create a new main menu doesn't necessarily require redoing all the screens. You can still use the existing remote controls, file browsers, etc.


Upload Background

The simplest way to change the look of your orbiter is to simply upload a new background image for the main menu. Do this in the LinuxMCE Admin site by choosing Wizard, Devices, Orbiter. On the Orbiters page click the "upload BG" button. The buttons and all the other screens will be unaffected, but the main menu will have whatever background you upload.

Creating New Skin

Another way to customize the orbiter is to create new skin. This means you take all the graphics files in the the directory /usr/pluto/orbiter/skins/Basic (ie the "Basic" skin) and create new versions that are the same size, same name, and share the same directory structure, but have different pictures or backgrounds, such as a water theme or tropical images. Add the record to the "Skins" table where the Description is the same as the directory name. OrbiterGen will use the new graphics when they exist, and revert to the graphics in "Basic" when they don't. So, you don't need to completely redo all the graphics, you can just do some.

Modifying Menu Behaviors

If you want to change the way the main menu behaves, in other words the interaction with the user, you can create a new screen or DesignObj in Designer, and add a record to the DeviceTemplate_DesignObj table where FK_DeviceTemplate=8 (the Orbiter) and FK_DesignObj=your new screen. This screen will then appear as a new main menu option on the Orbiter page in LinuxMCE Admin.

Additional Remote Control

Also you may want a different type of remote control. For example you may have added device to control a type of Jacuzzi, and you want to a remote control that is appropriate for that. You can use Designer to create the screen or DesignObj, and then in the DeviceTemplate_DesignObj add a record with the ID of the Jacuzzi's device template, and also the DesignObj to use as a remote. Then when the user as a climate scenario to control the Jacuzzi it will show him this new screen as a remote control.

Creating New GUI

The most ambitious change is to create a new user interface. Let's say you have a new type of device, with a totally unique aspect ratio, that you want to use as an orbiter. Maybe it has a screen that is an odd shape or or has unusual proportions. This means you need to create a new user interface, and every screen in the system will need a new variation that lays out the objects so they fit on that screen. Fortunately Designer is object oriented, so even if you have a screen that is an odd shape, perhaps a triangle, and you need to create a custom layout, you can still embedded stock objects, like media controls, without having to recreate their layout, if they will fit.

Since creating a new user interface is a fairly big task that involves recreating the layouts of all the screens, normally if your screen is at all similar in shape and aspect ratio to an existing user interface, we recommend you only add a new entry in the Size table specifying the resolution and a custom scale factor. OrbiterGen can also rotate. For example if you have a screen with a 5:3 aspect ratio, it may be easier to create a new Size for it, but use the standard 4:3 user interface and just specify that the Width has a scale factor that is 25% more than normal. LinuxMCE stores all the graphics in the size much larger than most orbiters will ever need to display. This allows the graphics to be stretched and scaled with no visible loss of quality.

You may also want to refer to the Designer User's manual.

In LinuxMCE Admin website go to Wizard > Devices > Orbiter to specify the skin, user interface, language, and the main menu for each orbiter.