Hey everyone, After fairly long chats with Carsten and Mike during LinuxCon and over IRC, trying to fix systray on my own, and better understanding the systray landscape, I've also switched to the drop-xembed camp.
Introduction: For those of you who don't know, 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. But why not just fix the systray module? It's a lot of work and it's just not worth it since there is a better and widely used alternative out there. I also tried writing a module to embed a standalone systray into our shelves only to find out that all the standalone systrays suck. :) I wanted to port the e17 systray module to e20, but according to Mike, that won't work, as there are many issues with the compositor interactions. Essentially, unless we come across a reasonable reason why Xembed support shouldn't be dropped, I suggest we go on and get rid of it in the next week or two. References: http://blog.martin-graesslin.com/blog/2014/03/system-tray-in-plasma-next/ Thanks. -- Tom. ------------------------------------------------------------------------------ _______________________________________________ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel