aboutsummaryrefslogtreecommitdiff
path: root/README
diff options
context:
space:
mode:
authorLars Uebernickel <lars.uebernickel@canonical.com>2013-06-07 11:33:03 -0400
committerLars Uebernickel <lars.uebernickel@canonical.com>2013-06-07 11:33:03 -0400
commit12cc75fba26176cef0eb2ed8b98d0b377e10519f (patch)
treeac3e6cbb55a0fd8d303c2165df65c36ef5365ef9 /README
parent060711f83ffb9fbcb85410ee9cb045b9c4d8d47c (diff)
parent0d3ebcb5cf74eef75f2153400b7b8a1d450573a5 (diff)
downloadlibayatana-indicator-12cc75fba26176cef0eb2ed8b98d0b377e10519f.tar.gz
libayatana-indicator-12cc75fba26176cef0eb2ed8b98d0b377e10519f.tar.bz2
libayatana-indicator-12cc75fba26176cef0eb2ed8b98d0b377e10519f.zip
Merge lp:~larsu/new-indicator-file-format
IndicatorNg: update indicator file format The old file format had some shortcomings: (1) It was impossible to efficiently reuse a menu for different profiles, because the profile name was implicit in the object path. The only way to do this was to export the same menu twice. Now, object paths have to be set explicitly in the indicator file. (2) The well-known dbus name of a service and the name of its service file were similar but slightly different (com.canonical.indicator.test vs com.canonical.test.indicator), which caused some confusion on when to use which. Now, the file name *is* the bus name, and the `BusName` key has been dropped. The new file format is documented in README.
Diffstat (limited to 'README')
-rw-r--r--README35
1 files changed, 35 insertions, 0 deletions
diff --git a/README b/README
index e69de29..1ea62ef 100644
--- a/README
+++ b/README
@@ -0,0 +1,35 @@
+The indicator service file format
+=================================
+
+Unity's panel finds out about indicator by looking at indicator service
+files in `/usr/share/unity/indicators`. These files have to have the same
+name as the well-known D-Bus name that the corresponding service owns.
+
+An indicator file is a normal key file (like desktop files). It must have
+an `[Indicator Service]` section, that contains the service's name
+(`Name`) and optionally the object path at which its action group is found
+(`ObjectPath`). For example:
+
+ [Indicator Service]
+ Name=indicator-example
+ ObjectPath=/com/canonical/indicator/example
+
+An indicator can only export one action group, but a menu for each profile
+("desktop", "greeter", "phone") supports. There must be a section for each
+of those profiles, containing the object path on which the menu is
+exported:
+
+ [desktop]
+ ObjectPath=/com/canonical/indicator/example/desktop
+
+ [greeter]
+ ObjectPath=/com/canonical/indicator/example/desktop
+
+ [phone]
+ ObjectPath=/com/canonical/indicator/example/phone
+
+Object paths can be reused for different profiles (the greeter uses the
+same menu as the desktop in the above example).
+
+There are no fallbacks. If a profile is not mentioned in the service file,
+the indicator will not show up for that profile.