17 September 2018

Directory Opus 12.9.4 (Beta)

Directory Opus 12.9.4 (beta) is now available for all Opus 12 users.

This is a preliminary, beta release. Translations may not be fully up-to-date and some English text may appear in non-English versions.


Additional change:

We have re-uploaded 12.9.4 beta with an additional change, to get it out faster:
  • Fix for problem introduced in 12.9.3 beta where Explorer Replacement opened File Explorer instead of Directory Opus if Opus was not already running.

    For the fix to take effect, after installing the update you need to do something which saves the main configuration file (e.g. open Preferences, change an option, then click OK and wait a few seconds).


  • The background and glyph colors of the breadcrumbs path field, search field, filter field and filter bar controls can now be configured under Preferences / Display / Colors and Fonts / Toolbar and menu defaults.
  • If you hide the media duration parts of the status bar using a variable, the duration will no longer be calculated (unless something else still triggers it). If you then toggle the variable to make the duration parts show again, the duration will be calculated immediately (if it hasn't been already).
  • Status bar {var:...} codes can now negate the variable using {var:!...}.
  • The distance the mouse has to move before a drag & drop begins is now DPI scaled. (The base value still comes from the registry, via the GetSystemMetrics API, and can be changed under HKCU\Control Panel\Desktop\DragWidth and DragHeight. Note that most other software does not DPI-scale it, but we believe this is incorrect as the default has remained at 4 pixels since long before Windows supported high DPI.) Similarly, the bounding box the mouse must stay in between clicks to register a double-click is scaled as well.

If you downloaded the previous beta right after its initial release, these changes are also new:
  • Fixed crash when loading raw photo previews.
  • Infotip {foldercontents} has new parameters: SingleLine makes it show files and folders on a single line (each) instead of one line per item. MaxItems limits the number of items within each category (up to a hard maximum of 20). MaxItemLength limits the length of each item (up to a hard maximum of 260). Indent lets you change the indentation before each item in multi-line mode (defaults to four spaces), or the separator between each item in single-line mode (defaults to ", "). To get single-line infotips like they were prior to Opus 12.9.3, use: {foldercontents:singleline:maxitems=4,maxitemlength=20}

10 September 2018

Directory Opus 12.9.3 (Beta)

Directory Opus 12.9.3 (beta) is now available for all Opus 12 users.

This is a preliminary, beta release. Translations may not be fully up-to-date and some English text may appear in non-English versions.


Additional Changes:

We have re-uploaded this version with a couple of additional changes. If you downloaded the beta soon after release, please re-download it to get these additional changes:
  • Fixed crash when loading raw photo previews.
  • Infotip {foldercontents} has new parameters: SingleLine makes it show files and folders on a single line (each) instead of one line per item. MaxItems limits the number of items within each category (up to a hard maximum of 20). MaxItemLength limits the length of each item (up to a hard maximum of 260). Indent lets you change the indentation before each item in multi-line mode (defaults to four spaces), or the separator between each item in single-line mode (defaults to ", "). To get single-line infotips like they were prior to Opus 12.9.3, use: {foldercontents:singleline:maxitems=4,maxitemlength=20}


  • Improved support for virtual desktops in Windows 10.
    • A new virtual_desktop_isolation setting, on by default, makes changes like these:
      • The "Save All Listers" command only saves windows from the current desktop.
      • Layouts set to close existing Listers when they open will only close Listers on the active virtual desktop.
      • Explorer Replacement (and things like the Go EXISTINGLISTER command), if set to reuse existing windows or open new tabs in them, will tend to open a new window if it can't find an existing one on the current desktop. (There are some exceptions, where Windows itself decides which Lister to activate for a folder.)
      • "Reuse existing viewer window" only considers viewer windows on the current desktop.
      • "Close All Viewers" from the viewer's system menu only closes viewers on the current desktop.
      • Set LISTERCMD=showall, minimizeall, and toggleminimizeall only act on the current desktop's windows.

    • Close ALLVIEWERS, ALLLISTERS and ALLOTHERLISTERS commands now work with a new CURRENTDESKTOP argument to restrict them to acting on the current desktop's windows.

    • Set LISTERCMD=tileh, tilev, and cascade always only act on the current desktop's windows, regardless of Preferences.

    • Fixed being able to dock a Lister into one that is on another virtual desktop and not currently visible.

  • For Windows 10 only: Preferences / Launching Opus / From the Win + E hotkey now exists for you to change what happens when the Win-E hotkey is pushed. (While configured independently, this is tied to the Explorer Replacement mechanism. It thus requires Opus Pro and will only work with portable versions if they have been configured to enable Explorer Replacement.) WHEN UPDATING OPUS, THIS NEW FUNCTIONALITY WILL NOT WORK CORRECTLY UNTIL YOU HAVE REBOOTED.
  • Local F1 help (as opposed to the help on the GPSoftware website) is now shown in your web browser by default. A new option, Preferences / Miscellaneous / Advanced [Behavior]: help_interface, lets you set it back to CHM (HTML Help) if you prefer this interface. You can also use that setting to specify a custom port for the local http help server if needed. When help is shown in your web browser, script add-ins and plugins are now able to add their own help pages.
  • The codes available to display information on the status bar have been expanded:
    • You can now use variables on the status bar. e.g. {var:tab:MyVariable} will display the contents of the file display variable MyVariable. You can also hide and show sections depending on whether or not a variable exists, and then control which information is shown on the status bar from buttons and scripts. e.g. {h!{var:glob:ShowExtraInfo}} ... {h!}

    • Status bar data can now be conditional on the current path or tests for whether paths exist. For example, {ifpath:"C:\*"} will return 1 if you are in a path below C:\ and nothing otherwise. {ifexists:".\*.dll"} will return 1 if there are any DLLs below the current folder. These can be used with the {h!} code to show or hide things. Further examples and details can be found in the manual. (Not in the 12.9.3 manual yet, but will be for 12.10.)

    • Status bar data can now be conditional on the same @if and @ifset tests you can use in buttons and scripts. For example, if you want the status bar to show the selected file's size and date, but only when not in Details mode: {h!{if:!Set VIEW=Details}} {sel:size} {sel:write} {h!}

    • Added new Preferences / Miscellaneous / Advanced setting, status_metadata_trigger, which lets you choose when/if things such as duration codes on the status bar should cause file metadata to be calculated.

    • The @toggle:update command directive can now be used after modifying variables to force status bars to update.
  • Added some new Find command arguments to control things the Simple Find dialog has check-boxes for, when automating the command: NOWILD, ANYWORD, CONTWILD, CONTCASE.
  • The Rename command now lets you specify the Rename dialog's default sequential numbering parameters without having to turn sequential numbering on. This is done by adding ! to the NUMBER parameter. For example, if you want the Rename dialog to open with numbering off but padding set to two digits when/if you turn it on: Rename ADVANCED NUMBER=!01

  • Commands for setting show/hide attribute filters now support the I (non-indexed) and P (pinned) attributes. Also, previously undocumented: You can specify two sets of attributes to alternate between the two each time the command is run. e.g. Set HideFilterAttr=HS,R would toggle between hiding files with the Hidden or System attributes and hiding files with the Read-Only attribute. When only one set is specified, the command acts as a toggle.

  • File display variables can now be prefixed with left:, right: and tab: to designate the left, right and active file displays, in addition to the older src: and dst: prefixes. (tab: and src: will usually point to the same thing, but can be different, e.g. when dealing with status bar codes for a particular side of the Lister.)
  • You can now configure the font used in code editors such as the advanced button editor, rename scripts, and status bar Preferences.
  • Scripting changes:
    • The QuickFilter object has a new showeverything propertiy which indicates if Show Everything mode is on for the folder tab. When Show Everything mode is on, it also now implicitly makes the QuickFilter object report disabled=true, showallfiles=true, and similar.
    • ScriptColumn.type can now be set to numericsort or wordsort to force numeric or word sorting, for the opposite of the nonumericsort and nowordsort options added in the previous beta.
    • A new script event, OnGetHelpContent, lets script add-ins add their own help content to the F1 help (only when help is shown in the user's web browser). The new Script.LoadImageFile and Script.LoadHelpImage methods let you easily load your script's help content when bundled as a script package.
    • Added Script.HttpHelpEnabled and Script.ShowHelp to let scripts trigger their own help pages. There are also matching functions for viewer/VFS plugins.

  • When Opus is installed it now registers a URL scheme, opushelp://, which allows for clickable links to local help in your browser. dopusrt.exe has a new /help argument that this scheme uses to trigger display of local http help. The HTTP help server will be enabled and started automatically if it was turned off in Preferences.
  • The API for non-Unicode viewer and VFS DLLs has been disabled. We believe there are only two 64-bit plugins affected by this, both of which have alternatives and appear not to have been downloaded recently. If this is wrong, or there are non-Unicode plugins we are unaware of (e.g. privately developed for corporate environments), please let us know. If needed, we can reinstate the legacy API, but our current plans are to remove the code behind it if there are no complaints.
  • On the FTP Logs panel, clearing the [All Activity] log now does the same as the Clear All Logs option, removing site-specific logs at the same time.
  • Opening virtual folders via Explorer Replacement now opens them in your normal default Lister, instead of forcing the dual file display, tree, viewer and other panels to be off.
  • Commands like Go LASTACTIVELISTER are now better at finding the Lister which was most recently active. Previously, they were a bit too literal: If the last active Lister had since been closed, without another becoming active, then they did not find anything.
  • If a file copy fails mid-way with ERROR_NOT_READY (which can happen if a USB drive is pulled out) Opus will restart the copy when you click Retry rather than just attempting the last write again.
  • Opus now tries to stop its DLLs being injected into chrome.exe to avoid Chrome incorrectly labeling (libeling!) us as an incompatible application. Unfortunately this will stop the "Open Downloads Folder" command in Chrome from opening in Opus when Explorer Replacement is enabled.
  • More support for characters outside the BMP range (UTF-16 surrogate pairs and 4-byte UTF-8 sequences):
    • Script add-in code (i.e. within .vbs and .js text files) can now contain them.
    • Containing Text searches in the Find Panel and filters now work with them.
  • The Rename dialog's Clipboard menu/button is now always enabled, even if the macro builder is turned on. Using one of the paste options will turn off the macro builder automatically.
  • Label filters in the folder tree are now re-calculated when you push F5 (or run similar refresh commands which affect the tree).
  • When editing JScript, the script editor now does syntax highlighting of /.../ style regular expressions, which previously confused the highlighting. Also tweaked the highlighting for the script and button editors in general.
  • Status bar configuration can now include comments by starting lines with //.
  • Folder tooltips using {foldercontents}, and the status bar hidden-count tooltip, now show each file/folder on a separate line, and allow names to be longer before truncation, and more names to be displayed in total.
  • Pasting images and text from the clipboard now automatically bumps the filename again if it already exists (you'll still be prompted when pasting from sources like Remote Desktop). This was broken in the previous beta.
  • If the Add File Collections list to the Send To menu option was turned on, then later turned off, the collections in the Send To menu at the time would be left there (except on Windows XP). They are now cleaned up.
  • With newer versions of WinRAR installed, the Archives plugin always created RAR 4 archives even if configured to make RAR 5 ones. This now works again.
  • Fixed Preferences / Launching Opus / Default Lister / In a fixed position relative to the monitor the mouse is on behaving like Always over the mouse pointer.
  • Fixed incorrect behavior of the viewer pane's context menu items for spanned wallpaper and resetting the viewer plugin override.
  • Fixed dialog editor crash if you pushed the Del key on an item with multi-line contents to reset the contents to empty.
  • Fixed problem with FTP SSH not returning directory listings if the list output omitted file permissions.
  • The Replace Explorer for all file system folders option now includes the Quick Access folder on Windows 10. Also improved this option so it excludes more control panels (e.g. the "classic" desktop wallpaper control panel opened by running "shell:::{ED834ED6-4B5A-4bfe-8F11-A626DCB6A921} -Microsoft.Personalization\pageWallpaper"). If updating Opus, this change will only take effect after you reboot.
  • Fixed crash if the filter bar was in use and set to clear when changing folders, and you then changed folders while inline-renaming a file.
  • Double-clicking shortcuts to FTP sites added under This PC will now add the FTP site under the folder tree's FTP branch, not under the This PC branch (which had some issues with "... on SiteAddress" being added to the end of folder names).
  • Fixed bug in 12.9.2 beta which meant Preferences / Folder Tree / Selection Events would not save correctly, with all the events being empty when loading a configuration saved by that version. This new version will reset those settings when loading configurations crated by 12.9.2, to restore the defaults. Configurations from other versions will be preserved.
  • Fixed a quirk of the Filter Bar which meant that, with filtering disabled, you could activate the disabled edit control via the keyboard and type one character into it.
  • Fixed crash if the Filter Bar was open at the time you toggled the Preferences setting to make it use regular expressions.
  • Fixed status bar code parsing so using {{ to get a single literal { works even when it is before something that looks like a valid status bar code.
  • Fixed crash if you pushed Alt to put the Lister toolbars into keyboard mode, then used the Left cursor key to move past the leftmost menu item.
  • Rename FROM now works correctly in conjunction with the PRESET argument.
  • The context menu item for TreeSizeFree is now shown in Opus.
  • Fixed problem where the New Folder button would be incorrectly disabled in the Copy TO=ask$ dialog if the last destination was a network drive.