93

A few hours ago the dropbox icon in Xubuntu 14.04 stopped working. The icon is black with a red slashed zero. I cannot click on it to bring up the dropbox menu. I believe there was an update right before this happened. I reinstalled then purged dropbox. I even deleted all associated files and hidden folders and after I installed it again. Still, the icon is not working. Tried to stop and start the service... again nothing.

9
  • You can always downgrade Dropbox. I am on 3.12.5 and have no icon issues. I hope Dropbox will not auto-update it soon. However, there is a way to block this also. forums.linuxmint.com/… dl-web.dropbox.com/u/17/dropbox-lnx.x86_64-3.12.5.tar.gz
    – jbrock
    Feb 13, 2016 at 15:41
  • 5
    I have reported this bug with all necessary details to Dropbox. I had a similar issue before with Linux Mint. They held off on upgrading my Dropbox until the version with a bug fix. I am a paid user, and they state that I should receive a response within 24-48 hours. If they reply with key information, I'll be sure to post here.
    – jbrock
    Feb 13, 2016 at 16:34
  • You may be able to downgrade without first uninstalling. This might avoid a complete re-index of all Dropbox files. It may fix the icon issue until the bug is fixed and then they push out that update.
    – jbrock
    Feb 13, 2016 at 16:37
  • How can we do that, @jbrock?
    – marktani
    Feb 14, 2016 at 10:24
  • 1
    This bug re-appears on Ubuntu 17.10 and none of below work Sep 13, 2017 at 0:56

11 Answers 11

96

Just got this bug on my Xubuntu 15.10, broken icon and no way to open the menu. I think the bug is connected to Dropbox starting to use "indicator area" for their tray icon instead of "notification area" and the sudo-fix just happens to work because of some environment variables are not in use with sudo sessions.

At least for me this problem can be fixed by running:

dropbox stop && DBUS_SESSION_BUS_ADDRESS="" dropbox start

This seems to move the icon back to "notification area" which fixes both icon and menu. This way the daemon runs as a normal user and not as root.

EDIT: If you create your own startup script for Dropbox based on this fix, remember to disable the default startup script with "dropbox autostart n" command (Thank StockBreak for this one, saved me some time this morning).

EDIT2: ...and for some reason I still had to remove the autostart setting from Dropbox GUI (click icon >> Preferences >> Start Dropbox on system startup). Hope it stays off after this one.

EDIT: To implement this fix in a script that run every time session starts, try this solution: https://askubuntu.com/a/795864/496493

8
  • This kk78's workaround also works for me, giving the tray icon for normal user. I've not tried StockBreak's desktop entry for this but probably works as well. Instead, I'm using the #!/bin/bash line and kk78's line as a simple shell script in a "dropboxicon.sh" text file with the executable property, and right click > Actions > Run In Konsole, until the bug is fixed. This workaround works well. Thank you. Feb 18, 2016 at 20:53
  • Xubuntu 14.04 64bit LTS - confirmed same exact problem, confirmed above work-a-round does the trick (all be it temporarily).
    – demaniak
    Feb 24, 2016 at 18:49
  • Had the same problem in Kubuntu 14.04 and also here it solved the issue! Apr 22, 2016 at 7:31
  • Worked also for 16.04 eventually, but I had to install and add another indicator-applet to the panel (aside to the already available and present indicator-applet-complete), otherwise the dropbox icon simply didn't appear. This on a new installation of Ubuntu 16.04 x86 (on a very old Toshiba laptop), running a gnome-fallback session with metacity.
    – Avio
    Aug 14, 2016 at 13:17
  • 2
    On 17.04 you might try the "new workaround" below i.e. dropbox stop && dbus-launch dropbox start. I've been using it on my laptop (currently Xubuntu 17.04) and haven't had problems. It would be really nice if Dropbox fixed this...
    – kk78
    May 31, 2017 at 14:35
83

A new workaround, proposed by File C., is "dbus-launch dropbox start -i".

The following adaptations are reported by users to work at least on the Linux distributions Fedora, Gentoo, Kubuntu, Linux Mint, openSUSE, Slackware, Ubuntu, Xubuntu... and the desktop environments Cinnamon, KDE 4, KDE 5, Mate, Unity, Xfce...

