Bug 436104

Summary: Skype creates hotspot in upper left corner of desktop in Plasma Wayland session
Product: [Plasma] plasmashell Reporter: SP <scp.stjohn>
Component: XembedSNIProxyAssignee: Plasma Bugs List <plasma-bugs>
Status: RESOLVED NOT A BUG    
Severity: normal CC: aleixpol, materka, nate, vlad.zahorodnii
Priority: NOR Keywords: wayland
Version: 5.20.5   
Target Milestone: 1.0   
Platform: Fedora RPMs   
OS: Linux   
See Also: https://bugs.kde.org/show_bug.cgi?id=432744
Latest Commit: Version Fixed In:
Sentry Crash Report:

Description SP 2021-04-23 18:36:19 UTC
SUMMARY


STEPS TO REPRODUCE
1. Start Skype for Linux
2. 
3. 

OBSERVED RESULT
Skype places a hot spot to launch in the upper left corner of the desktop

EXPECTED RESULT
The program should not be allowed to do this as in KDE X11


SOFTWARE/OS VERSIONS
Windows: 
macOS: 
Linux/KDE Plasma: 5.11.15-200.fc23.x86_64
(available in About System)
KDE Plasma Version: 5.20.5
KDE Frameworks Version: 5,79.0
Qt Version: 5.15.2

ADDITIONAL INFORMATION
Upgraded two laptops to Fedora 23 and logged in to the Plasma Wayland session.  Start Skype and it creates an invisible launcher in the upper left corner of the desktop.  This does not occur logging into an X11 session.  It is inconvenient if one has the panel/taskbar at the top of the desktop with the Application Launcher in the upper left corner as Skype prevents it from being activated.  Quitting Skype resolves this.  

Oddly, it seems to have resolved on one laptop though the settings are the same on each.  Any advice would be appreciated - though I realize that Skype is a proprietary program.
Comment 1 Nate Graham 2021-04-23 19:29:14 UTC
See also Bug 432744. Possibly already fixed.
Comment 2 Nate Graham 2021-04-23 20:22:09 UTC
Where are you getting Skype from? I don't have it available in my distro repos, and if I try the FlatHub version, it crashes on launch in my Wayland session. :( Looks like I can't test this.
Comment 3 SP 2021-04-23 20:52:27 UTC
@Na(In reply to Nate Graham from comment #1)
> See also Bug 432744. Possibly already fixed.

Thanks Nate.
It does appear to be related to xembedsniproxy.  Doing a killall xembedsniproxy resolves the problem but also removes (and prevents) the skype icon being minimized to the system tray.  Contrary to the report in Bug 432744 I do not see a black square in the corner. Which version of KDE were you running?  Obviously, Skype for Linux is using xembedsniproxy.
Comment 4 SP 2021-04-23 20:54:47 UTC
(In reply to Nate Graham from comment #2)
> Where are you getting Skype from? I don't have it available in my distro
> repos, and if I try the FlatHub version, it crashes on launch in my Wayland
> session. :( Looks like I can't test this.
Skype for Linux is available for download from skype.com as it is for other os's too.
Comment 5 SP 2021-04-23 23:48:19 UTC
My workaround is to disable xembedsniproxy by renaming it xembedsniproxy.org.  Add the application Skype to the system tray as a widget.  In Skype Tools/Settings/General enable Automatically start Skype; disable Launch Skype in background; enable on close keep Skype running.   That way Skype does not start a hotspot launcher in the left upper corner of the desktop in a Wayland session and can be opened easily from the system tray. I am sure there is a downside to this solution but it has not revealed itself yet.
Comment 6 Konrad Materka 2021-04-24 15:59:34 UTC
Are you using Skype for Windows in Wine? Skype for Linux is using SNI icons, not legacy XEmbed.

Bug 432744 fixed this on X, I never tested it on Wayland (and I'm surprised it works :)). Anyway, the hotspot is just a transparent (or if something is really wrong black) window for tray icon. It should move to after first click on the icon in system tray area. But as I said, that's how it works on X, on Wayland possibly it can't be moved (I can't test with my Nvidia card).
Comment 7 SP 2021-04-24 16:59:56 UTC
No, I am using Skype for Linux.  Skype for Linux is definitely utilizing in some way xembedsniproxy as disabling that program resolves the problem of the hotspot in the upper left corner of the desktop.  The downside is that it also disables Skype for Linux's status icon in the systemtray.  Adding Skype as a widget allows the program to be opened and run.

(In reply to Konrad Materka from comment #6)
> Are you using Skype for Windows in Wine? Skype for Linux is using SNI icons,
> not legacy XEmbed.
> 
> Bug 432744 fixed this on X, I never tested it on Wayland (and I'm surprised
> it works :)). Anyway, the hotspot is just a transparent (or if something is
> really wrong black) window for tray icon. It should move to after first
> click on the icon in system tray area. But as I said, that's how it works on
> X, on Wayland possibly it can't be moved (I can't test with my Nvidia card).
Comment 8 SP 2021-04-24 17:25:28 UTC
Is there an updated list of programs for KDE that provide SNI/Appindicator icons and those that still require xembedsniproxy?
It seems that any program that calls xembedsniproxy in Wayland will place the transparent icon loader for itself in the upper left corner of the desktop thus covering and essentially disabling any launcher icon that resides there.  This is resolved by either closing the offending program or disabling xembedsniproxy.  So far, the only program that does this in Plasma Wayland is Skype for Linux.  @Konrad Materka maintains that Skype for Linux uses SNI icons - yet the program is clearly calling xembedsniproxy.  If this is the only offending program (and it is proprietary) - should I mark this as Resolved?  Or would fixing the problem by disallowing xembedsniproxy to interfere with other programs in Wayland be a better solution?
Comment 9 SP 2021-04-24 17:27:52 UTC
Correction:
So far, the only program *I have discovered* that does this
Comment 10 Konrad Materka 2021-04-24 21:25:53 UTC
There are two protocols for tray icons:
* obsole XEmbed - some desktop dropped support for it entirely. KDE has some xembedsniproxy to translate XEmbed to SNI, but it is far from perfect (because  it can't be)
* current StatusNotifierItem - Skype definitelly supports this, as it uses Electron which uses Gtk3 which uses libappindicator (if avaliable). Gtk fallbacks to old xembed if libappindicator is missing.

Do you have libappindicator package installed?
Comment 11 SP 2021-04-25 01:22:06 UTC
(In reply to Konrad Materka from comment #10)
> There are two protocols for tray icons:
> * obsole XEmbed - some desktop dropped support for it entirely. KDE has some
> xembedsniproxy to translate XEmbed to SNI, but it is far from perfect
> (because  it can't be)
> * current StatusNotifierItem - Skype definitelly supports this, as it uses
> Electron which uses Gtk3 which uses libappindicator (if avaliable). Gtk
> fallbacks to old xembed if libappindicator is missing.
> 
> Do you have libappindicator package installed?

@Konrad Materka Thank you.  Discovered that I did not have the libaooindicator packages installed on the laptops I upgraded to Plasma Wayland on Fedora 33.  Installed them, renenabled xembedsniproxy, rebooted into a KDE Wayland session and all has been resolved.  The Skype hotspot in the upper left corner no longer blocks the application launcher resident there and also the Skype status icon appears in the System Tray.  Much appreciate your help.  I am marking this as solved.