linuxmint / cinnamon

A Linux desktop featuring a traditional layout, built from modern technology and introducing brand new innovative features.
GNU General Public License v2.0
4.53k stars 736 forks source link

Indicator tray icon regression in Cinnamon 4.6.1 #9328

Open mmirg opened 4 years ago

mmirg commented 4 years ago

Issue Indicator tray icon for signal-desktop (electron 8.2.5) no longer appears in the system tray.

Steps to reproduce Run signal-desktop with --use-tray-icon flag.

Expected behaviour Tray icon for signal-desktop appears in the system tray. linuxmint/xapps@0a27c6a

Other information The icon previously appeared if "Enable Support for Indicators" was activated in cinnamon 4.4.x as seen in issue #9176.

Upstream reference: https://github.com/signalapp/Signal-Desktop/issues/3974

mtwebster commented 4 years ago

This works ok for me here.

Is the xapp-sn-watcher process running?

image

mmirg commented 4 years ago

No, the xapp-sn-watcher process was not running. When I did run it and then opened signal-desktop the following happened:

/usr/libexec/xapps/sn-watcher/xapp-sn-watcher

(xapp-sn-watcher:21436): GLib-GObject-CRITICAL **: 02:13:17.355: g_object_set: assertion 'G_IS_OBJECT (object)' failed

(xapp-sn-watcher:21436): GLib-GIO-CRITICAL **: 02:13:17.355: g_dbus_interface_skeleton_flush: assertion 'G_IS_DBUS_INTERFACE_SKELETON (interface_)' failed

(xapp-sn-watcher:21436): GLib-GObject-WARNING **: 02:13:17.355: invalid (NULL) pointer instance

(xapp-sn-watcher:21436): GLib-GObject-CRITICAL **: 02:13:17.355: g_signal_emit_by_name: assertion 'G_TYPE_CHECK_INSTANCE (instance)' failed

(xapp-sn-watcher:21436): GLib-CRITICAL **: 02:13:17.355: g_hash_table_foreach: assertion 'hash_table != NULL' failed

(xapp-sn-watcher:21436): GLib-GObject-CRITICAL **: 02:13:17.355: g_object_set: assertion 'G_IS_OBJECT (object)' failed

(xapp-sn-watcher:21436): GLib-GIO-CRITICAL **: 02:13:17.355: g_dbus_interface_skeleton_flush: assertion 'G_IS_DBUS_INTERFACE_SKELETON (interface_)' failed

xapps 1.8.5 is installed. Those errors don't seem to be directly related to the running of signal-desktop (or any other electron application) but they happen relatively frequently and xapp-sn-watcher will stop running.

mtwebster commented 4 years ago

Can you try it again but do the following first:

gsettings set org.x.apps.statusicon sn-watcher-debug true

This will print debugging lines, and maybe allow me to narrow down where things are going wrong.

Thanks

mmirg commented 4 years ago

gsettings set org.x.apps.statusicon sn-watcher-debug true /usr/libexec/xapps/sn-watcher/xapp-sn-watcher

