TagLists is a small application for OS X that allows you to quickly see which files you've tagged with particular tags. Here are two screenshots:
It uses the OpenMeta tagging system, which means that it finds files that have been tagged with any of the applications that support OpenMeta.
Regular tag searches
Regular tag searches (i.e. when the "advanced mode" checkbox is not selected) will simply find you all the files that are each tagged with all of the tags that you specify. For example, if you need to match files that have the tags work and todo, you would simply type in both of these tags:
Advanced mode tag searches
By checking the "advanced mode" checkbox when editing tag searches, you can use arbitrary boolean expressions in the search query. The following operators are available:
The and operator && specifies that both of its operands must be true (example: work && personal matches only files that have both of these tags)
The or operator || specifies that one or both of its operands must be true (example: work || personal matches only files that have the work tag, the personal tag, or both of them)
The not operator ! negates whatever comes after it (example: work && !personal matches files that have the work tag and that don't have the personal tag)
Parentheses() group things together (example: in !(todo || toread) the negation affects the whole subexpression inside the parentheses)
If you need to match tags that contain any of the characters used in the above boolean operators (or a backslash), you'll need to escape these characters with a backslash. So for example, if you need to match files that have the tags back\slash and bonnie&clyde, the query would look like this: back\\slash && bonnie\&clyde
Here's an example in a few screenshots:
Known Issues
There's no documentation on how to use it yet (I'll get around to it at some point but in the meanwhile the app should be pretty simple to figure out, hopefully)
There is no proper undo/redo support yet for all actions
There are all kinds of minor bugs on Leopard (these are not exhibited on Snow Leopard):
Clicking on the "Reveal in Finder" icon doesn't work if the clicked file is already selected when clicking
When resizing the window, the list is redrawn only when one lets go of the mouse button
When scrolling the 'row height' slider, the text in the list (filenames etc.) wobbles in a funny way
Source code is available in a Git repository (click here to show/hide):
Searching network drives has been fixed. (Note that I haven't been able to test this myself so thanks goes to Christoph Freitag for testing this build and reporting that it works.)
Disabled the "Remove tag(s)" context menu item for files under an advanced tags search (it's too difficult to implement this feature for arbitrary boolean expression -based tag searches and even if it were implemented, it would arguably not be quite clear to end users which tags would be removed in the end).
Support for arbitrary boolean expressions in tag searches has been added: you can now select the 'advanced mode' when adding or editing tag searches and type in queries that contain boolean expressions such as: todo && (work || school) && !personal
The Quick Look Thumbnails are now generated in a background thread in order to avoid any UI hangups. (The regular icon is shown for files for which the thumbnail hasn't been generated yet.)
The menu bar icon is a little nicer looking now (hopefully).
More user-friendly names for some tagged files (like address book contacts) are now displayed. i.e. instead of simply displaying the filename, TagLists now displays the 'display name' of this Spotlight object
The Edit → Delete menu item now has the keyboard shortcut ⌘⌫
The Edit → Delete menu item now removes tags from selected files, or if only tag searches are selected, removes the selected searches
It is now possible to remove tags from files directly from TagLists. This feature can be found in the context (right-click/control-click) menu when files are selected, as "Remove Tag(s)". The way this works is that it removes only the tag(s) under which the selected file(s) are listed in TagLists.
Added an optional menu bar item that simply brings TagLists to front when clicked. This can be enabled from the preferences. (There's also an alternate menubar icon image in the application bundle's Resources directory in case you find the default one ugly. You can change it by replacing the statusBarIcon.tiff image.)
The ⌘↩ shortcut no longer adds a new tags search — it now invokes Reveal in Finder for all selected files. New searches can still be added with the ⌘N shortcut.
Fixed bug where files weren't updated in the list when they were modified (or when their tags were modified).
Fixed bugs where the selection in the list didn't change appropriately whenever the sort order of the list changed.
When copying the paths of selected files onto the clipboard and the same file is selected more than once, only include one instance of this file's path in the string that's copied onto the clipboard.
The file info will now wrap to multiple lines if there's enough vertical space (i.e. if the row height is large enough.)
The drawing of the list items has been optimized quite a bit so the application's CPU usage and UI responsiveness should more closely resemble something that you would expect from a small, simple app like this.
The latest version of Tagger is now able to tag the selected files in TagLists. (i.e. TagLists now has a minimal AppleScript dictionary that makes this possible.)
A "Copy paths to clipboard" context menu item has been added for files.
The "Open in Tagger" context menu item is now disabled (instead of hidden) when you don't have Tagger installed.
Added the OpenMeta Spotlight importer (version 2.1) into the application bundle — this way you'll be able to find your tagged files even if TagLists is the only OpenMeta-supporting application you have installed.
Credits: TagLists includes OpenMeta code by Tom Andersen, "NSImage+QuickLook" code by Matt Gemmell and LetsMove code by Andy Kim, John Brayton, Chad Sellers and Eita Hayashi. TagLists also uses SFBCrashReporter by Stephen Booth, Sparkle by Andy Matuschak, some code for calculatingfolder sizes by Daniel Jalkut and Dave DeLong, and some components from BWToolkit by Brandon Walkin.