How can I sync all my Desktop files to Dropbox, so that my desktop still feels, looks and works like a normal Desktop?
Using Folder Actions
This will – whenever you add a new file – synchronize your Desktop with a Dropbox folder of your choice. First, create the Dropbox folder where you want your desktop files to stay, e.g.
Then, open up Automator.app and create a new Folder Action. On the top, select your real Desktop.
To the Automator action, add a Run Shell Script action from the left pane. Paste the following.
Save the action.
Now, this will run by default, and whenever an item is added to your Desktop, it will be mirrored with the Dropbox. If you delete an item from your Desktop, there will be no changes, so you have to add something (e.g. create a new folder and delete it right away) to force a sync.
If you ever want to disable it, right-click your Desktop icon from Finder, and select Services » Folder Action Setup. Here, uncheck your Desktop.
I prefer the symlink method, but when setting up additional Mac's to share the sync, it can get tricky.
First, I have a folder in Dropbox dedicated to "osx sync" ... e.g.:
By moving the files within the Dropbox folder, Dropbox quickly syncs and file change history remains intact.
Since you want the content from your Desktop in Dropbox, I recommend first moving the content on your Desktop to Dropbox. You can put your Desktop anywhere in Dropbox, but I recommend directly as Dropbox/Desktop. I'll assume for now that you have Dropbox installed as ~/Dropbox and your Desktop as ~/Desktop. So to move the files:
Next, you want to create a symlink so that ~/Desktop redirects to ~/Dropbox/Desktop. However, you can't do that while there's an existing Folder at ~/Desktop, so you'll want to remove it.
Before you do that, though, if this machine is the first Mac on which you've synchronized the Desktop, you'll probably want to retain the Folder icon for the Desktop. The only way I know to do that is to copy it to the clipboard using Finder. Open Finder and navigate to your home directory, select the Desktop, and then Get Info on it (⌘I). Select the folder icon in the upper left and copy it to the clipboard (⌘C). Next, restore the icon for the Desktop folder by navigating to your Dropbox/Desktop folder in Finder, invoking Get Info on it, selecting the icon in the upper right, and pasting the icon that you copied earlier (⌘V).
Now you're ready to remove the old Desktop folder.
Then, create the symbolic link so that the Desktop is available from both locations:
The above technique should work on the first machine, but also subsequent machines, even if the new machines already have content on the Desktop (which gets merged with the cloud-hosted copy). It saves storage and minimizes synchronicity issues by only keeping one copy of the content on the disk.
Finally, I've observed that this technique causes the Desktop to be lost from the Sidebar / Favorites. Restore the shortcut in the Favorites by navigating in Finder to the Dropbox and dragging the Desktop to the Sidebar. Note that the icon for the Desktop in the Sidebar will be replaced by a generic Folder icon. I do not yet know a way to restore that icon (and it may not be possible).
I welcome any suggestions on improving this technique - specifically how to invoke all the actions through the command line or retaining the icon in the Sidebar.
This technique seems to work for other special folders too (Downloads, Documents, etc).