(process:29018): dconf-DEBUG: 02:42:13.588: unwatch_fast: "/org/x/apps/statusicon/" (active: 0, establishing: 1)
(xapp-sn-watcher:29018): dconf-DEBUG: 02:42:13.595: watch_established: "/org/x/apps/statusicon/" (establishing: 0)
(xapp-sn-watcher:29018): GLib-GIO-DEBUG: 02:42:13.608: _g_io_module_get_default: Found default implementation gvfs (GDaemonVfs) for ‘gio-vfs’
(xapp-sn-watcher:29018): Gtk-DEBUG: 02:42:13.691: Connecting to session manager
(xapp-sn-watcher:29018): Gtk-DEBUG: 02:42:13.691: Failed to get the GNOME screensaver proxy: The name org.gnome.ScreenSaver is not owned
(xapp-sn-watcher:29018): Gtk-DEBUG: 02:42:13.691: Registering client 'org.x.StatusNotifierWatcher' ''
(xapp-sn-watcher:29018): Gtk-DEBUG: 02:42:13.692: Registered client at '/org/gnome/SessionManager/Client54'
(xapp-sn-watcher:29018): dconf-DEBUG: 02:42:13.694: watch_fast: "/org/x/apps/statusicon/" (establishing: 0, active: 0)
** (xapp-sn-watcher:29018): DEBUG: 02:42:13.694: XAppSnWatcher: Adding NameOwnerChanged listener for status monitor existence
(xapp-sn-watcher:29018): XApp-DEBUG: 02:42:13.694: XAppStatusIcon: any_monitors: Looking for status monitors
(xapp-sn-watcher:29018): dconf-DEBUG: 02:42:13.694: watch_established: "/org/x/apps/statusicon/" (establishing: 1)
(xapp-sn-watcher:29018): XApp-DEBUG: 02:42:13.694: XAppStatusIcon: any_monitors: FALSE
** (xapp-sn-watcher:29018): DEBUG: 02:42:13.694: No active monitors, exiting in 30s
** (xapp-sn-watcher:29018): DEBUG: 02:42:21.580: XAppSnWatcher: NameOwnerChanged signal received (n: :1.212, old: :1.212, new: 
** (xapp-sn-watcher:29018): DEBUG: 02:42:21.606: XAppSnWatcher: NameOwnerChanged signal received (n: :1.206, old: :1.206, new: 
** (xapp-sn-watcher:29018): DEBUG: 02:42:26.288: XAppSnWatcher: NameOwnerChanged signal received (n: :1.216, old: , new: :1.216
** (xapp-sn-watcher:29018): DEBUG: 02:42:29.958: XAppSnWatcher: NameOwnerChanged signal received (n: :1.217, old: , new: :1.217
** (xapp-sn-watcher:29018): DEBUG: 02:42:29.959: XAppSnWatcher: NameOwnerChanged signal received (n: :1.217, old: :1.217, new: 
(xapp-sn-watcher:29018): dconf-DEBUG: 02:42:43.707: unwatch_fast: "/org/x/apps/statusicon/" (active: 1, establishing: 0)

(xapp-sn-watcher:29018): GLib-GObject-CRITICAL **: 02:42:43.708: g_object_set: assertion 'G_IS_OBJECT (object)' failed

(xapp-sn-watcher:29018): GLib-GIO-CRITICAL **: 02:42:43.708: g_dbus_interface_skeleton_flush: assertion 'G_IS_DBUS_INTERFACE_SKELETON (interface_)' failed

(xapp-sn-watcher:29018): GLib-GObject-WARNING **: 02:42:43.708: invalid (NULL) pointer instance

(xapp-sn-watcher:29018): GLib-GObject-CRITICAL **: 02:42:43.708: g_signal_emit_by_name: assertion 'G_TYPE_CHECK_INSTANCE (instance)' failed

(xapp-sn-watcher:29018): GLib-CRITICAL **: 02:42:43.708: g_hash_table_foreach: assertion 'hash_table != NULL' failed

(xapp-sn-watcher:29018): GLib-GObject-CRITICAL **: 02:42:43.708: g_object_set: assertion 'G_IS_OBJECT (object)' failed

(xapp-sn-watcher:29018): GLib-GIO-CRITICAL **: 02:42:43.708: g_dbus_interface_skeleton_flush: assertion 'G_IS_DBUS_INTERFACE_SKELETON (interface_)' failed
(xapp-sn-watcher:29018): dconf-DEBUG: 02:42:43.708: sync
mtwebster commented 4 years ago

Is the xapp status applet running on a panel (and not the normal tray applet)? One easy way to tell is the icons in the xapp applet highlight when you hover over them. The tray applet icons do not.

mmirg commented 4 years ago

No, the xapp status applet does not appear to be running. I get the old style tray applet icons for those applications that support both (jami, dropbox, nextcloud). When indicators were enabled in 4.4.x I would see different icons for those applications.

I see the XApp Status Applet in the list of applets though and can add it to the panel. If I add it to the panel then xapp-sn-watcher appears to run withotu error but I still don't see icons in the tray (even after restarting Cinnamon).

/usr/libexec/xapps/sn-watcher/xapp-sn-watcher
(process:18393): dconf-DEBUG: 12:02:13.568: unwatch_fast: "/org/x/apps/statusicon/" (active: 0, establishing: 1)
(xapp-sn-watcher:18393): dconf-DEBUG: 12:02:13.573: watch_established: "/org/x/apps/statusicon/" (establishing: 0)
(xapp-sn-watcher:18393): dconf-DEBUG: 12:02:13.578: sync
mtwebster commented 4 years ago

Try logging out and back in after enabling the xapp applet, some programs are unable to switch between styles (such as dropbox).

Can you install the 'd-feet' program, when you open it, choose the 'session bus' and search for org.kde.StatusNotifierWatcher - this should be owned by xapp-sn-watcher.

mmirg commented 4 years ago

After adding the xapp applet, logging out and logging back in I see that org.kde.StatusNotifierWatcher is owned by xapp-sn-watcher. I also saw that my Nextcloud icon changed to the libindicator icon. However, there appears to be some kind of timing issue though insofar as I have signal-desktop and dropbox set to autostart and the icons were missing. If I exit and re-start signal-desktop (and dropbox) then the icon appears. Screenshot from 2020-05-22 13-11-30

This is what I see immediately after restarting:

Screenshot from 2020-05-22 13-16-26

However, there is no icon for signal-desktop or dropbox in the tray.

The Xapp applet also seems to periodically restart at which time only the Nextcloud icon returns. About ten minutes after restarting my signal-desktop, dropbox and riot-desktop icons disappeared again.

Screenshot from 2020-05-22 13-38-05

Screenshot from 2020-05-22 13-39-18

mmirg commented 4 years ago

The culprit causing the XApp applet error appears to be related to hp-systray (part of hplip). As soon as the HP icon appears in the tray area, the other icons (Dropbox, Signal, Riot) disappear. Only Nextcloud appears to survive (it briefly disappears and re-appears.)

Screenshot from 2020-05-31 22-11-11

After hp-systray is hidden: Screenshot from 2020-05-31 22-45-16

Screenshot from 2020-06-01 01-25-58

hplip workaround is available here: https://bugs.launchpad.net/ubuntu/+source/mate-panel/+bug/1810745