gnome-shell-extension-appindicator icon indicating copy to clipboard operation
gnome-shell-extension-appindicator copied to clipboard

3 dots instead of icon in gnome shell 3.36

Open mike2307 opened this issue 5 years ago • 40 comments

After upgrading to Fedora 32, all legacy tray icons show 3 dots instead of the real icon.

In this case, the 3 dots should represent the nextcloud icon: Tray

The same is the case for other legacy tray icons. In my case those are e.g. steam and electron mail.

The used version is gnome-shell-extension-appindicator.noarch 33-1.fc32

mike2307 avatar Apr 26 '20 08:04 mike2307

I'm having the same issue with Chrome/Hangouts indicators after upgrading to Ubuntu 20.04 from 18.04. Interestingly, after I restart the shell, the three dots and the chrome/hangouts appindicators disappear from the top bar entirely. One time the chrome/hangouts icons actually did appear in the top bar but disappeared after the next restart. There appears to be some sort of race condition in the process that converts legacy icons?

emichael avatar Apr 27 '20 18:04 emichael

It looks like the same problem I have. #229 Do you also get the same error messages in journalctl when starting the application?

Nesaijn avatar May 01 '20 09:05 Nesaijn

The same with me, upgrade from pop_os 19.10 to 20.04 and got that.

luizesv avatar May 05 '20 00:05 luizesv

Same here, though the pop-up menu works. On my side, Enpass tray icon works normal, but Teams or Remmina ones appear as three dots. Note that I am not using any tray icon Gnome extension.

naz01101011 avatar May 11 '20 19:05 naz01101011

This should be fixed by gnome-shell 3.36.2, can you confirm?

3v1n0 avatar May 18 '20 16:05 3v1n0

Not for me. I still get these errors when starting ElectronMail and the icon is not shown correctly:

Mai 19 10:19:59 zodd-pc gnome-shell[1176]: JS ERROR: Exception in callback for signal: property-changed: GdkPixbuf.PixbufError: Unrecognized image file format
                                           _updateImage@/home/zodd/.local/share/gnome-shell/extensions/[email protected]/dbusMenu.js:618:49
                                           _onPropertyChanged@/home/zodd/.local/share/gnome-shell/extensions/[email protected]/dbusMenu.js:554:42
                                           _emit@resource:///org/gnome/gjs/modules/core/_signals.js:133:47
                                           property_set@/home/zodd/.local/share/gnome-shell/extensions/[email protected]/dbusMenu.js:125:14
                                           _endRequestProperties/<@/home/zodd/.local/share/gnome-shell/extensions/[email protected]/dbusMenu.js:271:33
                                           _endRequestProperties@/home/zodd/.local/share/gnome-shell/extensions/[email protected]/dbusMenu.js:266:19
                                           asyncCallback@resource:///org/gnome/gjs/modules/core/overrides/Gio.js:132:13

Nesaijn avatar May 19 '20 08:05 Nesaijn

I get the same issue reported by @emichael. I am using Arch Linux where gnome-shell is version 1:3.36.2+7+ge4199c71c-1.

bulletmark avatar May 22 '20 00:05 bulletmark

I'm also having problems with the icons for legacy applications. In my case it was (yes, was - I found a solution) the owncloud icon. The reason for that is not clear to me as I don't know much about the icon theme handling in linux.

My findings: icon_theme.lookup_icon_for_scale returns null for the icon returned from the application (owncloud tries to use state-ok). That is shown in the system logs as [email protected][76875]: ownCloud, Impossible to lookup icon for 'state-ok' . First I thought it would be enough to refactor the panel specification:

                // indicator-application looks up a special "panel" variant, we just replicate that here
                // try to look up the icon in the icon theme
                iconInfo = icon_theme.lookup_icon_for_scale(name + "-panel", size, scale,
                    Gtk.IconLookupFlags.GENERIC_FALLBACK);

                // no panel icon - lets try the "non-panel" variant
                if (iconInfo === null) {
                    iconInfo = icon_theme.lookup_icon_for_scale(name, size, scale,
                      Gtk.IconLookupFlags.GENERIC_FALLBACK);
                }

But that didn't work either. I don't know if it makes sense to look for the original name when the <icon>-panel does not exist.

But I found out that it is working when we just return the name as path - maybe it is then be used as relative path.

tflori avatar May 24 '20 09:05 tflori

On Ubuntu 20.04, Gnome 3.36.2. Am seeing this issue with the Nextcloud desktop client (a Qt application). Mattermost (an Electron app), works fine.

The disappearing icons after renewed login that @emichael mentions seem to be a consequence of #228.

veddox avatar Jun 15 '20 14:06 veddox

For ElectronMail the latest updated solved my issue with its tray icon. https://github.com/vladimiry/ElectronMail/releases/tag/v4.6.0

