The Ayatana Indicators project is the continuation of Application Indicators and System Indicators, two technologies developed by Canonical Ltd. for the Unity7 desktop.
Application Indicators are a GTK implementation of the StatusNotifierItem Specification (SNI) that was originally submitted to freedesktop.org by KDE.
System Indicators are an extensions to the Application Indicators idea. System Indicators allow for far more widgets to be displayed in the indicator's menu.
The Ayatana Indicators project is the new upstream for application indicators, system indicators and associated projects with a focus on making Ayatana Indicators a desktop agnostic technology.
On GNU/Linux, Ayatana Indicators are currently available for desktop envinronments like MATE (used by default in Ubuntu MATE), XFCE (used by default in Xubuntu, LXDE, and the Budgie Desktop).
The Lomiri Operating Environment (UI of the Ubuntu Touch OS, formerly known as Unity8) uses Ayatana Indicators for rendering its notification area and the UBports project is a core contributor to the Ayatana Indicators project.
For further info, please visit: https://ayatana-indicators.org
Modern desktop panels find out about indicators by looking at indicator
service files in /usr/share/ayatana/indicators
. These files need 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 a .desktop
file). It must have
an [Indicator Service]
section, that must contain the service's name (Name
)
and the object path at which its action group is found (ObjectPath
). For
example:
[Indicator Service]
Name=indicator-example
ObjectPath=/org/ayatana/indicator/example
It should also contain a hint to where the indicator should appear in the panel:
Position=70
The lower the position, the further to the right (or left when RTL is enabled) the indicator appears.
An indicator can only export one action group, but it supports a menu for each profile ("desktop", "greeter", "phone"). There is a section for each of those profiles, containing the object path on which the menu is exported:
[desktop]
ObjectPath=/org/ayatana/indicator/example/desktop
[greeter]
ObjectPath=/org/ayatana/indicator/example/desktop
[phone]
ObjectPath=/org/ayatana/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.
See COPYING and AUTHORS file in this project.
For instructions on building and running built-in tests, see the INSTALL.md file.