Directory Opus 13.7.1 (Beta)

:warning: This is a beta release. It may be unstable. Some text may not be translated yet. Use at your own risk!

:inbox_tray: Download manually, or use Help > Check for Program Updates (if beta versions are enabled in Preferences / Internet / Updates).

New Preferences options:

  • File Displays / Folder Expansion / Remember expanded folders when refreshing: Any expanded folders will be re-expanded after the folder is refreshed (eg after pressing F5).

  • File Displays / Folder Expansion / Remember expanded folders when going back and forward: Any expanded folders will be re-expanded when moving back/forward in the history list.

  • File Displays / Options / Clear quick filter with the Esc key: On by default, lets you disable the built-in behaviour if you don't want Escape to clear filters.

  • File Operations / Metadata / Editor / Sort tags alphabetically: Tags will be displayed alphabetically rather than in the order they appear in the file.

  • File Operations / Renaming Files / Show control keys tooltip when holding Ctrl: Options to disable or change the timing of the inline rename control keys tooltip.

  • File Display Modes / Thumbnails / Expand thumbnail with focus if name doesn't fit: Option to always truncate displayed filenames instead of growing the item with focus for long names.

  • Miscellaneous / Advanced: [Behavior] everything_autolaunch: This lets you configure Opus to automatically run Everything when it's needed to do a search (note: will not auto-launch for folder sizes, only searching). To use this, set the value to the full command line needed to run Everything on your system (e.g. "C:\Program Files\Everything\Everything.exe" -startup).

  • Miscellaneous / Advanced: [Troubleshooting] notify_poll_paths: Used for paths which have unreliable change notification. (For example, Linux/Docker will fail to send notifications for changes made to a mounted volume from inside a container.) When Opus displays a folder that matches or is below one of the specified paths, it will constantly list the directory in the background to see if anything has changed. Warning: Using this can harm performance, especially if the directory has a lot of items in or below it.

Other new features:

  • The standalone viewer can now selectively show only the red, green or blue channel of an image. The default viewer toolbar has a new Select Channel submenu in the View menu with commands for this. Reset your toolbar to the defaults or drag it from Customize / Default Toolbars to add it to your viewer. The underlying commands are Show VIEWERCMD=channelall, channelred, channelblue, channelgreen and channelalpha.

  • Script/button editors now support Ctrl+mouse wheel to zoom the font larger and smaller. The dropdown Edit menu has a Reset Zoom Level command in it to reset to the default size.

  • Added Set INFOTIPS command, lets the file infotips Preferences option be controlled via a command.

  • Added Set UTILITY=float parameter. Can be used to e.g. open the script log and float it automatically (e.g. Set UTILITY=ScriptLog,Toggle,Float).

  • Added @color button modifier; allows a button's text and background color to be changed by evaluation clause in the same way @label can modify its label. The evaluation clause returns the new colors as two variables called text and back. Set to "default" to get the button's defaults, or "none" to get the toolbar's defaults.

  • Added Date/Time Original and Date/Time Created columns for images with EXIF metadata. The existing Date Taken column is (generally) generated from these fields, so will often (but not always) show the same thing. Having these fields available separately lets them be searched for explicitly.

  • The advanced filter control can now search image metadata for date/time original and date/time created fields that are empty.


  • Script dialogs can now use palette controls.

    • Four types are supported - normal, alpha (supports alpha values), transparent (supports a "transparent" option) and default (supports a "default" option).
    • The control can optionally display a checkbox which lets the color value be disabled.
    • Palette controls generate "color" messages whenever the color shown in them changes. The "data" value will be 0 for intermediate changes (e.g. the user has the palette open and is clicking around within it) and 1 for final changes (when the palette window closes).
    • Color value can be reported as a hex string (e.g. "#RRGGBB") or decimal string (e.g. "RRR,GGG,BBB") depending on the Decimal property in the control definition.
    • If the palette control has an enable/disable checkbox, the string will be prefixed by ! when the color is disabled.
    • Setting the value via Control.value accepts either format string, you can also pass "enable" and "disable" to toggle the checkbox without changing the color value.
  • Script dialogs have new properties in the designer to enable the window title minimize and maximize buttons.

  • Button controls in script dialogs have a new "Right Button" property. When set, buttons will respond to right mouse button clicks as well as left, and report "rclick" events in the message loop.

  • Added OnClipboardChange event. Scripts that implement this event will be called whenever the clipboard contents change. The ClipboardChangeData object has two properties; count is a value that increments every time the clipboard changes while Opus is running, and has_files is true if the clipboard contains files/folders.

  • Added Dialog.WatchClipboard method. Allows script dialogs to monitor for clipboard changes. Your message loop will receive a "clipboard" message whenever the clipboard contents change. Call Dialog.CancelWatchClipboard to stop monitoring.

  • Added Dialog.AddCustomMsg method:

    • Lets a script dialog register one or more custom messages that can then be sent to it from other scripts.
    • Messages are registered by name. If a message is already registered the AddCustomMsg method will fail unless you set the optional "force" parameter to true.
    • Use the DOpus.SendCustomMsg method to send a message.
    • Any dialogs that have added the named message will receive a "custom" message in their message loop, with the property set to the name of the message.
    • You can pass a single numeric value when sending the message, which will be provided in the property, or a container object (e.g. a Map), which will be provided in the Msg.object property.
  • Added Dialog.msgonly script property. Set to True before creating a dialog to create a "message-only" dialog.

    • A message-only dialog will never be visible, but still runs a normal message loop.
    • Lets you use things like WatchTab or HTTPRequest without needing a visible dialog (or resorting to opacity tricks).
    • When msgonly is set to true no dialog template is needed. Note that only detached dialogs support this option.
  • Added Tab.Notify script method to display user notification messages associated with a particular tab. Currently this supports displaying a message in a tab's status bar, but may be expanded in the future to other types of notification.

  • The DOpus.LoadImage function can now load an image from a Blob (as documented). When loading from a Blob, a filename can now be given as the second argument, to specify the image type (otherwise the function will try to determine it from the image data).

  • Added Image.type property, reports the type of file the image was loaded from (if known).

  • When adding a Blob for upload with the HTTPRequest.AddPostData method, additional parameters now supported to specify the filename and the encoding type.

