Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.debian.devel > #85210

Upcoming shift to Ayatana (App)Indicator(s)

From Mike Gabriel <sunweaver@debian.org>
Newsgroups linux.debian.devel
Subject Upcoming shift to Ayatana (App)Indicator(s)
Date 2018-03-29 15:20 +0200
Message-ID <vyFDb-1rl-5@gated-at.bofh.it> (permalink)
Organization DAS-NETZWERKTEAM

Show all headers | View raw


[Multipart message — attachments visible in raw view] - view raw

Hi all,

I send out my recent blog post to the debian-devel ML to provide a  
means for bundled feedback. I am also hoping for feedback from Ubuntu  
developers. On DebConf17 I talked to Dmitry John Ledkov about the idea  
of having Indicators maintained outside of Ubuntu and the idea found  
interest. (Although the renaming in the shared lib has caused some  
pain to people, but so be it now).

This mail is also intended for members of the release team, as I need  
advice on how to address such a transition (or rather "shift") in  
Debian's BTS. As this is not a real shared lib bin:pkg transition, I  
feel.

Thanks for your contributions already!
Mike

PS: please Cc: me when replying, so I don't miss your thoughts...

----------------------

This is to make people aware and inform about an ongoing effort to  
replace Indicators in Debian (most people know the concept from  
Ubuntu) by a more generically developed and actively maintained fork:  
Ayatana Indicators.

## TL;DR;

In Debian, we will soon start sending out patches too SNI supporting  
applications via Debian's BTS (and upstream trackers, too, probably),  
that make the shift from Ubuntu AppIndicator (badly maintained in  
Debian) to Ayatana AppIndicator.

Status of the work being done is documented here:  
https://wiki.debian.org/Ayatana/IndicatorsTransition


## Why Ayatana Indicators

The fork is currently pushed forward by the Debian and Ubuntu MATE  
packaging team.

The Indicators concept has originally been documented by Canonical,  
find your entry point in the readings here [1,2].

Some great work and achievement was done around Ubuntu Indicators by  
Canonical Ltd. and the Indicators concept has always been a special  
identifying feature of Ubuntu. Now with the switch to GNOMEv3, the  
future of Indicators in Ubuntu is uncertain. This is where Ayatana  
Indicators come in...

The main problem with Ubuntu Indicators today (and ever since) is (has  
been): they only work properly on Ubuntu, mostly because of one  
Ubuntu-specific patch against GTK-3 [3].

