Connection Types How-To
=======================

Vocabulary
----------

- *connection*: some program that can be launched by the user from
  the home screen of the launcher. It can either be a local Ubuntu application
  or an actual connection to a remote desktop. A connection is stored as a
  .desktop file. See [1]_ for a definition of .destkop files.
- *connection type*: a string describing what kind of connection it is. The
  possible strings are still to be defined and will likely be something like
  'application', 'rdp', 'vnc', etc.
- *connection settings editor*: is a separate program which purpose is to
  provide a GUI allowing the edition of a connection.


Implementation
--------------

The list of *connection types* is stored in a GConf [2]_ key:

**/apps/netbook-launcher-efl/connection_types/list**

It is a list of strings, each string being one possible *connection type* as
described in 'Vocabulary' above.

For each *connection type* present in that list, a corresponding GConf key must
exist under **/apps/netbook-launcher-efl/connection_types/**

The value of that key must be the path to a .desktop file describing the
*connection settings editor*.


**Example:**

To add an RDP *connection type*:

1. append "rdp" to the GConf list
   **/apps/netbook-launcher-efl/connection_types/list**
2. add a GConf key **/apps/netbook-launcher-efl/connection_types/rdp** with
   value "/usr/share/applications/my_rdp_connection_editor.desktop"


How to refer to the *connection settings editor* in a connection .desktop file
------------------------------------------------------------------------------

Each *connection* .desktop file has an extra pair of key/value describing what
*connection type* it is: X-Hedley-ConnectionType=CONNECTION_TYPE


**Example:**

An RDP *connection* .desktop file would contain the line:
X-Hedley-ConnectionType=rdp


**Warning**: without that reference, the launcher will not be able to launch the
*connection settings editor* corresponding to the *connection* and will default to
launching the *connection settings editor* for Ubuntu applications



.. [1] http://standards.freedesktop.org/desktop-entry-spec/desktop-entry-spec-latest.html
.. [2] http://projects.gnome.org/gconf/
