Saturday, March 22, 2014

Listary, Directory Opus and AutoHotkey - a match made in Geek Heaven

Listary is a very good tool for finding files fast. It indexes all drives on your machine and integrates into Windows Explorer or Directory Opus (my explorer of choice) so that when you start typing any file name, it will straight away show you all matches, highlighting the ones in your current directory.

You can also set a hotkey to summon a Listary toolbar if you are not in a file explorer to do the same thing - search for files. What is so cool about this is that once you find the file you want, press the right arrow key and you have the context menu displayed, so you can choose to open the file, do an SVN update or whatever - without having to go to your explorer program. There are other options added too - like copying the path of the file/directory to clipboard.

The free and pro versions are the same download - and you can access many of the pro features while using it for free (with a not very intrusive nag dialog). However, the pro version is well and truly worth it: $20 for lifetime upgrades.

As I mentioned, Directory Opus is my file explorer tool of choice, and I will often use the Listary toolbar to find and go to a directory when Directory Opus is open but not in focus (i.e. not the top window). So I might be writing in UltraEdit and want to look at files in D:\Temp, so I summon the Listary toolbar, type Temp and press enter on the correct entry. By default, Listary will open that directory in Directory Opus, but if Directory Opus was opened but not in focus, it won't manage to bring Directory Opus to the front (because in Directory Opus that is two commands - one to open a directory and one to bring Directory Opus to top).

So, a small fix is needed in this situation - Autohotkey script containing those two commands. Create an Autohotkey script:

Run c:\Program Files\GPSoftware\Directory Opus\dopusrt.exe /cmd Go "%1%"
Run c:\Program Files\GPSoftware\Directory Opus\dopusrt.exe /cmd Go LASTACTIVELISTER

Then open Listary Options > General tab and under Default File Manager, set Path to be the path to your AHK script (D:\Documents\apps\AHK\openDirectoryInDirectoryOpus.ahk in my case) and Parameter to %1. See the below screenshot.

Also, turn on Fuzzy Matching - that allows you type out non-contiguous parts of the file/directory name.