FoxTrot hidden preferences

Here are some commands you can type in Terminal.app. It is suggested to quit FoxTrot before typing them.
Note: for FoxTrot Personal, type com.ctmdev.FoxTrot instead of com.ctmdev.FoxTrotPro; for FoxTrot Search Admin, type com.ctmdev.FoxTrotAdmin
To reset a specific preference to its default value, type defaults delete com.ctmdev.FoxTrotPro PreferenceName



Search string autocompletion:

Disabling Autocompletion
  • to disable autocomplete suggestions of words starting with:
    • defaults write com.ctmdev.FoxTrotPro AutocompleteSuggestStartingWith -bool NO
Autocorrection
  • to disable autocomplete suggestions of mistyped words:
    • defaults write com.ctmdev.FoxTrotPro AutocompleteSuggestMaxEditDistance -int 0
    • Default value is 2. You can set it to 1 to suggest words with a single typo.
  • to change the precedence order for suggestions depending on the number of typos:
    • defaults write com.ctmdev.FoxTrotPro AutocompleteDistanceRankFactor -float value
    • with value being a floating point value. The default value is 100. Lower values will increase precedence for words with typos, and higher values will decrease it.

Indexing specific filetypes:

Disabling Indexing Specific File Types
  • to disable indexing the contents of a specific file type (replace extension by the actual filename extension); you will then need to rebuild your index:
    • defaults write com.ctmdev.foxtrot Aliases -array-add "{type='extension'; as='';}"
Aliasing File Types
  • to index the contents of a specific file type as if it was another file type (replace overriddenExtension and overridingExtension by the actual filename extensions):
    • defaults write com.ctmdev.foxtrot Aliases -array-add "{type='overriddenExtension'; as='overridingExtension';}"
Disabling or Aliasing Files Types with Headers
  • to disable indexing, or override the filename extension, for files with given extension only when their contents starts with a specific hexadecimal header:
    • defaults write com.ctmdev.foxtrot Aliases -array-add "{type='extension'; headers=(<hexadecimal header>); as='';}"
  • you may also specify multiple possible headers:
    • defaults write com.ctmdev.foxtrot Aliases -array-add "{type='extension'; headers=(<header 1>,<header 2>,<header 3>); as='';}"
  • to reset (you should then launch FoxTrot and quit it again, before altering this setting again, with defaults write ...):
    • defaults delete com.ctmdev.FoxTrot Aliases
  • Note that you can specify Uniform Type Identifiers (UTI), or HFS file types, instead of extensions. For exemple, for plain text files, you can use either txt, .txt, public.plain-text, or <TEXT>.

Other indexing options:

Index Compression
  • to enable compressing PDF files, when storing a copy of the files in the index (note that many PDF files are already compressed, so re-compressing them in FoxTrot will use more CPU, without reducing the index size significantly):
    • defaults write com.ctmdev.FoxTrot CompressPDF -bool YES
  • to change the compression level of stored textual contents:
    • defaults write com.ctmdev.FoxTrot ContentZstdLevel -int level
    • with level being an integer between 1 (fastest) and 22 (most compressed). Default level is 5.
  • to change the compression level of stored documents:
    • defaults write com.ctmdev.FoxTrot DocumentZstdLevel -int level
    • with level being an integer between 1 (fastest) and 22 (most compressed). Default level is 5.
  • to change the compression dictionary used to compress stored textual contents, run the shell script Set FoxTrot Content Compression Dictionary.command in Terminal.app
Indexing Finder Comments and OpenMeta Tags
  • to disable indexing of the Finder comments (aka Spotlight comments) and Finder tags:
    • defaults write com.ctmdev.FoxTrot SkipFinderComments -bool YES
  • to enable indexing of the OpenMeta tags, in addition to standard Finder Tags:
    • defaults write com.ctmdev.FoxTrot HonorOpenMetaTags -bool YES
Language Identification
  • to disable language identification:
    • defaults write com.ctmdev.FoxTrot RestrictLanguageIdentification ""
    • to restrict language identification to some languages: defaults write com.ctmdev.FoxTrot RestrictLanguageIdentification "fr en"
  • to use the Natural Language framework for language identification, on macOS 10.14 and later (slower indexing, but may produce better identification):
    • defaults write com.ctmdev.FoxTrot UseNaturalLanguageIdentification -bool YES
Multicore Processing
  • to set the maximum number of concurrent index updates (the default is one by CPU core):
    • defaults write com.ctmdev.FoxTrot MaxConcurrentIndexUpdates -int n
  • to manually define the maximum number of concurrent extractor processes, for each index (the default is automatic and depends on the number of CPU cores):
    • defaults write com.ctmdev.FoxTrot ExtractorCount -int n
  • to enable benchmarking index rebuild, the next time you launch FoxTrot Pro:
    • defaults write com.ctmdev.FoxTrotPro Benchmark yes
  • to enable benchmarking index rebuild, permanently:
    • defaults write com.ctmdev.FoxTrotPro Benchmark permanent
Attributes Modification Date
  • to ignore the attributes modification date when determining if a files has changed and needs to be updated (so changing the Spotlight comments or Finder label won't mark the file for update), set IgnoreAttributesModificationDate to true in the Config file (in the Finder, use the "Show package content" contextual menu on the index file, located in {home}/Library/FoxTrot):
    • <ignoreattributesmodificationdate>true</ignoreattributesmodificationdate>
Automatic Compaction
  • to disable automatic-compaction of the indices:
    • defaults write com.ctmdev.FoxTrot DisableAutoCompact -bool YES

Searching:

Ignoring Other Metadata
  • to enable ignoring "other metadata" when searching "any metadata or filename" (for FoxTrot Personal, type com.ctmdev.FoxTrot instead of com.ctmdev.FoxTrotPro):
    • defaults write com.ctmdev.FoxTrotPro IgnoreOtherMetadata -bool YES
Multiple Strings Separator
  • to change the multiple strings separator, used in search filters:
    • defaults write com.ctmdev.FoxTrotPro StringSeparator "separator"
    • the default separator is , which is the “em dash” character (U+2014), and it can be typed on a qwerty keyboard, with the option shift “-” combination (do not use the “-” key from the numeric keypad). separator can be any unicode single or multi-character string; it is recommended to enclose it between straight quotes in the terminal command.

Displaying found documents:

Cache Duration
  • the contents of large documents is kept in a cache to speed up the highlight of found words in the preview (when the same document is viewed multiple times). By default, documents are kept 30 days in the preview cache; to change this duration (for FoxTrot Personal, type FoxTrot instead of FoxTrotPro):
    • defaults write com.ctmdev.FoxTrotPro RemoveFromPreviewCacheAfterDays -int n
    • you can manually clear the cache from the preferences

Miscellaneous:

Network Compression
  • to disable compression of the network connections (do this on the client side):
    • defaults write com.ctmdev.FoxTrot DisableCompression -bool YES
First Aid Window
  • to force displaying FoxTrot First Aid Window the next time FoxTrot is launched (may be necessary if pressing the command and option keys does not work):
    • defaults write com.ctmdev.FoxTrotPro ShowFirstAidOnStartup -bool YES
Server Certificates
  • to disable verification of the server certificate, when connecting to a FoxTrot Server (which is normally required only when connecting to a FoxTrot Server by specifying its hostname, and not for servers discovered automatically on the local network with Bonjour):
    • defaults write com.ctmdev.FoxTrotPro DisableServerCertificateVerification -bool YES
User Interface Preferences
  • to use old style tabs:
    • defaults write com.ctmdev.FoxTrotPro TabStyle Card
  • to change the duration of the animation of the categorization pane:
    • defaults write com.ctmdev.FoxTrotPro CategoriesAnimationDuration -float duration
    • with duration being 0 to disable the animation, or the duration is seconds. The default 1.0.

Advanced logging:

Logging of Indices Startup
  • to enable detailed logging of indices startup (to debug error 999, for example):
    • defaults write com.ctmdev.FoxTrotPro LogLaunchSource -bool YES
    • These messages will be logged in {home}/Library/FoxTrot/FoxTrotStarter.log
Logging of Registration Code Network Verification
  • to enable logging of registration code network verification:
    • defaults write com.ctmdev.FoxTrotPro LogNetworkRegistration -bool YES
    • To see these logged messages, launch Console.app (from /Applications/Utilities), select "system.log" in the left pane, type Network Registration in the toolbar search field.
Logging of Bonjour Shared Indices
  • to enable logging of Bonjour FoxTrot Server / FoxTrot Pro shared indices:
    • defaults write com.ctmdev.FoxTrotPro LogNetworkServices -bool YES
    • To see these logged messages, launch Console.app (from /Applications/Utilities), select "system.log" in the left pane, type "Network Services" in the toolbar search field.
Logging All Queries
  • to enable logging all queries in the "FoxTrotIndexer.log" file, set LogQuery to true in the Config file (in the Finder, use the "Show package content" contextual menu on the index file, located in {home}/Library/FoxTrot):
    • <logquery>true</logquery>
    • These messages will be logged in {home}/Library/FoxTrot/FoxTrotIndexer.log