Nesaijn avatar Jun 16 '20 10:06 Nesaijn

I get the impression we're looking at multiple issues here that all result in the "three-dot icon". My error message is different from the two above and seems to be the consequence of a slow starting Nextcloud client - see my write-up here. I'm not yet sure though whether it's better to fix the issue here or over there.

veddox avatar Jul 23 '20 15:07 veddox

Keepassxc, which also uses Qt, shows three dots as well.

For a different problem they concluded it was a Qt problem. The three dot problem has not been assessed, but Qt may be the culprit in all these cases?

jzazo avatar Jul 23 '20 15:07 jzazo

For a different problem they concluded it was a Qt problem. The three dot problem has not been assessed, but Qt may be the culprit in all these cases?

Well, the thing is, the "three-dot problem" is really only a symptom that can potentially have plenty of very different causes (kind of like a runny nose, really :sneezing_face: :mask: :sweat_smile: )

If you look at the IconActor class in appIndicator.js, you see the following code:

https://github.com/ubuntu/gnome-shell-extension-appindicator/blob/32f2f34ae382a4af850471a131cf9b5e42231ac5/appIndicator.js#L288-L296

Here you see that appindicator sets a default fallback icon (which on my system is located at /usr/share/icons/Adwaita/scalable/status/image-loading-symbolic.svg) - the infamous "three dots". Basically, appindicator initially sets all tray icons to the fallback icon, before changing them to whatever the application wants. This only happens when the ready signal is received in line 321. In short, if there is any error between the first initialisation and the actual setting of the application's systray icon, the symptom is going to be the "three dots".

