Common Libraries

  • Launcher & Dash

    Unity’s features are accessible through the libunity client library, including integration with the Launcher and Dash.

    Learn more about libunity

  • Global Menu & HUD

    Applications running under Unity have their window menus exported via DBusMenu for use by the Global Menu and Heads Up Display.

    Learn more about DBusMenu

  • Application Indicators

    Indicators provide a common way for applications and Unity itself to present the user with status information and controls.

    Learn more about libappindicator

  • Application Matching

    Bamf gives Unity the window matching information needed for it’s application-focused approach to multitasking.

    Learn more about bamf

About libunity

Interfaces for Unity shell are provided by the libunity client library, including classes and resources for building Lenses and Scopes for the Dash, methods for adding count and progress information to an application’s icon in the Launcher, and an interface for adding media player controls and meta-data to the Sound Menu.

Getting the code

bzr branch lp:libunity

Sourcecode Layout

libunity/src
The library sourcecode itself
libunity/examples
Examples of using the Launcher API and Lens merge stragegies

About DBusMenu

The DBusMenu library is the foundation for both the global menu and HUD in Unity. It allows an application to export a menu structure over DBus where it can be accessed by other applications and services. Toolkit bindings for Gtk and Qt will automatically add window menus for applications using them to DBusMenu, where they can be read by the Global Menu and HUD.

Getting the code

bzr branch lp:dbusmenu
bzr branch lp:appmenu-gtk
bzr branch lp:dbusmenu-qt

Sourcecode Layout

dbusmenu/libdbusmenu-glib
GLib bindings to convert to and from DBusMenu
dbusmenu/libdbusmenu-gtk
Gtk bindings to convert to and from libdbusmenu-glib
appmenu-gtk/src
Automatically exports Gtk window menus using libdbudmenu-gtk
libdbusmenu-qt/src
Qt bindings to convert to and from DBusMenu

About libappindicator

Unity displays system and application indicators in the top panel of the shell. These indicators provide a common interface to show and change the status of an application or Unity itself.

Getting the code

bzr branch lp:libappindicator
bzr branch lp:libindicate
bzr branch lp:libindicator

Sourcecode Layout

libappindicator/src
Client library for adding an indicator for an application
libindicate/libindicate
Client library for interacting with the Message Menu indicator
libindicator/libindicator
Used by Unity to find and display Indicators in the panel

About bamf

The Bamf Application Matching Framework monitors the opening and closing of all windows on the desktop, assigning each to an “application” group that is associated with a .desktop file. This allows Unity to easily match a Windows with meta-data from it’s Application, such as icon, name and executable. Bamf if used by the Unity Launcher, Application Switcher and Spread.

Getting the code

bzr branch lp:bamf

Sourcecode Layout

bamf/src
The bamf daemon which allows other Unity components to query information via dbus
bamf/lib/libbamf
Client-side library that provides an API to communicate with the bamf daemon