This new dbus-launch workaround seems to work a little faster, with more reliability, and in more cases than the previous DBUS_SESSION_BUS_ADDRESS workaround.

As command line:

dropbox stop && dbus-launch dropbox start

Or as a shell script file:

#!/bin/bash

dropbox stop && dbus-launch dropbox start
16
  • 16
    The command line command works great but only works for that session. To make the fix permanent, one should, after running this command, go to the Dropbox indicator > Preferences... > uncheck Start Dropbox on system startup. Then add dbus-launch dropbox start to Session and Startup > Application Autostart. This works perfectly for me on Xubuntu 16.04 LTS.
    – Ads20000
    Apr 26, 2016 at 12:06
  • 3
    This was the only way for me to get it to work in Ubuntu Mint xenial 16.04 LTS.
    – allebone
    May 13, 2016 at 12:34
  • 3
    Annoyingly I can't edit my comment. The application autostart command perhaps should be dbus-launch dropbox start -i (this works on Ubuntu (GNOME) Flashback 16.10, idk whether it works on Xubuntu as well)
    – Ads20000
    May 18, 2016 at 10:22
  • 3
    This works in lubuntu 16.4
    – jumpnett
    Jun 29, 2016 at 22:29
  • 2
    The DBUS_SESSION_BUS_ADDRESS="" solution did nothing for me, but this one worked! Running Linux Mint 17.3.
    – Sampo
    Jul 19, 2016 at 8:03
21

Thanks to kk78's solution I made this complete workaround (see also my other post):

I copied* my desktop entry:

cp ~/.config/autostart/dropbox.desktop ~/.config/autostart/start_dropbox.desktop

Changed the entry like this (please notice the env word):

[Desktop Entry]
Name=Dropbox
GenericName=File Synchronizer
Comment=Sync your files across computers and to the web
#Exec=dropbox start -i
Exec=env DBUS_SESSION_BUS_ADDRESS="" dropbox start -i
Terminal=false
Type=Application
Icon=dropbox
Categories=Network;FileTransfer;
StartupNotify=false

And disabled Dropbox's autostart:

dropbox autostart n

* you cannot just edit it because Dropbox replaces the file every time you log in.

2
  • 1
    This did it for me, though for clarification: you edit the start_dropbox.desktop file (with mousepad or whatever)
    – dez93_2000
    Mar 29, 2016 at 14:44
  • another note: in menulibre (or your menu system) you need to change the command entry from "dropbox start -i" to "env DBUS_SESSION_BUS_ADDRESS="" dropbox start -i" so the right one runs when initiated from the menu.
    – dez93_2000
    Apr 6, 2016 at 16:14
8

[This is my deprecated early answer, now kept to research this and related bugs; for newer and better workarounds, without the file ownership change/recovery inconvenience of sudo, see kk78's answer instead, or the command line "dropbox stop && dbus-launch dropbox start" in another answer]

This Dropbox tray icon bug seems to be related to permissions.

Until it gets fixed, a temporary workaround from the command line (Konsole, Terminal, etc.), which is working these days for users of Xubuntu, Linux Mint, etc.:

dropbox stop
sudo dropbox start

Note:

About the "sudo", running Dropbox as root overcomes the permission bug, and the tray icon works again correctly.

However, it has the small secondary effect of having a few files in the hidden folder ~/.dropbox/ owned by root now instead of the user (as you can see with e.g. a file manager such as Dolphin), and therefore the root password is requested when starting Dropbox.

This is ok as a temporary workaround to get the Dropbox tray icon fully working on Linux until the bug is hopefully fixed by a next update, but if the fix doesn't restore the correct permissions, in that hypothetical case a quick solution after the bug fix will be:

sudo dropbox stop
sudo chown -R USER:GROUP /home/USER/.dropbox
dropbox start

Of course, replacing USER and GROUP. For example, if you are co-creator of Unix, UTF-8, Go language, etc. ;) it would be something like:

sudo chown -R ken:ken /home/ken/.dropbox

Update:

Sorry, I've just seen something that makes this temporary workaround still workable but less convenient: Not only those few already mentioned files in the hidden ~/.dropbox folder get owned by root, also the files downloaded from the Dropbox servers to the Dropbox folder (usually ~/Dropbox) on the computer running Dropbox as root.

