#language en #title Debugging Ayatana Available languages :[[https://wiki.ubuntu.com/DebuggingAyatana_it|Italiano]], <> ----- 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 ''[[https://launchpad.net/ayatana|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''' || || [[https://launchpad.net/indicator-application|Application Indicator]] ||''[[https://launchpad.net/ubuntu/+source/indicator-application|indicator-application]]''|| The indicator that shows the Application Indicators, as well as the library for allowing applications to register their Application Indicators. || || [[https://launchpad.net/indicator-appmenu|Application Menu]] ||''[[https://launchpad.net/ubuntu/+source/indicator-appmenu|indicator-appmenu]]''|| The indicator that hosts the menus extracted from applications using ''appmenu-gtk'' and ''appmenu-qt''. || || [[https://launchpad.net/appmenu-gtk|AppMenu GTK+]] ||''[[https://launchpad.net/ubuntu/+source/appmenu-gtk|appmenu-gtk]]''|| The GTK+ module that makes menus appear in the panel applet ''indicator-appmenu'', using {{{GtkMenuProxy}}}.|| || [[https://launchpad.net/bamf|BAMF]] ||''[[https://launchpad.net/ubuntu/+source/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. || || [[https://launchpad.net/clutk|Clutter Toolkit]] ||''[[https://launchpad.net/ubuntu/+source/clutk|clutk]]''|| A Clutter toolkit library used by the Unity launcher. || || [[https://launchpad.net/indicator-datetime|Date and Time Indicator]] ||''[[https://launchpad.net/ubuntu/+source/indicator-datetime|indicator-datetime]]''|| The indicator that is a replacement for the clock applet, showing date and time, and a calendar. || || [[https://launchpad.net/dbusmenu|DBus Menu]] ||''[[https://launchpad.net/ubuntu/+source/libdbusmenu|libdbusmenu]]''|| Library for passing {{{GtkMenus}}} over DBus. Used by virtually all Indicator projects. || || [[https://launchpad.net/evolution-indicator|Evolution Indicator]] ||''[[https://launchpad.net/ubuntu/+source/evolution-indicator|evolution-indicator]]''|| Uses {{{libindicate}}} to display an entry for Evolution in the Messaging Menu. || || [[https://launchpad.net/indicator-applet|Indicator Applet]] ||''[[https://launchpad.net/ubuntu/+source/indicator-applet|indicator-applet]]''|| The applet that contains the most important of the indicators. || || [[https://launchpad.net/libdbusmenu-qt|libdbusmenu-qt]] ||''[[https://launchpad.net/ubuntu/+source/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. || || [[https://launchpad.net/libindicate|Libindicate]] ||''[[https://launchpad.net/ubuntu/+source/libindicate|libindicate]]''|| The library used by applications to appear in the Messaging Menu, although theoretically it could be used for other purposes as well. || || [[https://launchpad.net/libindicate-qt|libindicate-qt]] ||''[[https://launchpad.net/ubuntu/+source/libindicate-qt|libindicate-qt]]''|| The Qt bindings for {{{libindicate}}}. || || [[https://.launchpad.net/libindicator|libindicator|Libindicator]] ||''[[https://launchpad.net/ubuntu/+source/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. || || [[https://launchpad.net/indicator-me|Me Menu]] ||''[[https://launchpad.net/ubuntu/+source/indicator-me|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. || || [[https://launchpad.net/indicator-network|Network Menu]] ||''[[https://launchpad.net/ubuntu/+source/indicator-network|indicator-network]]''|| The Connection Manager based network indicator, replacing nm-applet. For now only used in the Ubuntu Netbook Edition. || || [[https://launchpad.net/notify-osd|Notify OSD]] ||''[[https://launchpad.net/ubuntu/+source/notify-osd|notify-osd]]''|| The Notification Daemon from the [[Ayatana]] project. || ||[[https://launchpad.net/plasma-widget-menubar|Plasma Menu Bar]] ||''[[https://launchpad.net/ubuntu/+source/plasma-widget-menubar|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. || || [[https://launchpad.net/indicator-sound|Sound Menu]] ||''[[https://launchpad.net/ubuntu/+source/indicator-sound|indicator-sound]]''|| The indicator for changing your volume and controlling your music player. || || [[https://launchpad.net/unity|Unity]] ||''[[https://launchpad.net/ubuntu/+source/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