DebuggingAyatana

Available languages :Italiano,

Debugging Central

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

Application Indicator

indicator-application

The indicator that shows the Application Indicators, as well as the library for allowing applications to register their Application Indicators.

Application Menu

indicator-appmenu

The indicator that hosts the menus extracted from applications using appmenu-gtk and appmenu-qt.

AppMenu GTK+

appmenu-gtk

The GTK+ module that makes menus appear in the panel applet indicator-appmenu, using GtkMenuProxy.

BAMF

bamf

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.

Clutter Toolkit

clutk

A Clutter toolkit library used by the Unity launcher.

Date and Time Indicator

indicator-datetime

The indicator that is a replacement for the clock applet, showing date and time, and a calendar.

DBus Menu

libdbusmenu

Library for passing GtkMenus over DBus. Used by virtually all Indicator projects.

Evolution Indicator

evolution-indicator

Uses libindicate to display an entry for Evolution in the Messaging Menu.

Indicator Applet

indicator-applet

The applet that contains the most important of the indicators.

libdbusmenu-qt

libdbusmenu-qt

Whereas the regular DBus Menu library is for passing on GtkMenus over DBus, this library is for passing Qt menus over DBus.

Libindicate

libindicate

The library used by applications to appear in the Messaging Menu, although theoretically it could be used for other purposes as well.

libindicate-qt

libindicate-qt

The Qt bindings for libindicate.

libindicator

libindicator

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.

Me Menu

indicator-me

The indicator that shows your username and provides for integration with your chat accounts and has a field for updating your microblogging status.

Network Menu

indicator-network

The Connection Manager based network indicator, replacing nm-applet. For now only used in the Ubuntu Netbook Edition.

Notify OSD

notify-osd

The Notification Daemon from the Ayatana project.

Plasma Menu Bar

plasma-widget-menubar

The Plasma menu bar for showing the Application Menus, extracted from applications by either appmenu-gtk or appmenu-qt, before being exported over DBus.

Sound Menu

indicator-sound

The indicator for changing your volume and controlling your music player.

Unity

unity

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


CategoryAyatana CategoryBugSquad CategoryDebugging

DebuggingAyatana (last edited 2012-05-06 19:49:16 by fabiomarconi)