QubesOS / qubes-issues

The Qubes OS Project issue tracker
https://www.qubes-os.org/doc/issue-tracking/
543 stars 48 forks source link

KDE: NetworkManager, other systray icons are blank #2283

Open tasket opened 8 years ago

tasket commented 8 years ago

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 commented 8 years ago

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 commented 7 years ago

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 commented 7 years ago

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 commented 7 years ago

@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 7 years ago

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

adrianx64 commented 7 years ago

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

tasket commented 6 years ago

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 6 years ago

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.

andrewdavidwong commented 4 years ago

This issue is being closed because:

If anyone believes that this issue should be reopened, please let us know in a comment here.

ar- commented 3 years ago

This issue is still present in R4.0. It was originally reported for R4.0, so I'm not sure why it has been closed.

It is very unfortunate. I have followed this guide to add a second network indicator for the VPN https://micahflee.com/2019/11/using-mullvad-in-qubes/

but now I have 2 invisible icons. Before that only one of them was invisible. It is very easy to reproduce: just use KDE.

I have also seen the icon appearing from time to time, but I cannot say if it is related to using VLC or something.

Edit:

This is also reported in Feb 2021 here: https://www.reddit.com/r/Qubes/comments/lq23j1/no_network_manager_applets_in_kde_white_applet/

And it was also unresolved here: https://groups.google.com/g/qubes-users/c/dq5ZimF8ZWI

So it can be safely assumed that the error is still persisting.

ar- commented 3 years ago

I've found this forum post by unman: https://forum.qubes-os.org/t/kde-changing-the-way-you-use-qubes/4730/6

The absence of the Network Manager icon is a long standing issue - I’ve tried to get some KDE developers onboard, but as yet with no success. After a while, you just know where the icon should be from its absence. (There are horrible hacks to make the icon appear - I think that the screenshots I posted showed this: I don’t use them.)

I understand 2 things from that:

  1. the issue is not easy to fix and will likely not be fixed anytime soon
  2. There is apparently a hack to make the icon visible, but it doesn't say what the heck the hack is
DemiMarie commented 3 years ago

@unman what is the hack in question? Qubes OS is no stranger to ugly hacks.

unman commented 3 years ago

On Tue, Oct 05, 2021 at 06:13:07AM -0700, Demi Marie Obenour wrote:

@unman what is the hack in question? Qubes OS is no stranger to ugly hacks.

I don't know - I made it clear that I don't use such things, because they are of little relevance to me. I will ask.

github-actions[bot] commented 1 year ago

This issue is being closed because:

If anyone believes that this issue should be reopened and reassigned to an active milestone, please leave a brief comment. (For example, if a bug still affects Qubes OS 4.1, then the comment "Affects 4.1" will suffice.)

DemiMarie commented 9 months ago

Still affects R4.2.

peakunshift commented 3 months ago

I've summed up the issue in a post on the forum with links to VLC/sdwdate source code and simple Python scripts to display systray icons in GTK3 and Qt5. I can confirm that the issue only appears in GTK3.

https://forum.qubes-os.org/t/some-system-tray-icons-are-blank/23526/4

Hope it can help for future debugging.

Maybe using a Fedora-KDE template will display the icons correctly at least for network and audio widgets?