So, I'm still using this workaround until the bug fix, but if we want to use it we have to apply the permissions recovery line also to the Dropbox folder, at least when we want to edit our downloaded documents. For example:

sudo chown -R USER:GROUP /home/USER/Dropbox

To save time, and to apply it when we start the computer, we can include it in a simple shell script, e.g. a dropbox.sh text file with the executable property, that we can run from the command line or by mouse click:

#!/bin/bash

dropbox stop
sudo dropbox start
sudo chown -R USER:GROUP /home/USER/Dropbox

Simple alternative workaround:

Instead of all the previous procedures, if dealing with file ownership changes and recoveries, etc. is too inconvenient, the simplest alternative is probably to just wait for the Dropbox bug fix without using the icon, and simply check the Dropbox status from time to time using the command line:

dropbox status

The result, if Dropbox is running, most of the time will be: "Up to date".

Later, probably you can use the up arrow to quickly run this line again from a small command line window that you can keep open.

See additional command line help by just typing:

dropbox

As already suggested, to stop using the other workaround (sudo), recover normal file ownership, and start running Dropbox again as normal user instead of root, use just one time (replacing USER and GROUP):

sudo dropbox stop
sudo chown -R USER:GROUP /home/USER/Dropbox
sudo chown -R USER:GROUP /home/USER/.dropbox
sudo chown -R USER:GROUP /home/USER/.dbus
dropbox start

New update:

See kk78's answer to this question, with a much better workaround than mine, and with Dropbox tray icon as normal user, not root. It works at least for Xubuntu and Linux Mint.

It can also be used as a shell script:

#!/bin/bash

dropbox stop && DBUS_SESSION_BUS_ADDRESS="" dropbox start
4
  • 3
    This workaround DOES work in my Xubuntu 14.04 64. Everybody please notice the "sudo". Thank you Juan M. Gonzalez
    – user505080
    Feb 15, 2016 at 17:13
  • However we have to remember that my suggestion of running as root just for these days is a really temporary workaround, and the real solution should come from a quick bug fix by Dropbox. Feb 15, 2016 at 22:00
  • In practice, I'm finding that the simple "dropbox status" workaround without icon is better and more convenient than the other "sudo dropbox start" workaround with icon. Feb 17, 2016 at 9:13
  • New: See kk78's answer, with a much better workaround than mine. Feb 18, 2016 at 21:04
3

I modified the ~/.dropbox-dist/dropboxd script as follows and rebooted and got the icon back.  Since this file gets overwritten by updates I think I won't have to undo anything if they fix the problem on the next update.

#!/bin/sh
export DBUS_SESSION_BUS_ADDRESS=""
PAR=$(dirname "$(readlink -f "$0")")
exec "$PAR/dropbox-lnx.x86-3.14.7/dropboxd" "$@"

Update: When I tried this on my laptop it didn't work at first. I realized I was having the same problem I had with 'Copy' where the XFCE4 session saving was starting dropbox before the official startup file was executed. I modified my ~/.profile file to erase any *.state and *session* files in ~./cache/sessions

