Skip to content

Systray icon #2

@Peter2121

Description

@Peter2121

Playing with DSBMC, I found that it supports minimizing to tray. The problem - it seems that it is realized using 'old way', so Enlightenment 21 systray module does not show DSBMC icon. Third-party apps (tint2, for example) show the icon correctly.

The reason of such problem is explained in E-devel maillist - the systray module from recent Enlightenment supports Appindicator only, not supporting Xembed:

There are currently two main ways for
implementing systray in Linux, Xembed (legacy) and appindicator (fairly
new).

Xembed: this is the legacy way of doing it. An application which wants
to have a systray icon creates a small (22x22 px) window which gets
embedded into the systray gadget. This is a window like any other, so
for better or worse, everything is user controlled, including ugly
inconsistent behaviour. To make things even worse, those "windows"
usually don't have a transparent background, but instead use hacks to
determine what solid colour background they should use, making
themability, something we care about a lot in E, suck.

Appindicator: dis is a specification that start by the KDE devs a while
back, and was adopted by unity/ubuntu. It's essentially a dbus api,
which means the shell (enlightenment) has more control regarding look,
feel and behaviour, and makes the shelf more consistent among apps.

Major issues with Xembed:
Apart from the issues mentioned above, xembed is also broken because it
(obviously) doesn't work under wayland, it doesn't work with higher dpi
screens (remember the 22x22 restriction?), clients implement it in a
hacky way, and that means servers have to adapt, making it very painful
to support, and last, but not least, it's considered obsolete by many
people in the Linux world, namely us.

Rest of the ecosystem:
From what I understand, KDE5 will have no xembed support, Unity already
doesn't support it, and I hope we and many others will follow.
I don't remember the exact list, but from the kde blog (see link below)
and off the top of my head, in elm we only support appindicator for
systray, most Qt and GTK+ apps support it, dropbox and steam also use
it, so it's really just skype that's broken, I'd complain to support and
get it working. If you encounter anything else that doesn't, just open a
ticket at the respective project.

http://blog.martin-graesslin.com/blog/2014/03/system-tray-in-plasma-next/

So, probably DSBMC is using Xembed, not compatible with Enlightenment, Unity and KDE5.

Is it possible to add Appindicator support to DSBMC?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions