New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

KDE: NetworkManager, other systray icons are blank #2283

Open
tasket opened this Issue Aug 30, 2016 · 8 comments

Comments

Projects
None yet
4 participants
@tasket

tasket commented Aug 30, 2016

Qubes OS version (e.g., R3.1):

R3.2
R4.0

Affected TemplateVMs (e.g., fedora-23, if applicable):

Debian 9 (upgraded debian-8)
Fedora

Expected behavior:

When using a debian 9 template for a netvm, NetworkManager is present in the systray and visible/accessible.

Actual behavior:

NetworkManager is present and accessible in the systray, but the icon is blank.

Steps to reproduce the behavior:

Create netvm using template upgraded to debian 9; Shutdown other netvms and start the new netvm.

General notes:

Desktop is KDE5.


Related issues:

Maybe #2242

@tasket tasket changed the title from Debian 9 (testing): NetworkManager icon is blank to Debian 9 (testing): NetworkManager systray icon is blank Aug 30, 2016

@andrewdavidwong andrewdavidwong added this to the Release 3.2 milestone Aug 31, 2016

@tasket

This comment has been minimized.

Show comment
Hide comment
@tasket

tasket Aug 31, 2016

This may be a general issue with Debian 9 vs Qubes 3.2, as my Ring app also has a systray icon that is going blank (using the same Debian version).

IIRC the icons were showing up as recently as last week, so an update probably triggered this bug.

tasket commented Aug 31, 2016

This may be a general issue with Debian 9 vs Qubes 3.2, as my Ring app also has a systray icon that is going blank (using the same Debian version).

IIRC the icons were showing up as recently as last week, so an update probably triggered this bug.

@andrewdavidwong

This comment has been minimized.

Show comment
Hide comment
@andrewdavidwong

andrewdavidwong Dec 24, 2016

Member

User report of the same issue with a Fedora-based sys-net. It sounds like the common factor in both cases is KDE in dom0:

On 2016-12-23 21:31, Adrian Rocha wrote:

Hi, I created a new sys-net VM based on Fedora-24 template. The
network works fine but the systray applet icon isn't visible. If I
click the mouse over the systray space I can see the menu, connect
to the wifi, etc. Something is wrong with the icon. The icon is
visible in XFCE, so I think that is some issue in the new version
of the Network Manager Applet respect to the KDE systray. The
network manager applet version in Fedora-25 is 1.4.0 and 1.0.10 for
Fedora-23. I created a new template VM Fedora-25, but the issue
persists. Any ideas?

Member

andrewdavidwong commented Dec 24, 2016

User report of the same issue with a Fedora-based sys-net. It sounds like the common factor in both cases is KDE in dom0:

On 2016-12-23 21:31, Adrian Rocha wrote:

Hi, I created a new sys-net VM based on Fedora-24 template. The
network works fine but the systray applet icon isn't visible. If I
click the mouse over the systray space I can see the menu, connect
to the wifi, etc. Something is wrong with the icon. The icon is
visible in XFCE, so I think that is some issue in the new version
of the Network Manager Applet respect to the KDE systray. The
network manager applet version in Fedora-25 is 1.4.0 and 1.0.10 for
Fedora-23. I created a new template VM Fedora-25, but the issue
persists. Any ideas?

@adrianx64

This comment has been minimized.

Show comment
Hide comment
@adrianx64

adrianx64 Jun 24, 2017

About this issue. I did some tests. I downgraded the nm-applet in a fedora 25 VM to version 1.0.10 (the version used in fedora 23) but the problem persists. Besides that the problem isn't only with the nm-applet icon. Other system tray icons like google chrome has the same problem.
I found this difference comparing the behavior between a fedora 23 VM and a fedora 25 VM running dbus-monitor in dom0:
Fedora 23 VM:
method return time=1498322077.539072 sender=:1.79 -> destination=:1.67 serial=8 reply_serial=554
array [
dict entry(
string "Category"
variant string "ApplicationStatus"
)
dict entry(
string "IconPixmap"
variant array [
struct {
int32 32
int32 32
array of bytes [
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
....
ff 2d 2d 3f ff 2d 2d 3f ff 28 28 3f ff 24 24 3f ff 31 31
3f ff 55 55 2f ff 67 67 0f ff 66 66 00 00 00 00 00 00 00
....
00 00 00 00 00 00 00 00 00 00 00
]
}
]
)
dict entry(
string "Id"
variant string "[sys-net] NetworkManager Applet"
)
dict entry(
string "ItemIsMenu"
variant boolean false
)
dict entry(
string "Status"
variant string "Active"
)
dict entry(
string "Title"
variant string "[sys-net] NetworkManager Applet"
)
dict entry(
string "WindowId"
variant int32 56623633
)
]

