Bug 367756 - Sometimes, additional system tray icons will not appear in tray after a system restart
Summary: Sometimes, additional system tray icons will not appear in tray after a syste...
Status: RESOLVED FIXED
Alias: None
Product: plasmashell
Classification: Plasma
Component: System Tray (show other bugs)
Version: 5.7.3
Platform: Arch Linux Linux
: NOR normal
Target Milestone: 1.0
Assignee: Plasma Bugs List
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2016-08-24 12:34 UTC by Hugo Locurcio
Modified: 2016-09-09 11:48 UTC (History)
4 users (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Hugo Locurcio 2016-08-24 12:34:42 UTC
Sometimes, additional system tray icons (such as Quassel's) will not appear in tray after a system restart. By "additional", I mean icons that are not part of the base KDE system, but rather icons part of third-party applications.

Example applications affected by this include Quassel, Clementine, Telegram Desktop and probably more.

There is a workaround: entering "killall plasmashell; plasmashell & disown; exit" in terminal will restart Plasma and cause the missing system tray icons to finally display in the tray.

Reproducible: Sometimes

Steps to Reproduce:
1. Open an application like Quassel
2. Save your session (so that the application restarts automatically when booting) then restart (or shutdown then start) your PC and log in as usual
3. Sometimes, the Quassel icon (or any third-party application icon) will be missing from the system tray.



I'm using Antergos which is based on Arch Linux.
Comment 1 blaze 2016-08-24 12:39:17 UTC
I can confirm this issue on Ubuntu/Kubuntu 16.10, Plasma 5.7.3 for Qt5/Qt4 apps.
Comment 2 Slaviro 2016-08-28 15:13:54 UTC
I can confirm this bug for Qt4/Qt5 apps on Gentoo, Plasma 5.7.4. It's really reproducable sometimes. Can appear after Log Out and Login (without saving session), or some time after Log Out or after reboot only. Can be fixed by removing System Tray widget from panel and adding it back.
Comment 3 David Edmundson 2016-08-28 17:24:02 UTC
Are you able to apply patches, if so can you see if this fixes it: https://phabricator.kde.org/D2613
Comment 4 Slaviro 2016-08-29 13:27:51 UTC
Patched my Plasma-workspace 5.7.4 and looks like the problem is gone. At least, I don't see it anymore after a couple of reboots.
Comment 5 blaze 2016-09-03 07:45:13 UTC
I've created patched plasma-workspace package. No issues so far.

All Yakkety users can test this too:
sudo add-apt-ppa ppa:blaze/test
sudo apt update
sudo apt install plasma-workspace
Comment 6 David Edmundson 2016-09-09 11:48:41 UTC
Git commit df4387a21f6eb5ede255ea148143122ae4d5ae9c by David Edmundson.
Committed on 09/09/2016 at 11:46.
Pushed by davidedmundson into branch 'Plasma/5.7'.

Fix some status notifier items not appearing

Summary:
Set the initial values for all the things
This is important as Plasma::DataModel has an unsolvable bug
When it gets data with a new key it tries to update the  QAIM roleNames
>From QML this achieves absolutely nothing as there is no signal to tell
QQmlDelegateModel to reload the roleNames in QQmlAdapatorModel
No matter if the row changes or the model refreshes
This means it does not re-evaluate what bindings exist (watchedRoleIds)
and we get properties that don't bind for this or any future SNI.

The main source of this problem is syncStatus can occur before
refreshCallback; but whilst that's easy to guard against, there's still
multiple if{} blocks that don't set various keys in refreshCallback()
which would all need changing too. This seemed cleaner and easier to
manage.
Related: bug 366283

Reviewers: #plasma, mart

Reviewed By: mart

Subscribers: broulik, plasma-devel

Tags: #plasma

Differential Revision: https://phabricator.kde.org/D2613

M  +29   -0    dataengines/statusnotifieritem/statusnotifieritemsource.cpp

http://commits.kde.org/plasma-workspace/df4387a21f6eb5ede255ea148143122ae4d5ae9c