Contents
Browse
You are here:
-
Lucid v1.0 documentation
- Packaging
Last update:
Packaging¶
Lucid has a package system that you can use to distribute modifications, applications, themes, and other things.
Anatomy of a package¶
Packages for Lucid are zip files that contain a meta.json file. They end in .lucid.zip. The meta.json file contains information about the package. It contains JSON. encoded data. Here’s an example:
{
"key": "value",
"key2": ["value1", "value2", "value3"],
"key3": [],
"key4": "value4"
}
Common parameters¶
All package share these parameters.
- type
- The type of package. Must be application, update, or theme.
- author
- The author of the contents of this package.
- The author's email address.
- version
- The version of this package.
- maturity
- The package's maturity. Can be alpha, beta, rc or stable.
- compatible
- The versions that this package is compatible with. This parameter is an array. For example, if I wanted to say that my package was only compatible with version 1.0 of Lucid, I would pass ["1.0.0"]. However, if I wanted to specify that it would be compatible with both 1.0 and 1.1, I would pass ["1.0.0", "1.1.0"].
Application Packages¶
Application packages have the following directory structure:
<sysname>/
(any additional files)
<sysname>.js
<sysname>.js.uncompressed.js (optional)
meta.json
They have the following key-value pairs for the meta.json file:
- sysname
- This is the system name of your application. This cannot contain any spaces, must start with a letter, and should be camel-cased. This must be the same as the names of the files in the package (see above).
- name
- This is the displayed name of your application.
- category
- The category of the application. Must be either Accessories, Development, Games, Graphics, Internet, Multimedia, Office, System, Administration, or Preferences. Casing does matter.
- icon (optional)
- The icon of the application. Either an icon class, such as icon-16-apps-accessories-calculator, or a icon file, such as calculator.png. Should be 16x16 pixels large. The icon should be placed in the application's directory (not the root of the archive).
- filetypes
- The filetypes that the application can handle. This parameter is an array, where each part of the array is a mimetype. For example, if I had an HTML editor, I would specify ["text/html"].
- permissions
- An array with the permissions required for this app. This does not prevent the app from being launched, but just prevents it from showing up on the menu in the case that the user is lacking the permissions. Example: ["core.administration"].
Theme Packages¶
Theme packages have the following directory structure:
<name>/
(Theme files go in here)
meta.json
The meta.json file takes the following parameters:
- name
- The name of the theme. Must be the same as the folder in the package (see above).
- preview
- A file in the theme's directory that is a thumbnail of the theme's screenshot. This is not a full-sized screenshot.
- wallpaper (optional)
- A file in the theme's directory that can be used as wallpaper.
Update Packages¶
Updates have the following directory structure:
root/
<contents of update>
update.php
update.php is run after the package is installed. This script needs to detect the current version of Lucid and update it accordingly. It can detect the version from the version.json file in /desktop/dojotoolkit/desktop/resources/. Once the script has been run, the updater copies the files within root to the root folder of the installation.
All Rights Reserved