DebuggingAyatana
This page is part of the debugging series — pages with debugging details for a variety of Ubuntu packages. |
The Ayatana project concerns several subprojects of a diverse nature. However, because it is developed within the same project by the same group of people within the same company and because they share components it is possible to give some general advise on debugging for results of Ayatana.
General Information
This section gives some general information on the different projects that make up Ayatana.
What is what
The umbrella project of Ayatana on Launchpad is ayatana, but bugs shouldn't be reported against that. The first place to report bugs when using the packages from Ubuntu are the packages' source packages in Launchpad.
Own Launchpad project |
Ubuntu source package |
Description |
The indicator that shows the Application Indicators, as well as the library for allowing applications to register their Application Indicators. |
||
The indicator that hosts the menus extracted from applications using appmenu-gtk' and appmenu-qt. |
||
The GTK+ module that makes menus appear in the panel applet indicator-appmenu, using GtkMenuProxy. |
||
Provides a DBus daemon and a C library for matching application/window instances. Used by Unity to make sure every application appears only once in the launcher. |
||
A Clutter toolkit library used by the Unity launcher. |
||
The indicator that is a replacement for the clock applet, showing date and time, and a calendar. |
||
Library for passing GtkMenus over DBus. Used by vritually all Indicator projects. |
||
Uses libindicate to display an entry for Evolution in the Messaging Menu. |
||
The applet that contains the most important of the indicators. |
||
Whereas the regular DBus Menu library is for passing on GtkMenus over DBus, this library is for passing Qt menus over DBus. |
||
The library used by applications to appear in the Messaging Menu, although theoretically it could be used for other purposes as well. |
||
The Qt bindings for libindicate. |
||
The library for creating indicators, therefore used by all indicators. Also used by the Indicator Applet and the Session Menu to collect indicators they want to display, from a static list. |
||
The indicator that shows your username and provides for integration with your chat accounts and has a field for updating your microblogging status. |
||
The Connection Manager based network indicator, replacing nm-applet. For now only used in the Ubuntu Netbook Edition. |
||
The Notification Daemon from the Ayatana project. |
||
The Plasma menu bar for showing the Application Menus, extracted from applications by either appmenu-gtk or appmenu-qt, before being exported over DBus. |
||
The indicator for changing your volume and controlling your music player. |
||
The Ubuntu Netbook Edition's interface, providing a launcher, a top panel and a search interface. It doesn't use the Indicator Applet, but instead implements its own indicator displayer. Uses libbamf and libclutk. |
A note on the Indicator Applet
The Indicator Applet is the applet that shows all indicators on the panel. This is not limited to the Messaging Menu. It has several indicators is shows, like the Application Indicators (which is one), the Messaging Menu and the Sound Menu. The applet 'indicator-applet' includes just those three, the Session Indicator and the Me Menu are shown by a separate applet: 'indicator-session'. There is one applet that shows all: 'indicator-applet-complete' includes the indicators from 'indicator-applet' and 'indicator-session'.
Please keep in mind that bugs should be reported against their indicator first, and only against the Indicator Applet when you're absolutely sure the problem lies there.
Where to look for information
User session logging is done in $XDG_CACHE_HOME, by default $HOME/.cache, by default ~/.cache. There are several files of interst in that directory, related to the Ayatana project: The directory The cache of Application Indicators, however, is located in the
The Ayatana projects make heavy use from DBus to communicate. Sometimes it is good to look at the DBus communications to learn more about what exactly is going on. Most Ayatana projects communication over the DBus SessionBus, so you want to use the command dbus-monitor --session to watch a live stream of the DBus communications. To prevent your console from being swamped by DBus communication from other applications, which can happen quite fast, you can specify what information you want. The command 'dbus-monitor "interface='org.ayatana.indicator.application.service'" --session' gives you all DBus communication sent from the Watching DBus