There are a number of advanced settings in QRecall that can't be set using the application's user interface.
Note: QRecall 2.0 makes most of these settings available in the Advanced tab of the QRecall preferences pane. If running QRecall 2.0 or later, first check the Advanced tab for the setting you are interested in. Refer back here if you don't find it. These special settings can be set using the
defaults command in a Terminal window. The basic form for setting a QRecall preference value using the defaults command is:
defaults write com.qrecall.client key value
where 'key' is the setting and 'value' is its new value
Deleting a setting restores that setting to its default. The command for that is:
defaults delete com.qrecall.client key
The default for some settings are variable or change from one release to the next, so deleting a setting is different than simply setting it to the default value listed below.
These settings can also be set using the Property List Editor included with the Xcode tools. Edit the values in the
~/Library/Preferences/com.qrecall.client.plist file.
Some settings won't take effect until the next time the application is started or the action is run. For the most reliable results, change these values when the QRecall application is not running.
QRMonitorSpacesJoinAll Value: false or true
Type: Boolean
Default: true
Version: 1.1 and later
Example:
defaults write com.qrecall.monitor QRMonitorSpacesJoinAll -boolean false Note: This setting is in the
com.qrecall.monitor domain.
QRMonitorSpacesJoinAll let you gain some control of how the QRecall Activity window is managed by Spaces. When set to true, QRecall forces the QRecall Activity window to appear in all spaces. When set to false, the activity monitor window exists in the first space it appears in and will switch back to that space when reactivated. This can be controlled by manually moving the activity window to another space or setting the preferred space for the activity window. To set the preferred space, do the following:
• Locate and select the QRecall application
• Right/Control+click on the application and choose Show Package Contents
• Locate the QRecallMonitor application, inside the Resources folder, inside the Contents folder
• Open the Spaces pane of the System Preferences
• Drag the QRecallMonitor application into the Application Assignments pane of the Space preference panel
• Select the space, or spaces, the QRecall Activity window will appear in
QRCaptureFreeSpaceSweep Value: false or true
Type: Boolean
Default: true
Version: 1.1 and later
Example:
defaults write com.qrecall.client QRCaptureFreeSpaceSweep -boolean false QRCaptureFreeSpaceSweep can be used to disable Capture's search for free space in an archive following a layer merge or delete. Normally, each capture begins by locating all of the unused space in the archive. Setting this to false skips this phase of the capture. The advantage of turning it off is primarily performance at the expense of additional disk space. Not searching for free space makes the capture process run quicker and avoids fragmenting the organization of the archive. The disadvantage is that the archive will grow indefinitely until it is compacted. One obscure advantage affects the capture of very large files (like disk images) that get stopped before the capture completes. The next capture begins by freeing the partially captured data. Setting QRCaptureFreeSpaceSweep to false skips this phase, so the quanta from the partially captured item is still in the archive and will not need to be added again.
QRAuditFileSystemHistoryDays Value: 0.0 to 365.0
Type: Floating Point
Default: 6.9
Version: 1.1 and later
Example:
defaults write com.qrecall.client QRAuditFileSystemHistoryDays -float 13.9 Beginning in Leopard, OS X introduced Filesystem Events, which tracks changes on volume by folder. Filesystem event's folder change detection is not, however, foolproof. There are a number of obscure situations where the file system will not accurately report the changes on a volume. To guard against this, QRecall only trusts the operating system for a limited amount of time. After that (approximately 7 days) the capture will ignore the system and perform a deep, exhaustive, scan of the entire directory structure looking for changes. Once the deep scan is complete, QRecall will again trust the operating system's change detection for another 7 days. QRAuditFileSystemHistoryDays sets the maximum amount of time that folder change information is trusted. Setting it to 0.0 will ignore all folder change information and cause every capture to perform an exhaustive scan of the directory structure.
QRCompactFreeSpaceRatioMinimum Value: 0.0 to 0.9
Type: Floating Point
Default: 0.04
Version: 1.0.1 and later
Example:
defaults write com.qrecall.client QRCompactFreeSpaceRatioMinimum -float 0.15 The compact action will only compact the archive if the percentage of free space in the movable region of the archive (the portion of the archive that isn't already completely compacted) is equal to or greater than this value. A value of 0.125 would mean that the movable region of the archive must contain at least 12.5% unused space before a compact would commence. This setting prevents a compact from moving GBs of data to recover tiny amounts of free space. Setting the value to 0.0 will cause the compact action to perform a full compact of the archive every time it is run.
QRLogCaptureDecisions Value: false or true
Type: Boolean
Default: false
Version: 1.0 and later
Example:
defaults write com.qrecall.client QRLogCaptureDecisions -boolean true Setting this value to true causes QRecall to log every capture decision it makes. A capture decision records the item and the reason QRecall decided to capture it. This can be useful for determining why a particular item is, or is not, being captured. This option can result in a
tremendous number of log messages.
QRLogViewXtraDetail Value: false or true
Type: Boolean
Default: false
Version: 1.0 and later
Example:
defaults write com.qrecall.client QRLogViewXtraDetail -boolean true If set to true, the log window will include to additional levels of detail allowing you to review debug and internal application messages.
QRRunningMakesSystemActive Value: false or true
Type: Boolean
Default: true
Version: 1.0.1 and later
Example:
defaults write com.qrecall.client QRRunningMakesSystemActive -boolean false If set to true, running actions periodically notify the system that the action is using the file system. This prevents the computer from going to sleep. This has the unfortunate side effect of waking up the computer's display if it was asleep. To prevent this, set QRRunningMakesSystemActive to false.
QRNumberOfCPUs Values: 1 to 16
Type: Integer
Default: actual number of CPUs
Version: 1.0 and later
Example:
defaults write com.qrecall.client QRNumberOfCPUs -integer 1 Many QRecall actions create multiple worker threads based on the number of CPU cores/processors available. If QRNumberOfCPUs is set, it will ignore the actual number of CPUs and use the number in the setting. See also QRMaxNumberOfWorkers.
QRMaxNumberOfWorkers Values: 1 to 16
Type: Integer
Default: 6
Version: 1.0 and later
Example:
defaults write com.qrecall.client QRMaxNumberOfWorkers -integer 3 The maximum number of worker threads an action will create. The number of worker threads an action will create to process data in parallel will be either the number of CPUs or this setting, whichever is smaller. See also QRNumberOfCPUs.
QRPhysicalMemoryMB Value: 256 or greater
Type: Integer
Default: actual amount of physical RAM
Version: 1.0 and later
Example:
defaults write com.qrecall.client QRPhysicalMemoryMB -integer 6144 Amount of physical memory QRecall assumes is available for caches and buffers. If you want QRecall to use less memory (at the expense of efficiency and possibly additional I/O), set this to a lower value and QRecall will attempt to keep its memory use within this limit.
QRNewDirectoriesOwnedByEUID Value: false or true
Type: Boolean
Default: false
Version: 1.0 and later
Example:
defaults write com.qrecall.client QRNewDirectoriesOwnedByEUID -boolean true If set to true and QRecall is authorized to use administrative privileges, folders created during a recall initially belong to the super user (root). Once the contents of the folder have been recalled, its owner and permissions are restored to their original state. However, this tends to confuse the Finder and will often result in a folder you can't open even though you have access to it. (Restarting the Finder will fix this.) If set to false, the folder will initially be owned by the user recalling the item. This can temporarily provide access to items belonging to other users. This feature has security implications and system administrators who worry about such things may want to turn QRNewDirectoriesOwnedByEUID on.
QRFilePreallocateDisable Value: false or true
Type: Boolean
Default: false
Version: 1.1.4 and later
Example:
defaults write com.qrecall.client QRFilePreallocateDisable -boolean true During actions that increase the size of the archive, QRecall will normally reserve (preallocate) space on the drive to ensure that it has enough disk space to successfully close the archive. Setting QRFilePreallocateDisable to true disables this feature. See the QRFilePreallocateBugWorkaroundRule setting.
QRFilePreallocateBugWorkaroundRule Value: 0, 1, or 2
Type: Integer
Default: 0
Version: 1.1.4 and later
Example:
defaults write com.qrecall.client QRFilePreallocateBugWorkaroundRule -integer 1 Some versions of Apple's file system have a bug in the pre-allocation API that causes it to allocate much more disk space than was actually requested. If the drive is less than half full, the operating system may attempt to allocate all of the remaining disk space, resulting in an erroneous "disk full" error. A workaround for this bug is implemented in QRecall. It uses regular file allocation to simulate pre-allocation. When QRFilePreallocateBugWorkaroundRule is set to 0, QRecall uses its workaround when running on specific versions of Mac OS X known to have this problem. Unfortunately, if your archive is on a networked volume the file server may, or may not, have this same bug—QRecall cannot automatically detect this. Setting QRFilePreallocateBugWorkaroundRule causes QRecall to either always (1) or never (2) use the workaround. QRFilePreallocateBugWorkaroundRule is ignored if the QRFilePreallocateDisable setting is true.
QRVMSwapStorePath Value: Absolute POSIX directory path
Type: String
Default: /var/vm
Version: 1.0 and later
Example:
defaults write com.qrecall.client QRVMSwapStorePath '/Volumes/Swap/vm' QRecall never captures the virtual memory swap files of the booted system. It determines the location of those files by examining the command arguments of the
dynamic_pager daemon. If you have customized the location of the system swap files, QRecall may have difficulty determining their location. Set QRVMSwapStorePath to the absolute POSIX path of the directory that contains the swap files.
SUFeedURL Value: URL
Type: String
Default: Current Update Feed URL
Version: 1.0 and later
Example:
defaults write com.qrecall.client SUFeedURL 'http://www.qrecall.com/release/appcast-alpha10.jsp' QRecall will periodically query this URL to check for updated versions. During development, alternate application feeds may be made available to alpha and beta testers. These users will receive updates that the regular users don't. If you participate in one of these programs, you will be given an alternate URL to set. Deleting this setting will return to the standard application update feed.