In Ayatana Indicators (speaking with my upstream hat on now), we are  
currently working on a re-implementation of the rendering part of the  
indicators (using GTK's popovers rather then menushells), so that it  
works on vanilla GTK-3. Help from GTK-3 developers is highly welcome,  
in case you feel like chiming in.

Furthermore, the various indicator icons in Ubuntu (-session, -power,  
-sound, etc. - see below for more info) have been targetted more and  
more for sole usage with the Unity 7 and 8 desktop environments. They  
can be used with other desktop environments, but are likely to behave  
quite agnostic (and sometimes stupid) there.

In Ayatana Indicators, we are working on generalizing the  
functionality of those indicator icon applications and make them more  
gnostic on other desktop environments.

Ayatana Indicators as an upstream project will be very open to  
contributions from other desktop environment developers that want to  
utilize the indicator icons with their desktop shell, but need  
adaptations for their environment. Furthermore, we want to encourage  
Unity 7 and Unity 8 developers to consider switching over (and getting  
one step further with the goal of shipping Unity on non-Ubuntu  
systems). With the Unity 8 maintainers (the people from UBports /  
Ubuntu Touch) first discussion exchanges have taken place.

## The different Components of Ayatana Indicators

### The 'indicator-renderer' Applets

Theses are panel plugins mostly, that render the system tray icons and  
menus (and widgets) defined by indicator aware applications. They  
normally come with your desktop environment (if it supports indicators).

Letting the desktop environment render the system tray itself assures  
that the indicator icons (i.e. the desktop system tray) looks just  
like the rest of the desktop shell. With the classical (xembed based)  
system tray (or notification) areas, all applications render their  
icon and menus themselves, which can cause theming problems and a11y  
issues and more.

Examples of indicator renderers are: ``mate-indicator-applet``,  
``budgie-indicator-applet``, ``xfce4-indicator-pluign``, etc.


### Shared Library: Rendering and Loading of Indicators

The Ayatana Indicators project currently only provides a rendering  
shared lib for GTK-2 and GTK-3 based applications. We still need to  
connect better with the Qt-world.

The rendering library (used by the above renderers) is libayatana-indicator.

This library supports:

   * loading and rendering of old style indicators
   * loading and rendering of NG indicators

The libayatana-indicator library also utilizes a variety of versatile  
GTK-3 widget defined in another shared library: aytana-ido.

### Ayatana Indicator Applets

The Ayatana Indicators project continues and generalizes various  
indicator icon applications that are not applications by themselves  
really, but more like system / desktop control elements:

   * ayatana-indicator-session (logout, lock screen, user guides, etc.)
   * ayatana-indicator-power (power management)
   * ayatana-indicator-sound (sound and multimedia control)
   * ayatana-indicator-datetime (clock, calendar,  
evolution-data-server integration)
   * ayatana-indicator-notifications (libnotify collector of system messages)
   * ayatana-indicator-printers (interact with CUPS print jobs and queues)

These indicators are currently under heavy re-development. The current  
effort in Ayatana Indicators is to make them far more generic and  
usable on all desktop environments that want to support them. E.g. we  
recently added XFCE awareness to the -session and the -power indicator  
icons.

One special indicator icon is the Ayatana Indicator Application  
indicator. It provides SNI support to third-party applications (see  
below). For the desktop applet, it appears just like any of the other  
above named indicators, but it opens the door to the world of SNI  
supporting applications.

One available and easy-to-install test case in Debian buster for  
indicator icons provided by the Ayatana Indicators project is the  
arctica-greeter package. The icons displayed in the greeter are  
Ayatana Indicators.


### Ayatana AppIndicator API

The Ayatana AppIndicator API is just one way of talking to an SNI DBus  
service. The implementation is done in the shared lib  
'libayatana-appindicator'. This library provides an easy to implement  
API that allows GTK-2/3 applications to create an indicator icon in a  
panel with an indicator renderer added.

In the application, the developer creates a generic menu structure and  
defines one or more icons for the system tray (more than one icon:  
only one icon is shown (plus some text, if needed), but that icon may  
changed based on the applet's status). This generic menu is sent to a  
DBus interface (org.kde.StatusNotifier). Sometimes, people say, that  
such applications have SNI support (StatusNotifier Interface support).

The Ayatana Indicators project offers Ayatana AppIndicator to GTK-3  
developers (and GTK-2, but well...). Canonical implemented bindings  
for Python2, Perl, GIR, Mono/CLI and we continue to support these as  
long as it makes sense.

The nice part of Ayatana AppIndicator shared library is: if a desktop  
shell does not offer the SNI service, then it tries to fall back to  
the xembed-way of adding system tray icons to your panel / status bar.

In Debian, we will start sending out patches too SNI supporting  
applications soon, that make the shift from Ubuntu AppIndicator (badly  
maintained in Debian) to Ayatana AppIndicator. The cool part of this  
is, you can convert your GTK-3 application from Ubuntu AppIndicator to  
Ayatana AppIndicator and use it on top of any(!) SNI implementation,  
be it an applet based on Ubuntu Indicators, based on Ayatana  
Indicators or some other implementation, like the vala-sntray-applet  
or SNI support in KDE.


## Further Readings

Some more URLs for deeper reading...

   * For the new upstream project, we have started a minimal web page:  
https://ayatanaindicators.github.io/
   * Upstream development takes place on Github:  
https://github.com/AyatanaIndicators
   * The always up-to-date status of Ayatana Indicators in Debian is  
documented here: https://wiki.debian.org/Ayatana/IndicatorsTransition
   * See also our DDPO overview page:  
https://qa.debian.org/developer.php?login=pkg-ayatana-devel%40lists.alioth.debian.org

You can also find more info on my blog: https://sunweavers.net

## References

   * [1] https://wiki.ubuntu.com/Indicators
   * [2] https://wiki.ubuntu.com/DesktopExperienceTeam/ApplicationIndicators
   * [3]  
https://bazaar.launchpad.net/~ubuntu-desktop/gtk/ubuntugtk3/view/head:/debian/patches/ubuntu_gtk_custom_menu_items.patch

-- 

mike gabriel aka sunweaver (Debian Developer)
mobile: +49 (1520) 1976 148
landline: +49 (4354) 8390 139

GnuPG Fingerprint: 9BFB AEE8 6C0A A5FF BF22  0782 9AF4 6B30 2577 1B31
mail: sunweaver@debian.org, http://sunweavers.net

Back to linux.debian.devel | Previous | Next — Next in thread | Find similar | Unroll thread


Thread

Upcoming shift to Ayatana (App)Indicator(s) Mike Gabriel <sunweaver@debian.org> - 2018-03-29 15:20 +0200
  Re: Upcoming shift to Ayatana (App)Indicator(s) Simon McVittie <smcv@debian.org> - 2018-03-29 16:00 +0200
    Re: Upcoming shift to Ayatana (App)Indicator(s) Mike Gabriel <mike.gabriel@das-netzwerkteam.de> - 2018-03-29 23:30 +0200
      Re: Upcoming shift to Ayatana (App)Indicator(s) Simon McVittie <smcv@debian.org> - 2018-03-30 01:30 +0200
        Re: Upcoming shift to Ayatana (App)Indicator(s) Mike Gabriel <mike.gabriel@das-netzwerkteam.de> - 2018-03-30 20:10 +0200
          Re: Upcoming shift to Ayatana (App)Indicator(s) Ian Jackson <ijackson@chiark.greenend.org.uk> - 2018-04-03 20:20 +0200
            Re: Upcoming shift to Ayatana (App)Indicator(s) Mike Gabriel <mike.gabriel@das-netzwerkteam.de> - 2018-04-04 15:30 +0200
              Re: Upcoming shift to Ayatana (App)Indicator(s) [and 1 more messages] Ian Jackson <ijackson@chiark.greenend.org.uk> - 2018-04-04 16:00 +0200
                Re: Upcoming shift to Ayatana (App)Indicator(s) [and 1 more  messages] Mike Gabriel <mike.gabriel@das-netzwerkteam.de> - 2018-04-04 16:50 +0200
      Re: Upcoming shift to Ayatana (App)Indicator(s) Ian Jackson <ijackson@chiark.greenend.org.uk> - 2018-04-03 20:20 +0200
        Re: Upcoming shift to Ayatana (App)Indicator(s) Mike Gabriel <mike.gabriel@das-netzwerkteam.de> - 2018-04-04 15:50 +0200
          Re: Upcoming shift to Ayatana (App)Indicator(s) Mike Gabriel <mike.gabriel@das-netzwerkteam.de> - 2018-04-04 16:10 +0200
          Re: Upcoming shift to Ayatana (App)Indicator(s) Ian Jackson <ijackson@chiark.greenend.org.uk> - 2018-04-04 16:10 +0200
    Re: Upcoming shift to Ayatana (App)Indicator(s) Mike Gabriel <mike.gabriel@das-netzwerkteam.de> - 2018-04-06 14:50 +0200
    Re: Upcoming shift to Ayatana (App)Indicator(s) Mike Gabriel <mike.gabriel@das-netzwerkteam.de> - 2018-04-06 15:30 +0200
  Re: Upcoming shift to Ayatana (App)Indicator(s) Chris Lamb <lamby@debian.org> - 2018-03-29 19:00 +0200
    Re: Upcoming shift to Ayatana (App)Indicator(s) Ian Jackson <ijackson@chiark.greenend.org.uk> - 2018-04-03 20:30 +0200
      Re: Upcoming shift to Ayatana (App)Indicator(s) Mike Gabriel <sunweaver@debian.org> - 2018-04-04 15:20 +0200
  Re: Upcoming shift to Ayatana (App)Indicator(s) Clément Hermann <nodens@nodens.org> - 2018-04-06 16:20 +0200
    Re: Upcoming shift to Ayatana (App)Indicator(s) Ian Jackson <ijackson@chiark.greenend.org.uk> - 2018-04-06 16:50 +0200
    Re: Upcoming shift to Ayatana (App)Indicator(s) Mike Gabriel <sunweaver@debian.org> - 2018-04-06 22:50 +0200
      Re: Upcoming shift to Ayatana (App)Indicator(s) Ian Jackson <ijackson@chiark.greenend.org.uk> - 2018-04-09 15:30 +0200
        Re: Upcoming shift to Ayatana (App)Indicator(s) Mike Gabriel <sunweaver@debian.org> - 2018-04-10 15:00 +0200
          Re: Upcoming shift to Ayatana (App)Indicator(s) Ian Jackson <ijackson@chiark.greenend.org.uk> - 2018-04-10 16:00 +0200
            Re: Upcoming shift to Ayatana (App)Indicator(s) Mike Gabriel <sunweaver@debian.org> - 2018-04-14 01:40 +0200

csiph-web