DebuggingAyatana
Available languages :Italiano,
This page is part of the debugging series — pages with debugging details for a variety of Ubuntu packages. |
The Ayatana project concerns several sub-projects 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 virtually 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 in $HOME/.cache or ~/.cache.
There are several files of interest in that directory, related to the Ayatana project:
- indicator-applet.log
- indicator-applet-appmenu.log
- indicator-applet-complete.log
- indicator-applet-session.log
- notify-osd.log
The directory $XDG_CACHE_HOME/indicators/ contains the cached links to desktop files that were registered at the Message Indicator and the Sound Menu, respectively in $XDG_CACHE_HOME/indicators/messages/seen-db.keyfile and $XDG_CACHE_HOME/indicators/sound/familiar-players-db.keyfile.
The cache of Application Indicators, however, is located in the $XDG_CONFIG_HOME/indicators/application/lru-file.json file.
Watching DBus
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 Session-bus. To watch a live stream of the DBus communications use command :
dbus-monitor --session
Using the above command your console will be swamped by DBus communication from other applications, which can happen quite fast.To prevent this you can specify what information you want.
To only watch DBus communication sent from the org.ayatana.indicator.application.service DBus interface ,which is all communication between the Application-Indicators registry and the actual Application-Indicators indicator, use command :
dbus-monitor "interface='org.ayatana.indicator.application.service'" --session
If you want to watch the communication between the application and the Application Indicators registry use command :
dbus-monitor "interface='org.kde.StatusNotifierItem'" --session
DebuggingAyatana (last edited 2012-05-06 19:49:16 by dynamic-adsl-78-14-229-161)