Minor changes:

  • Improved performance of cached archive thumbnails (particularly on network drives).
  • Added a kludge for folder thumbnails generated by the Windows shell not returning a proper thumbnail for empty folders.
  • Go FOLDERCONTENT now supports embedded functions, to enable the behaviour of the generated file buttons to be configured.
  • The "Searching in..." message shown in the status bar when using the Find tool is now linked to the tab the find is running in, so it won't obscure the status bar when switching to another tab.
  • When editing ID3v2 tags, excessive padding will now be removed. For example, after removing cover art, most of the unused space will now be reclaimed instead of left for future tags/covers.

Bug fixes:

  • Fixed issue preventing information being extracted from MSI files.
  • Fixed single-click "hover to expand folders" option not working if the "single click over icon only" flag was also turned on.
  • Evaluator selfiles/seldirs values (in e.g. a @label instruction) now work in context menus.
  • Fix for toolbar submenus opened in certain positions sometimes closing as the mouse moves towards them.
  • Fixed Opus-generated folder thumbnails not EXIF-rotating the content thumbnails.
  • Fixed drag and drop of a folder to the Favorites tree always adding the folder to the root of favorites instead of to the branch it was dropped on.
  • Fix for cached thumbnails being incorrectly rotated with EXIF rotation turned off.
  • Fixed image fields in textual filters using translated unit names when converting to text. They now use their canonical English names. (Translated names are still accepted as input so old filters will still work).
  • Fixed folder tab context menu not identifying the right/bottom tab bar if an empty area was right-clicked (rather than a tab).
  • Fixed metadata panel showing 0.100 instead of 0 for some EXIF values.
  • Fixed sub-folders of archives like .7z displaying using hosted Explorer namespace instead of native Opus handling.
  • Fixed issue in HTTPRequest script object preventing file upload to VirusTotal from working.
  • Fixed missing frame around part of the pop-up for editing audio cover art (only visible in dark mode).
  • Fixed status bar using the wrong text color if overridden under both Directory Opus Colors and Windows Colors.
  • Fix for crash 314 (read attempt on portable device while shutting down).