SOLVED: Sharing TweetDeck settings across multiple Windows and Linux machines
Tags: Adobe, dropbox, servers, sync, TweetDeck, VMware
I’ve been using TweetDeck for quite some time on Linux, after I managed to get getting Twhirl working on Linux under 64-bit Adobe Air.
TweetDeck is a lovely app, graceful and very useful. It has its minor visual and UI bugs, but it’s the best I’ve seen out of the other hundreds of Twitter apps out there… and it’s 100% free.
I have 3 laptops I use on a regular basis running both Windows and Linux. I’m not always on the Linux laptop, but I wanted to make sure that my TweetDeck settings on my Windows laptops were identical to the ones on my Linux laptop, including all of my searches, columns and other settings. I plug one of my Windows laptops into my television, so I can use the larger screen as my monitor (see below).
I wanted the integration between my machines to be relatively real-time and 100% seamless, without duplicating everything on each machine or having to copy files around and without having to stop/restart TweetDeck on all machines to refresh those settings; that would be tedious and painful.
So I found a way to share my settings between all of my systems using two tools: Dropbox, and Junction.
“Dropbox is a Web-based file hosting service operated by Dropbox, Inc. which uses cloud computing to enable users to store and share files and folders with others across the Internet using file synchronization. It was founded in 2007 by MIT graduates Drew Houston and Arash Ferdowsi as a Y Combinator startup.”
I use Dropbox for holding and sharing some of my other data as well, including putting TrueCrypt volumes in my Dropbox share, so I can keep secure data there that even the Dropbox admins or others that may be compelled to reveal the data on the servers hosting Dropbox can’t open. I have nothing to hide, but there’s no reason for anyone to look at my personal data either.
Dropbox has great security though, so I’m not too worried about that and the pricing is very reasonable.
The first thing I did was install Dropbox on my Linux and Windows machines, configuring the appropriate folders and access/permissions so that files put into the Dropbox folder there, would appear on the Linux Dropbox folder on my Linux machines. I initially installed Dropbox on each machine, including my Windows virtual machines (I later discarded that latter bit, I’ll explain why further down).
On Linux, the default is to put the Dropbox folder in ~/Dropbox/
($HOME/Dropbox
). My $HOME
is on an encrypted volume also, so the data is secured on-disk, as well as server-side on Dropbox’s servers.
On Windows, the path where that is stored by default is “%HOMEPATH%\My Documents\My Dropbox
” (on my machine, that’s C:\Users\Me\Documents\My Dropbox
). Anything I put in here, is replicated to the various Dropbox folders on my other machines on the LAN.
So far, that part worked great… now let’s get TweetDeck’s settings synchronized automatically between all of these machines and test that it works!
On Windows, you’ll need to use “Junction” (from Sysinternals) to emulate “symlink” like functionality there. From the Junction website:
“Directory symbolic links are known as NTFS junctions in Windows. Unfortunately, Windows comes with no tools for creating junctions—you have to purchase the Win2K Resource Kit, which comes with the linkd program for creating junctions. I therefore decided to write my own junction-creating tool: Junction. Junction not only allows you to create NTFS junctions, it allows you to see if files or directories are actually reparse points. Reparse points are the mechanism on which NTFS junctions are based, and they are used by Windows’ Remote Storage Service (RSS), as well as volume mount points.”
Unzip the Junction zipfile, and copy Junction.exe
to C:\Windows
, and then do the following (the order and details are VERY important here):
- Move, do not copy your “Local Store” folder from “
%HOMEPATH%\AppData\Roaming\TweetDeckFast.[long string here]\
” to some other location as a backup. This should leave NOTHING inside this “TweetDeckFast.[long string here]
” directory. - Create a directory inside your Dropbox folder called “TweetDeck”. This will immediately be sync’d to your other Dropbox folders on any other machines you have connected.
- Run
junction.exe
as follows (junction command is run all on one long line).Note the order here!:
You want junction -s {dir_you_want} {dir_you_have}
C:\Windows\junction.exe -s C:\Users\Me\AppData\Roaming\TweetDeckFast.FFF259DC0CE2657847BBB4AFF0E62062EFC.1\ "C:\Users\Me\My Documents\My Dropbox\TweetDeck\Local Store" Junction v1.05 - Windows junction creator and reparse point viewer Copyright (C) 2000-2007 Mark Russinovich Systems Internals - http://www.sysinternals.com Created: C:\Users\Me\My Documents\My Dropbox\TweetDeck\Local Store Targetted at: C:\Users\Me\AppData\Roaming\TweetDeckFast.FFF259DC0CE2657847BBB4AFF0E62062EFC.1\
- This will now “link” the two locations together, placing a new “Local Store” folder inside the “
%HOMEPATH%\AppData\Roaming\TweeDeckFast
” directory. - Now you need to decide if your Linux machine is the one with the data you want to copy around, or if your Windows machine is. In my case, my Linux machine has the configuration and data I want replicated to my Windows machines, so I did the following:
ln -s ~/.appdata/TweetDeckFast.FFF259DC0CE2657847BBB4AFF0E62062EFC56543.1/Local\ Store \ ~/Dropbox/TweetDeck/
At this point, every time I add a new column or search on TweetDeck on my Linux machine, those changes are automatically propagated to the Windows machine’s TweetDeck preferences directory, so the Windows machines will use it by default.
Perfect!
Now, since I had Dropbox installed in each of my machines, physical and virtual, I wanted to optimize it a bit further, because I was transferring a lot of data between machines, not just TweetDeck settings.
Since I had Dropbox installed and running on my Linux host (my primary machines are all Linux). This machine runs VMware Workstation, running several Windows virtual machines.
It was overkill to have Dropbox replicate the data to the Linux host, and then again to the Windows guest. Not only does that consume a lot more space inside the VM that would take up disk space on the host, but it eats a lot of LAN bandwidth, unnecessarily.
Instead, I created a “Shared Folder” (a VMware concept) inside the VM instance, which points to my $HOME/Dropbox
folder on the host. Now when data hits the Dropbox folder on the Linux host, my Windows guest sees it as well.
This lets me use the Dropbox folder as an “immediate fileshare” for files and software that I use on each machine. The first means I used this for was installing Service Packs onto all of my Windows machines, so they would all be updated simultaneously, without having to download 300-600M of data across my LAN, to each host.
I also store my Outlook data in the Dropbox folder, and I cna access the same data inside and outside the VM instances, from my physical metal Windows machines, and back up the data outside of the guests themselves. Since I’m using rsnapshot to back up all of my Windows and Linux machines, I can do this without negatively impacting the running Windows machines.
I strongly suggest supporting Dropbox, so their services and support do not go away. They provide a powerful tool, and thousands of people use it. If you do, and you like what they’re doing, support them. The last thing we’d want is for them to fold, because they ran out of funds to support their efforts.
I’d welcome any comments or ideas to optimizing this further.
AnxiousNut said on May 29th, 2011 at 7:00 am quote
Ah, yes. I used to do the same with some of my Firefox config files on my linux machines. Very useful.