Fedora 25 VM
method call time=1498321997.463176 sender=:1.67 -> destination=:1.76 serial=529 path=/StatusNotifierItem; interface=org.freedesktop.DBus.Properties; member=GetAll
string "org.kde.StatusNotifierItem"
method return time=1498321997.463905 sender=:1.76 -> destination=:1.67 serial=2 reply_serial=529
array [
dict entry(
string "Category"
variant string "ApplicationStatus"
)
dict entry(
string "IconPixmap"
variant array [
struct {
int32 0
int32 0
array [
]
}
]

)
dict entry(
string "Id"
variant string "[sys-usb] NetworkManager Applet"
)
dict entry(
string "ItemIsMenu"
variant boolean false
)
dict entry(
string "Status"
variant string "Active"
)
dict entry(
string "Title"
variant string "[sys-usb] NetworkManager Applet"
)
dict entry(
string "WindowId"
variant int32 67108951
)
]

So, for some reason the icon isn't received in the dom0 plasma desktop systray.
I don't know how dbus works. Some ideas or workaround to test?

About this issue. I did some tests. I downgraded the nm-applet in a fedora 25 VM to version 1.0.10 (the version used in fedora 23) but the problem persists. Besides that the problem isn't only with the nm-applet icon. Other system tray icons like google chrome has the same problem.
I found this difference comparing the behavior between a fedora 23 VM and a fedora 25 VM running dbus-monitor in dom0:
Fedora 23 VM:
method return time=1498322077.539072 sender=:1.79 -> destination=:1.67 serial=8 reply_serial=554
array [
dict entry(
string "Category"
variant string "ApplicationStatus"
)
dict entry(
string "IconPixmap"
variant array [
struct {
int32 32
int32 32
array of bytes [
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
....
ff 2d 2d 3f ff 2d 2d 3f ff 28 28 3f ff 24 24 3f ff 31 31
3f ff 55 55 2f ff 67 67 0f ff 66 66 00 00 00 00 00 00 00
....
00 00 00 00 00 00 00 00 00 00 00
]
}
]
)
dict entry(
string "Id"
variant string "[sys-net] NetworkManager Applet"
)
dict entry(
string "ItemIsMenu"
variant boolean false
)
dict entry(
string "Status"
variant string "Active"
)
dict entry(
string "Title"
variant string "[sys-net] NetworkManager Applet"
)
dict entry(
string "WindowId"
variant int32 56623633
)
]

Fedora 25 VM
method call time=1498321997.463176 sender=:1.67 -> destination=:1.76 serial=529 path=/StatusNotifierItem; interface=org.freedesktop.DBus.Properties; member=GetAll
string "org.kde.StatusNotifierItem"
method return time=1498321997.463905 sender=:1.76 -> destination=:1.67 serial=2 reply_serial=529
array [
dict entry(
string "Category"
variant string "ApplicationStatus"
)
dict entry(
string "IconPixmap"
variant array [
struct {
int32 0
int32 0
array [
]
}
]

)
dict entry(
string "Id"
variant string "[sys-usb] NetworkManager Applet"
)
dict entry(
string "ItemIsMenu"
variant boolean false
)
dict entry(
string "Status"
variant string "Active"
)
dict entry(
string "Title"
variant string "[sys-usb] NetworkManager Applet"
)
dict entry(
string "WindowId"
variant int32 67108951
)
]

So, for some reason the icon isn't received in the dom0 plasma desktop systray.
I don't know how dbus works. Some ideas or workaround to test?

@tasket tasket changed the title from Debian 9 (testing): NetworkManager systray icon is blank to KDE: NetworkManager, other systray icons are blank Jun 24, 2017