rm -f /home/jhm/.cache/sessions/*.state
rm -f /home/jhm/.cache/sessions/*session*

Update #2: So now using version 3.18.1 the problem is still there. I know because , as I predicted, the ~/.dropbox-dist/dropboxd script was overwritten with every update causing the problem to return each time. The fix above works reliably on Xubuntu 14.04 boot provided session restoring does not directly launch the binary:

/home/<user>/.dropbox-dist/dropbox-lnx.x86-3.18.1/dropbox

Using "System/Session and Startup", under the "Session" tab I can see that the binary is visible and would be restarted if I didn't delete the *session and *state files.

As an experiment, I tried using Upstart to launch Dropbox before session tracking started. First I created the /home/jhm/.init folder, then a file called dropbox.conf was added to it containing:

description "Dropbox"
start on desktop-start
expect daemon
exec /usr/bin/dropbox start

I use this method on my Dell Laptop Xubuntu 14.04, and the program is now hidden from session tracking, so I don't need to delete files.

Since dbus-launch creates a new private DBUS session bus, DropBox will never find the appindicator service as it will be the only process on that bus (other than DBUS), so thats about the same as export DBUS_SESSION_BUS_ADDRESS="" Both solutions cause DropBox to fallback to the system tray API. This is called a 'Notification Area' in XFCE Panel Items tab. Be sure it hasn't been removed from the panel.

Using d-feet and dbus-monitor, I found the problem was DropBox failing to implement the 'Menu' interfaces on the non-existant '/MenuBar' DBUS path. DBUS fans can explore org.kde.StatusNotifierWatcher with d-feet to find out more. Since the dropbox binary is responsible for supporting those interfaces, there is nothing to do but wait for the next update. BTW, all needed QT5.5 libs are included with the program. No need to download development packages.

I also found that only the GUI dialog seem to reliably keep the startup file from reinstalling. Once 'Start DropBox on system startup' was unchecked, it stayed that way.

7
  • 1
    The above workaround worked for me on all my machines. Thank you. Feb 23, 2016 at 14:07
  • Here's a one-liner for this fix: sed -i.bak '/#!\/bin\/sh/a export DBUS_SESSION_BUS_ADDRESS=""' ~/.dropbox-dist/dropboxd; dropbox stop && dropbox start
    – bmaupin
    Feb 27, 2016 at 11:46
  • I guess this could be applied in Xubuntu 16.04, too, but it uses systemd instead of upstart by default.
    – jarno
    Oct 4, 2016 at 6:10
  • See my answer. For my surprise, the init script worked in Xubuntu 16.04, too, even if it uses systemd instead of upstart.
    – jarno
    Oct 4, 2016 at 12:35
  • I read somewhere that upstart would still be used for user mode services after systemd was rolled out, which would explain why the script still works. The list of services is in /usr/share/upstart/sessions
    – user411778
    Oct 6, 2016 at 23:39
3

Instead of staying on an older version or fiddling with other aspects, I have decided to use this script instead of the little icon. It puts the output from the command dropbox status directly in your panel. However, when it is syncing or up to date there is a little check mark or syncing character.

Install the Generic Monitor by pasting the following in terminal:

sudo apt-get install xfce4-genmon-plugin

Set the following script to run using the Generic Monitor panel plugin. I went without a Label and set it to run every five seconds.

#!/bin/bash

status=$(dropbox status)
if [ "$status" = "Up to date" ]; then
    echo "✔"
elif [[ "$status" == "Syncing"* ]] || [[ "$status" == "Indexing"* ]]  || [[ "$status" == "Downloading"* ]]; then
    echo "⟲"
else
    echo "$status"
fi

You'll need to run the following so it does not show a password prompt (which can be disregarded anyways) on login:

sudo chown -R USER:GROUP ~/.dropbox

USER:GROUP is normally just your username twice.

When I need to change a setting I will just launch Dropbox with sudo to change my settings. As documented on this page launching with sudo enables the little icon and menu to appear.

Additionally you can echo out your own Dropbox icon or image if you prefer that. If your Dropbox command line is not working, you can download the Dropbox python script here. (In my case I am not using the *.py extension for the Dropbox python script name.)

6
  • Quite cool, never knew I could do this! Useful for lots of other things. Cheers.
    – Bruce
    Feb 19, 2016 at 22:57
  • Very cool! Thanks for sharing this. I didn't know about the Generic Monitor.
    – user41313
    Mar 11, 2016 at 0:28
  • Why bash -c and not just dropbox status?
    – jarno
    Oct 4, 2016 at 5:31
  • Do you still have the red icon displayed in panel?
    – jarno
    Oct 4, 2016 at 7:06
  • @jarno I have a faint memory that initially it did not work by only putting $(dropbox status). However, for some reason $(bash -c 'dropbox status') did work. Using $(dropbox status) now works so I've updated my script accordingly. Thanks for letting me know.
    – jbrock
    Oct 4, 2016 at 17:28
2

I run the same OS, Xubuntu 14.04 x64, and am seeing this icon which is unresponsive to clicks (no menu):

Dropbox icon on Xfce4-Panel

Release notes for 3.14.5 (which arrived as of 9 Feb 2016 and was installed on my machine) state that Dropbox has been updated to use Qt 5.5 on Linux.

Running the following gives the Qt version on my machine:

~$ qmake -v
QMake version 3.0
Using Qt version 5.2.1 in /usr/lib/x86_64-linux-gnu

So, I upgraded to Qt 5.5 using the instructions from here.

These are the steps I took:

sudo apt-add-repository ppa:beineri/opt-qt551-trusty
sudo apt-get update
sudo apt-get install qt-latest qtcreator-latest

I then set the following in ~/.bashrc and restarted the session:

export QT_SELECT=opt-qt55

I verified I have Qt 5.5 now installed:

~$ qmake -v
QMake version 3.0
Using Qt version 5.5.1 in /opt/qt55/lib

Then, reinstall Dropbox and restart your session:

sudo apt-get remove dropbox
sudo apt-get install nautilus-dropbox

Unfortunately, this didn't work, and the tray icon appeared the same.

Then, I wondered if removing the Indicator Plugin from the Xfce4-panel would work.

  1. Remove Indicator Plugin
  2. ~? dropbox stop && dropbox start

Then, suddenly, a wild dropbox icon appears in the Notification Panel!

Dropbox icon appears

It seems that the Dropbox icon likes residing in the Notification Panel, but not the Indicator Plugin.

But... I like the Indicator Plugin, as it gives me email alerts and volume level control. So, I re-added it to the panel. So far, so good.

But, after re-starting the session, I get this bullshit again:

Dropbox icon on Xfce4-Panel

So, now I'm stuck. I don't know how to make the Dropbox icon appear in the Notification Panel instead of the Indicator Panel, and I'm sure has hell not going to repeat these steps every time I log in!

3
  • 1
    As you said, "It seems that the Dropbox icon likes residing in the Notification Panel, but not the Indicator Plugin." I think you were in the right track, as kk78's workaround shows. Feb 18, 2016 at 22:31
  • 1
    Removing the indicator plugin was key for me -- just running dropbox start with DBUS_SESSION_BUS_ADDRESS="" was insufficient to get dropbox out of the indicator plugin.
    – BSchlinker
    Feb 21, 2016 at 20:08
  • @BSchlinker maybe dropbox was running already before you tried to launch it with DBUS_SESSION_BUS_ADDRESS=""?
    – jarno
    Oct 4, 2016 at 6:13
2

This fixes it.

On the Dropbox menu go to Preferences. Deselect "Start Dropbox on system startup"

Go to Session and Startup > Application Autostart and add the following startup item:

bash -c 'export DBUS_SESSION_BUS_ADDRESS="" && dropbox start -i'
3
  • Simpler: env DBUS_SESSION_BUS_ADDRESS="" dropbox start -i
    – user41313
    Mar 11, 2016 at 0:33
  • 1
    @blujay or even DBUS_SESSION_BUS_ADDRESS= dropbox start -i. But some people report dbus-launch dropbox start -i works better.
    – jarno
    Oct 4, 2016 at 5:35
  • @jarno Not everyone uses a Bash-style shell. For example, I use Fish as my interactive shell, and variables are not set with the name=value syntax, so it's necessary to use env. Using env works everywhere.
    – user41313
    Oct 8, 2016 at 3:07
0

(tested on xbuntu 17.04)

To restart dropbox with the correct tray icon: dropbox stop && dbus-launch dropbox start

Dropbox replaces the autostart file ~/.config/autostart/dropbox.desktop on startup with /usr/share/applications/dropbox.desktop. To make the fix permanent, modify the latter:

sudo sed -i 's/Exec=dropbox start -i/Exec=dbus-launch dropbox start -i/' /usr/share/applications/dropbox.desktop

You may also want to modify the Main menu launcher:

sed 's/Exec=dropbox start -i/Exec=dbus-launch dropbox start -i/' ~/.local/share/applications/dropbox.desktop
0

This isn't an answer per se but given we're a sizeable enough community: HERE's the direct link to the dropbox email customer support page. If we all ask them about this maybe they'll fix it themselves.

0

Since my dropbox is a startup application search Dash for Startup Application then hit Edit on Dropobox entry and replace

old

dropbox start -i

new

env XDG_CURRENT_DESKTOP=Unity dropbox start -i

to engage issue : alt-F2 then type in r hit enter

This works for Ubuntu 18.10 and above

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .