web-dev-qa-db-fra.com

Dropbox AppIndicator Menu cassé dans gnome-flashback

Le problème

Broken Dropbox Menu as appindicator in gnome-flashback

Ceci est un indicateur Dropbox cassé dans gnome-flashback sur Ubuntu 16.04.1. (Version Dropbox: x86_64-9.4.94)



Working Dropbox Menu in Unity

Comme on peut le voir ici, cela fonctionne bien dans Unity. Mais comment puis-je obtenir que dans gnome-flashback (en tant qu'indicateur)?




La solution de contournement

enter image description here

Quand je force Dropbox à se présenter comme une icône de systray démodée1 le menu devient utilisable.




Questions ouvertes

  • Qu'est-ce qui convainc Dropbox de présenter l'icône de couleur dans gnome-flashback lorsqu'elle s'exécute en tant qu'appindicator? Comme indicateur, il est noir et blanc dans Unity.
  • Puis-je duper Dropbox pour lui faire croire qu'il fonctionne sous Unity? Puis-je forcer le "mode indicateur"?
  • Y a-t-il quelque chose qui cloche dans le code Dropbox qui n'arrive pas à décider correctement entre systray/appindicator? Cette icône de couleur ressemble au résultat de moitié systray, moitié appindicator ...



1 Vous pouvez forcer Dropbox en "mode systray" en exécutant dbus-launch dropbox start ou DBUS_SESSION_BUS_ADDRESS= dropbox start au lieu de le démarrer avec un dropbox start en clair.

11
Robert Siemer

Puis-je duper Dropbox pour lui faire croire qu'il fonctionne sous Unity? Puis-je forcer le "mode indicateur"?

Oui, vous pouvez! Les expériences ont montré que Dropbox (ou les recherches associées) cherche la variable d’environnement XDG_CURRENT_DESKTOP, une norme de freedesktop.org reflétant le nom de l’environnement de bureau utilisé. Réglez-le sur Unity et Dropbox devient sain d'esprit. (J'ai essayé d'autres valeurs sensibles, mais les résultats étaient pires.)

Il y aura plusieurs façons de planter cette variable sur Dropbox. J'ai choisi d'éditer le script d'interface de ligne de commande /usr/bin/dropbox à partir du package nautilus-dropbox pour toujours écraser cette variable. Ajoutez cette ligne après les importations. Cela fonctionnera également pour "Démarrer Dropbox au démarrage du système":

os.environ['XDG_CURRENT_DESKTOP'] = 'Unity'
9
Robert Siemer