@tasket

This comment has been minimized.

Show comment
Hide comment
@tasket

tasket Jun 24, 2017

@adrianx64 Good find!

I also want to note that the blank result can depend on specific apps, at least in Debian 9 (haven't tested this for Fedora). For instance, when running artha dictionary or vlc player their systray icons do appear and behave normally.

OTOH, other apps that appear blank are Ring communicator and Liferea feed reader.

Here's the interesting thing... Both Ring and Liferea appear in the launch menu with malformed icons! So I think perhaps the Qubes icon rendering is experiencing a bug that gets triggered for some icons and not others. Maybe newer imagemagik change its behavior under certain conditions; worth further investigation...

tasket commented Jun 24, 2017

@adrianx64 Good find!

I also want to note that the blank result can depend on specific apps, at least in Debian 9 (haven't tested this for Fedora). For instance, when running artha dictionary or vlc player their systray icons do appear and behave normally.

OTOH, other apps that appear blank are Ring communicator and Liferea feed reader.

Here's the interesting thing... Both Ring and Liferea appear in the launch menu with malformed icons! So I think perhaps the Qubes icon rendering is experiencing a bug that gets triggered for some icons and not others. Maybe newer imagemagik change its behavior under certain conditions; worth further investigation...

@tasket

This comment has been minimized.

Show comment
Hide comment
@tasket

tasket Jun 25, 2017

Here is an image showing the mangled icons...
screenshot_20170624_165054

tasket commented Jun 25, 2017

Here is an image showing the mangled icons...
screenshot_20170624_165054

@adrianx64

This comment has been minimized.

Show comment
Hide comment
@adrianx64

adrianx64 Jun 25, 2017

@tasket yes, You right. Same for Fedora 24/25. Some icons like Slack, clipit or VLC works fine.

@tasket yes, You right. Same for Fedora 24/25. Some icons like Slack, clipit or VLC works fine.

@tasket

This comment has been minimized.

Show comment
Hide comment
@tasket

tasket Jul 16, 2018

In surveying what I can use to add notifier/systray icon to my VPN handler, I came to an interesting realization yesterday. Using Gtk+ 3 in the domU results in a blank icon.

Everything else seems to work:

KDE4 apps (Qt4)
PyQt5 scripts (Qt5)
pygtk scripts (Gtk+2)

Even if I use icons from the mis-rendered apps above (like Audacity), using non-Gtk+3 libraries still works and renders the icons correctly in the systray.


Adding to the intrigue is that one of the R4.0 dom0 apps devices.py also exhibits a blank icon, although it may be for different reasons.

tasket commented Jul 16, 2018

In surveying what I can use to add notifier/systray icon to my VPN handler, I came to an interesting realization yesterday. Using Gtk+ 3 in the domU results in a blank icon.

Everything else seems to work:

KDE4 apps (Qt4)
PyQt5 scripts (Qt5)
pygtk scripts (Gtk+2)

Even if I use icons from the mis-rendered apps above (like Audacity), using non-Gtk+3 libraries still works and renders the icons correctly in the systray.


Adding to the intrigue is that one of the R4.0 dom0 apps devices.py also exhibits a blank icon, although it may be for different reasons.

@tasket

This comment has been minimized.

Show comment
Hide comment
@tasket

tasket Jul 16, 2018

Its worth noting there are many cases of disappearing Linux systray icons mentioned online. This initially was caused by a move away from X11-specific Xembed interface to the KDE-created (and Ubuntu-adopted) Status Notifier. Eventually this was adopted as an XDG 'standard'. While this was happening Gnome decided it didn't want systray icons in Gnome 3 apps and tried to suppress the systray area in its UI; this may have negatively affected the Gtk+3 implementation.

tasket commented Jul 16, 2018

Its worth noting there are many cases of disappearing Linux systray icons mentioned online. This initially was caused by a move away from X11-specific Xembed interface to the KDE-created (and Ubuntu-adopted) Status Notifier. Eventually this was adopted as an XDG 'standard'. While this was happening Gnome decided it didn't want systray icons in Gnome 3 apps and tried to suppress the systray area in its UI; this may have negatively affected the Gtk+3 implementation.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment