9 Amazing Software Mashups - Killer Free Apps that Work Better Together
There are few things we like more than apps that enhance the Windows experience at no cost. In fact, we've already shown you the 32 essential programs that you must download with every clean install of Windows. But while those apps work great on their own, some killer programs and services perform even better when combined with other software. For example, Dropbox excels as a standalone application, but when used in concert with the little-known Mklink command, its potential is exponentially expanded. We call these unions "software mashups" -- the use of two apps for utility that's greater than the sum of their parts. Yes, 1 + 1 can equal 3. And the best part: every program in this feature is free.
Dropbox + Mklink = Cloud Capability for Any App
We have to warn you; there are three reasons that this first mashup is a little weird. For one, it only works on PCs running Windows Vista or 7. Sorry XP users (Although, really, you should give the Windows 7 RC a try if you haven’t yet; we love it). Second, mklink isn’t an app—at least not like the other programs on this list are—it’s a command line command. Finally, this combo isn’t complete by itself; it needs to be combined with a third program to do anything.
That said, this is probably the most powerful combination on the list. We'll explain:
Dropbox is a file syncing app which acts as a folder on your computer. You install the client on as many computers as you want, and any changes you make to the contents of the Dropbox folder are automatically propagated to all computers connected to the same Dropbox account. However, there's more to DropBox than just file syncing—you can also use it to synchronize other programs, sharing configuration files and databases between multiple instances of that same program on different computers.
The only problem with using Dropbox to sync programs is that it only works with apps that allow you to change where those configuration files and databases are stored—a minority of all software. That’s where Mklink comes in.
Mklink
Mklink is a command line command short for “make link.” It’s used to create symbolic or hard links, which allow you to link files and folder. It’s sort of like creating shortcuts, except that they’re handled at the operating system level, so they work with any program. You can, for instance, use mklink to fool Steam into thinking that a game on a different hard drive is actually in your Steam games folder. You can link files on a single computer, or across a local network. You cannot, however, link files across the internet.
To find out all about Mklink, and how to use it, check out our Mklink How-To.
When the two programs are combined, however, the principle drawback of each goes away. Dropbox can now sync any two programs, because with mklink you can change the location of the programs data whether it wants you to or not. With Dropbox, you can take advantage of all of mklink’s potential, even with computers on the other side of the country.
Here's an example of how you can use this combo to cloud-ify your Firefox profile.
1. Find the directory containing your Firefox profile. A default installation places this folder in %APPDATA%\Mozilla\Firefox
2. Copy that Firefox directory into your Dropbox folder.
3. Delete the original Firefox folder.
4. Use Mklink to create a hardlink between the new and original Firefox folders, If your Dropbox folder is in C:/ you can use the following command:
mklink /J %APPDATA%\Mozilla\Firefox C:/dropbox/Firefox
Now any computer that you complete these steps on (and that has access to your dropbox account) will share the same Firefox profile. The same basic steps will work for almost any app.
To read about more programs that work great with Dropbox, check out our article on the subject.
StrokeIt + AutoHotkey = Lightning-Fast PC Interface
Anyone who’s a real expert knows that the fastest way to interact with a program is with the keyboard, with its quick inputs and near-endless possible key combinations. For an illustration of this fact, just watch a professional digital artist use photoshop, or a high-level Starcraft player. In either case, the pro is sure to use hotkeys as much as possible. So why wouldn't you want to control Windows the same way?
There are certainly a number of system-wide hotkeys for Windows, but you would be hard-pressed to fully control your PC from your keyboard using just these. There are hotkeys that do things like cut, copy, minimize windows and take screenshots, but you just don't have the capability to do more advanced things, for instance opening a new Firefox window with tabs for Gmail, Twitter and MaximumPC.com.
That's where AutoHotKey comes in. AutoHotKey is a free app which monitors keystrokes and executes user-defined scripts, allowing you incredibly robust control over your PC.
Did we mention it uses scripts? And ONLY scripts? Yeah. It's not the most user-friendly solution in the world, but it's not hard to learn how to write AutoHotkey scripts, and the payoff is worth it. It's outside the scope of this article to try and really explain how the scripting language works, but we'll provide a couple of example scripts, and explain what they do.
Here's an example of a one-line script:
^#g::Run www.gmail.com
This script simply opens the Gmail website in your default browser when someone presses Ctrl + Win + g. The first part, "^#g::" specifies that the following command be run when Control (^), Win (#), and the g key are pressed at the same time. It should be obvious what the "run www.gmail.com" part does.
But this isn't a very interesting example. To make it a little more complicated, let’s look at how to first minimize all open windows and then open a browser window with two tabs.
^#p::
WinMinimizeAll
Run C:\Program Files\Mozilla Firefox\firefox.exe "http://www.gmail.com" "http://www.maximumpc.com"
return
In the above example, you see how one input can have multiple effects, such as manipulating windows and running a program with command line parameters. For an example of a more advanced script, with variables, conditional branches, subroutines and loops, look here. You can also check out this forum for a list of available scripts.
As you can see, there's a lot that can be accomplished with AutoHotkey, if you're willing to put in a little effort.
StrokeIt is a sophisticated mouse gesture-recognition that can be used to control your computer. A lightweight client runs from the taskbar, which interprets your mouse gestures and binds them to commands.
You can pick from a wide variety of gestures, including standard shapes, letters and numbers, or you can train your own. To train a gesture, you simply draw the gesture as you want it, and the program will ask if you want to save that gesture, or if you were trying to draw something else.
StrokeIt has quite an arsenal of commands that you can bind to gestures, but it can't match the extreme flexibility of AutoHotkey. Fortunately, StrokeIt can be configured to pass keyboard events when mouse gestures are detected. That way, we can have all the gesture-y goodness of StrokeIt, with the no-nonsense scripting engine of AutoHotkey.
To create an action that passes a keyboard event from StrokeIt, simply open the program, then right click on Global Actions, and select New Action. Click on the new action and click Add Gesture to pick the gesture(s) you want to activate it. Then, rename the action to something descriptive, right click on it, and select New Command. Click on the command, and from the pulldown box select Keys - Send Keystrokes. In the box in the lower right corner, enter the keystrokes you want to send. To send a keystroke such as CTRL + WIN + P, you would enter [CTRL_DOWN][WIN_DOWN]p[WIN_UP][CTRL_UP].