(If you reread the above thread, you will notice that we do in fact have at least three different error messages we're talking about - one missing icon, one bad file format, and one null pointer exception. Also note that Electron-based apps are having issues too, not only Qt.)

veddox avatar Jul 24 '20 09:07 veddox

I'm seeing it too on ubuntu 20.04.... Sorry can't be more useful just switched to Linux still getting used to everything :) Pressing ALT + f2 and r and enter makes it disappear. (I'm thinking this is the equivalent of killing and restarting explorer on windows or finder on mac ? )

cAstraea avatar Sep 08 '20 10:09 cAstraea

I have the exact same problem with teamviewer, image

loulou921222 avatar Sep 30 '20 22:09 loulou921222

gnome-shell[973]: JS ERROR: Exception in callback for signal: ready: TypeError: this._indicator.id is null
                                            _updateIconClass@/usr/share/gnome-shell/extensions/[email protected]/appIndicator.js:386:34
                                            _init/<@/usr/share/gnome-shell/extensions/[email protected]/appIndicator.js:364:18
                                            _emit@resource:///org/gnome/gjs/modules/core/_signals.js:133:47
                                            _checkIfReady@/usr/share/gnome-shell/extensions/[email protected]/appIndicator.js:118:18
                                            AppIndicators_AppIndicator/<@/usr/share/gnome-shell/extensions/[email protected]/appIndicator.js:81:26

loulou921222 avatar Oct 05 '20 16:10 loulou921222

Have this problem with Steam

R-033 avatar Oct 08 '20 13:10 R-033

Have this problem with Steam

That's interesting, because steam displays for me fine.

loulou921222 avatar Oct 08 '20 14:10 loulou921222

I found what was the cause for me it was a chrome extension. In google chrome it shows the google tray icon but when using chromium it shows that.

cAstraea avatar Oct 08 '20 15:10 cAstraea

It doesn't matter if I reload or relogin, it's always 3 dots for teamviewer and others show up fine

loulou921222 avatar Oct 18 '20 19:10 loulou921222

I see the same: teamviewers indicator has no id. I added a warning message for that:

Okt 19 09:00:22 miracle [email protected][2679]: Indicator has no id: {"busName":":1.380","_uniqueId":":1.380/StatusNotifierItem","_accumuledSignals":{},"_cancellable":{},"_proxy":{"Category":null,"Id":null,"Title":null,"Status":null,"WindowId":null,"IconThemePath":null,"Menu":null,"ItemIsMenu":null,"IconName":null,"IconPixmap":null,"OverlayIconName":null,"OverlayIconPixmap":null,"AttentionIconName":null,"AttentionIconPixmap":null,"AttentionMovieName":null},"_signalConnections":[{"id":1,"name":"destroy","disconnected":false},{"id":2,"name":"destroy","disconnected":false},{"id":3,"name":"destroy","disconnected":false},{"id":4,"name":"icon","disconnected":false},{"id":5,"name":"destroy","disconnected":false},{"id":6,"name":"overlay-icon","disconnected":false},{"id":7,"name":"destroy","disconnected":false},{"id":8,"name":"reset","disconnected":false},{"id":9,"name":"destroy","disconnected":false},{"id":10,"name":"ready","disconnected":false},{"id":11,"name":"destroy","disconnected":false},{"id":12,"name":"ready","disconnected":false},{"id":13,"name":"destroy","disconnected":false},{"id":14,"name":"menu","disconnected":false},{"id":15,"name":"destroy","disconnected":false},{"id":16,"name":"label","disconnected":false},{"id":17,"name":"destroy","disconnected":false},{"id":18,"name":"status","disconnected":false},{"id":19,"name":"destroy","disconnected":false},{"id":20,"name":"reset","disconnected":false},{"id":21,"name":"destroy","disconnected":false},{"id":22,"name":"destroy","disconnected":false}],"_nextConnectionId":23,"isReady":true,"_proxyPropertyList":[]}

tflori avatar Oct 19 '20 07:10 tflori

I've had two sets of three dots show up on mine. One of them (the one on the left) will start Google Hangouts if clicked. The other does nothing. Can confirm the issue disappears with the Alt-F2 r fix.

twbeosl avatar Oct 20 '20 22:10 twbeosl

I have the exact same problem with teamviewer, image

Same here. Only with teamviewer.

TeamViewer[218052]: QDBusMarshaller::appendVariantInternal: Found unknown D-BUS type ''
gnome-shell[961]: JS ERROR: Exception in callback for signal: ready: TypeError: this._indicator.id is null

Arch, gnome shell 3.38.1, extension 3.38

On my desktop on the other hand, same installation as the first, during first boot teamviewer starts with 2 icons, the dots and teamviewer's.

When restarting gnome-shel or teamviewer service only the dots appear after that

Funny...

vageliskatsiotis avatar Nov 28 '20 18:11 vageliskatsiotis

Have this problem with KeyPassXC, Google Hangouts from Chromium extension and one more app. Ubuntu 20.04.1 LTS GNOME 3.36.3 Screenshot from 2020-12-01 13-22-03

gitrequests avatar Dec 01 '20 10:12 gitrequests

A system update today has completely killed the appindicator icons. None of them now show. Ubuntu now v20.04.1 Gnome 3.36.8

rogercreagh avatar Dec 15 '20 22:12 rogercreagh

I can report the same problem as @rogercreagh. In my case, Slack still shows up fine. The Nextcloud client won't appear at all, even after restarting the shell. Looks like the upgrade gnome-shell-extension-appindicator:amd64 (33-1, 33.1-0ubuntu0.20.04.1) was installed yesterday and might be the culprit.

EDIT: Can confirm, downgrading back to 33-1 fixed the issue.

emichael avatar Dec 17 '20 05:12 emichael

It seems that it might be a timing issue as if I disable the apps run on startup and start them manually once everything has settled down then they appear ok.

PS @emichael how do I downgrade the appindicator?

rogercreagh avatar Dec 18 '20 07:12 rogercreagh

@rogercreagh apt install gnome-shell-extension-appindicator=33-1 then apt-mark hold gnome-shell-extension-appindicator to prevent it from upgrading again next time you run apt upgrade.

emichael avatar Dec 18 '20 19:12 emichael

Fabulous, thanks @emichael , that has worked a treat, keypassxc, nextcloud and copyq all now starting on boot and their icons showing again. Hopefully this is a big that'll get fixed in the next release - does it need a new bug report since this one was originally about the 3 dots appearing which seemed to be cleared by a subsequent update (I had the 3 dots problem with nextcloud on on Ubuntu 20.04 machine but not on an ostensibly identical other one - it then cleared itself after about a month.

rogercreagh avatar Dec 18 '20 19:12 rogercreagh

Hi, I also experince the same problem. I am using libappindicator C api for my application and it gives this error:

Apr 24 22:52:47 ubuntu-dev [email protected][1185]: com.github.whatsapp-for-linux.tray, Impossible to lookup icon for 'whatsapp-for-linux-tray-active-panel' in default theme Apr 24 22:52:48 ubuntu-dev [email protected][1185]: unable to update icon for com.github.whatsapp-for-linux.tray Apr 24 22:52:48 ubuntu-dev [email protected][1185]: com.github.whatsapp-for-linux.tray, Impossible to lookup icon for 'whatsapp-for-linux-tray-active-panel' in default theme Apr 24 22:52:48 ubuntu-dev [email protected][1185]: unable to update icon for com.github.whatsapp-for-linux.tray

Event though I am adding custom icons to the default theme as 'whatsapp-for-linux-tray-active and 'whatsapp-for-linux-tray-attention and setting the appindicator's icon to those. However, I don't get why the extension is trying to append a -panel at the end while searching.

xeco23 avatar Apr 24 '21 21:04 xeco23