plash-pkg: Application installer and launcher

Status: implemented

The package installer should put installed applications into the GNOME/KDE applications menu and register the application as able to handle file types. This involves creating a .desktop file.

Provide a script that ties together the choose/fetch/unpack steps of Story1 in order to acquire the application package and its dependencies. It should also output a .desktop file. The .desktop file's Exec field will run a helper script that sets up a sandbox, including an FsObjCopyOnWrite directory as the root directory, and launches the application, possibly granting it access to any files it was launched to edit.

This story covers:

Config file

The install script will take as input a config file with the following fields:

Example:

Depends: leafpad
Pet-name: Leafpad text editor (sandboxed)
Pet-id: leafpad
Icon: leafpad.png
Exec: LD_PRELOAD=powerbox-for-gtk.so leafpad "$@"
MimeType: text/plain;

Usage

plash-pkg-install <app-dir> [-c <config-file>]

State associated with the application is stored in <app-dir>. When the -c option is given, the tool will create <app-dir>, copy in the given config file, acquire and unpack the Debian packages (the choose/fetch/unpack steps), and install the application by creating a .desktop file.

When no -c option is given, <app-dir> must already exist, and the config file it contains is used.

Example output .desktop file

[Desktop Entry]
Version=1.0
Type=Application
Name=Leafpad text editor (sandboxed)
Icon=leafpad.png
Exec=plash-pkg-launch --app-dir /home/user/.pet-apps/apps/leafpad --open-file %f
MimeType=text/plain;
Categories=SandboxedApps;

See also

Relevant specifications:

Use desktop-file-validate to check the .desktop file.

How to create a menu for sandboxed applications

Copy /etc/xdg/menus/applications/gnome-applications.menu or /etc/xdg/menus/applications/applications.menu to ~/.config/menus/ and edit, OR add a .menu file to ~/.config/menus/applications-merged.

Tasks

Story2 (last edited 2007-06-07 21:32:19 by MarkSeaborn)