Indexing vs. Non-indexing
- One of the features of FARR that some people really like and others don't, is that FARR does not index directories. This means that all searches are conducted on the actual directory structure.
- Benefits of this are that FARR is never using background cpu scanning the disk for changes and is always up to date, and uses very little memory when minimized.
- A disadvantage is that FARR can take a little longer to search large/deep directories. In practice the start menu can be searched very rapidly which is the main use of FARR, but if you want to use FARR to search a huge directory structure of documents, an indexed solution might be better (though in this case you might be better off with a proper file contents indexing program like the desktop search tools, as opposed to a launcher).
- One important exception to the non-indexing is that FARR does cache the list of launched files, so that even if a desired program is not found instantaneously, once it is launched once, it will forever more be found instantly.
- (there is also a plugin for FARR that uses the Locate32 free indexing search program to conduct indexed searches -- it's not as seamless as native indexing launchers but it is useful for occasional searching of certain directories).
- FARR may have been the first launcher to use heuristic scoring to do a good job of ranking found files. There are a wide range of heuristics employed, and advanced users can configure the differential weighting of various factors.
- By customizing the weighting and adding new weighting patterns, users can easily exclude certain kinds of results or bring others to the top.
- Special modifier keywords can be used to bring certain scoring heuristics into play only in certain cases (for example one could set up a +music modifier which weighted certain file extensions and added certain directories to the search).
- While some launchers focus on showing and auto-completing a single best result -- FARR always shows the top ranked results. Hitting Enter launches the top result -- but the user can also directly launch any of the top 10 by hitting alt+#.
- Right clicking on a result brings up a menu of common operations (including excluding the result from future searches, changing the weight of the result, adding the result to a user-defined group menu.
- The result list is also a standard windows file list -- so files can be dragged out of the results to other programs, and the normal right-click file context menu can be accessed.
- FARR is coded in C++ (C++ Builder by CodeGear/Borland), and a native C++ plugin interface is available. But one of the unusual things about FARR is the extent to which users have contributed wrappers for writing plugins in other languages.
- Some plugins that have been written include a calculator with tape history and persistant user variables, clipboard plugin, default printer switcher, uninstaller, commandline shell and capture, language translation, delicious integration, todo list, alarm system, firefox/ie/opera bookmark searcher, google calendar plugin, and many more.
- Plugins can display standard file result, or ask to display information in the FARR window as a richtext memo which is useful when displaying textual information. An html output spreadsheet output mode is coming soon.
- One of the things that distinguishes FARR from some other launches is what FARR refers to as Aliases. The term is somewhat misleading -- Aliases can play several different roles, and are basically special keywords or search patterns that can trigger different behaviors.
- With version 2 of FARR, special emphasis was made on making it easier for users to create and share standalone alias packs containing not only lists of aliases (in xml files) but associated helper programs and icons.
- In the simplest case, an alias might be simply a keyword that maps to a specific program -- so a user might say that when they type "mw" FARR should know they mean "microsoft word".
- Users can create alias packs designed to work with third party applications, like the alias pack of commands to work with Nirsoft's NirCommand, which can perform system operations.
But there are many more complicated uses for Aliases:
- A common thing to do with aliases is create a keyword that contains a list of multiple results. Typing the keyword then shows the entire list of results for the alias, in the user-specified order. Users can customize the actual label for each of the results, and easily add new programs to an alias result list in a variety of ways.
- This makes it very easy to make your own groups of files like "games", "work", etc. Of course you can type the keyword and then perform additional filtering by typing more words.
- You can also use special results so that choosing one item in the result actually triggers a submenu or another search, so that a menu/group can really be a menu of additional searches not just files.
- One of the things that sets FARR apart from other launchers is that when regular expressions are combined with menus, the result is that many aliases are designed to present a menu of operations to perform on a given typed word or phrase. So for example the "define (.*)" alias presents a list of different dictionary website searches which can be launched as desired, rather than presenting only a single result.
Aliases: Regular expressions
- One of the most common use of advanced aliases is to design regular expression patterns that when matched can trigger subsequent results that operate on extracted patterns.
- FARR comes with several built in aliases that can be used to send email and do various internet searches; regular expression patterns are used in such cases to allow optional specification of subjects, recipients, text, etc.
Aliases: Special functions
- There are several special functions available in alias results, for doing things like sending text to the last active window before FARR was triggered, and conducting new searches.
- One feature that is noteworthy is the ability to match on some regular expression pattern and having FARR act as if something else was typed. This allows complicated search expressions to be abbreviated with simple typing.
- So if a user often finds themself searching for "C:\MyMusics\ +mp3 -.txt ARTIST" then they might create an alias that matches on "ms (.*)" and performs the search "C:\MyMusics\ +mp3 -.txt $$1"
- Modifiers starting with + or - can be used to exclude results containing certain words (the - prefix) and to activate optional search directories or scoring patterns (the + prefix).
- FARR has a complete folder browsing system with autocompletion and searching. If you start typing C:\ you will trigger the folder browsing on the C drive.. You can then begin to type patterns to progress deeper into the tree, using the tab key to autocomplete or keywords to reduce the search matches.
- One major new feature in FARR is a hotkey configuration system that let's you define multiple hotkeys to launch FARR in different ways.
- FARR by default uses the break key, but it also supports the common alt+space trigger by default. Additional hotkey configurations can trigger FARR and start it with a specific search keyword or phrase -- which can be very useful if you define certain result groups or common searches to trigger on a hotkey.
- A significant use of the hotkey system is to define certain hotkeys that can copy selected text from the active window before triggering FARR -- this is especially useful for using FARR as a dictionary lookup tool -- select some text, hit hotkey, FARR copies selected text to clipboard and then triggers a search phrase that makes use of this text.
- FARR has a small visual toolbar on it's main window which can be customized by the user with arbitrary programs -- file results can be dragged and dropped on the tool buttons.
- In an effort to facilitate community sharing of FARR aliases and plugins, FARR uses an update system which is capable of checking for and automatically installing updates of the main FARR executable and of third party plugins, and of alias packs.
- The most exciting new feature is the built in mini-html view / web browser. It's main purpose is to provide plugin writers with a new powerful way to display information, but users are also finding useful web pages that can be displayed in the small window.
- Lots of features for plugin writers, including the ability to display non-modal alert boxes (useful for alarms, etc.), the ability to trigger on idle time and arbitrary hotkeys.
Forum and Future Work
- There is a very active forum for discussing FARR feature requests (http://www.donationcoder....um/index.php?board=12.0); most new features come about through user requests on the forum.
Any other unsual FARR stuff I should mention?