For home users who need a simple, high-performance PC file manager

Directory Opus

Directory Opus

  -  23.3 MB  -  Trial
  • Latest Version

    Directory Opus 13.10 LATEST

  • Review by

    Daniel Leblanc

  • Operating System

    Windows Vista / Windows 7 / Windows 8 / Windows 10 / Windows 11

  • User Rating

    Click to vote
  • Author / Product

    GPSoftware / External Link

  • Filename

    DOpusInstall-13.10.exe

Are you frustrated by the limitations of Windows Explorer? Directory Opus is a complete replacement for Explorer, with far more power and functionality than any other file manager available today.

Directory Opus is designed with four goals in mind:
  • Ease of use: As far as possible, It works just like Explorer does. You don't have to learn any complicated scripting or non-standard mouse techniques to use Opus. If you've ever used Explorer to copy a file, you already know exactly how to do it in Opus as well.
  • Configurability: We believe in the user's right to choose how their computer operates. You'll find that almost every aspect of It can be changed - from the buttons on the toolbar to the color used to draw the background of a compressed file.
  • Efficiency: It is designed to be as efficient as possible. The entire program makes use of multi-threading to ensure that you should never have to wait for one operation to complete before beginning another.
  • Compatibility: As an Explorer Replacement it's important that Opus appears (to the system) just like Explorer does. Within the limits set by Microsoft, Directory Opus achieves this, and most software written with only Explorer in mind will still work fine with Opus installed.
Features and Highlights
  • Single or dual-pane file display and folder trees
  • Tabbed interface lets you keep multiple folders open and switch quickly between them
  • Unique Explorer Replacement mode provides a full replacement for Windows Explorer
  • Quickly filter, sort, group and search your folders
  • Color-code your files, assign status icons, star ratings, tags, and descriptions
  • View images, documents, and more. Image marking lets you sort your photos quickly and easily
  • Batch renaming including easy-to-use keyboard macros
  • View and edit file metadata
  • Support for FTP and archive formats like Zip, 7Zip, and RAR
  • Built-in tools including synchronize and duplicate file finder
  • Calculate folder sizes and print or export folder listings
  • Queue multiple file copies for improved performance
  • Fully configurable user interface - colors, fonts, toolbars, keyboard hotkeys, and a full scripting interface let you tailor Opus exactly to suit your needs
  • Efficient, multi-threaded, modern design. Supports the latest 4K monitors. Available in both 32 and 64-bit versions.
  • Much much more!
Note: 30 days trial version. You can extend the evaluation period to 60 days upon request.

  • Directory Opus 13.10 Screenshots

    The images below have been resized. Click on them to view the screenshots in full size.

    Directory Opus 13.10 Screenshot 1
  • Directory Opus 13.10 Screenshot 2
  • Directory Opus 13.10 Screenshot 3
  • Directory Opus 13.10 Screenshot 4
  • Directory Opus 13.10 Screenshot 5

What's new in this version:

Directory Opus 13.10
New Preferences options:
- Toolbar and menu buttons that switch into Power Mode are now hidden by default, as the mode is esoteric and has confused a lot of people.
- If you use Power Mode, please turn on Preferences / File Display Modes / Power Mode / Display Power mode toolbar buttons to restore the buttons.
- Added Preferences / File Operations / Copying Files / Metadata / Strip zone information (Mark of The Web) option. Allows the mark-of-the-web to be removed when copying downloaded files, even if other NTFS ADS data is preserved.
- Added Preferences / Viewer / Standalone Viewer / Slideshow / Cross-fade transition, to turn slideshow cross-fades on or off by default.
- Colors used to display viewer plugin error messages can now be configured (Directory Opus Colors / Viewer / Plugin - Errors).
- Added an option for new tabs to duplicate the current tab completely (including file selections and expanded folders) in Preferences / Folder Tabs / Folder Tab Bar.

Other new features:
- Added Signed by column for code-signed executables: Verifies the signature and, if it's valid, shows the signer name (usually publisher).
- Added Streams column: Shows the number of alternate data streams (NTFS ADS) a file or folder has, if any.
- Default toolbars: A command to re-open the last closed lister has been added to the File menu, and to the tab-bar right-click menu. (To update an existing File menu: Settings > Customize > Default Toolbars, then drag the appropriate item to your toolbar. To update the tab-bar right-click menu: Settings > Customize > Context Menus, then right-click Folder Tabs and choose Edit Alongside Default and drag the menu item over.)

Changes to commands:
- Set FOCUS=UtilityPane is now supported as a synonym for Set UTILITY=Focus. You can also use it to test if the panel already has focus.
- Copy WHENEXISTS=merge now works when the target is an archive specified via the CREATEFOLDER argument.
- Go TABLOCK has a new target parameter which makes it act on the command's source tab rather than the lister's active tab. (Useful for scripting.)
- Added Copy STRIPMOTW argument. Allows the mark-of-the-web to be removed when copying downloaded files, even if other NTFS ADS data is preserved.
- Copy QUEUE now has both quiet and noisy parameters, to override the Preferences setting both ways. E.g. Copy QUEUE=MyQueue,noisy will always show a confirmation when adding to the queue.
- Added Go NEWTAB=dupe keyword. Duplicates the current tab completely when opening a new tab.
- Added additional keywords for the Go TABDUPLICATE command. full - duplicate the full tab, including file selection and expanded folders. nolock - don't duplicate lock state. nocolor - don't duplicate tab colors. active - make the duplicated tab active.
- When a tab is fully duplicated (Go TABDUPLICATE=full keyword, or the "Duplicate" option for a new tab), the back/forward history list is now copied to the new tab.
- Added Go REFRESH expanded and noexpanded keywords. Allows the expanded folder state to be saved or discarded explicitly, overriding the Preferences flag.
- The Go DRIVEBUTTONS, Go FOLDERCONTENT, Go FTPSITELIST, Favorites and Recent commands, when generating dynamic path lists, now support KEYARGS mmb:... to specify additional arguments for when the generated buttons are clicked with the middle mouse button. For example, this will show a list of drives and open them in a new window on middle click (instead of the default new tab): Go DRIVEBUTTONS KEYARGS mmb:NEW
- Added Select PATH argument, allows selections to be restricted to files or folders whose location matches the specified path. Paths can be specified as absolute or relative (to the current folder). Use PATH . to specify items in the current folder (i.e. contents of expanded folders will be ignored). Supports wildcards.
- Added Go TABGROUPDESC argument, used to set a description when saving a tab group programmatically via Go TABGROUPSAVE.
- The dialog used by Copy CREATEFOLDER now has the same "read new folder" options as the normal Create Folder dialog (read, read into new tab, etc). Added READAUTO/K argument for Copy command.
- Added Prefs POS argument. Use when opening the Preferences, Customize and Scripts dialogs to control the position of the new window. Options are "lister" (open over the active Lister), "mouse" (open under the mouse pointer) or a specified position (e.g. POS=10,10).
- Clipboard COPYCOLUMNS can now copy entire columns of data without the cells having to be highlighted first (e.g. Clipboard COPYCOLUMNS=index:0/1/4,all would copy the full contents of columns 0, 1 and 4). Specifying column indices without the all keyword will copy data only from items that have at least one cell highlighted.
- Added NOTCOPYING flag for Select command. Will only select files that aren't involved in a copy job (either active or queued). E.g. SELECT ALLFILES NOTCOPYING.
- Added CLI QUICKFINDCLEAR command; clears FAYT match highlights from the file display (same effect as pressing Escape by default).

Changes related to Go OPENCONTAINER:
- The Go command's OPENCONTAINER and EXISTINGLISTER arguments now work better together.
- Go OPENCONTAINER=target,noselect now works as documented.
- Show VIEWERCMD=goto can now jump to an image by name. You can provide the full pathname of the image, just the name, or a wildcard pattern.

Evaluator:
- Added Rnd function
- Added IsDir and IsFile functions
- Evaluator clauses in functions and button labels (etc.) are now passed selbytes and totalbytes values, providing selected and total byte sizes. Note: Doesn't trigger folder size calculation, but will report folder sizes which have already been calculated.
- Evaluator clauses in functions can now enable quotes on multiple-filename variables by appending #q to the variable name (e.g. allfilepath#q).
- Evaluator code inside a @perfile block can now check the preparse_dummy bool value to see if it's being called for pre-parsing (instead of checking for the dummy filename).
- Evaluator control keys can now call the ShowTips() function to display the control key tooltip. This lets you create a control key using your own choice of keys to display the helper (rather than use the built-in "hold control key down" functionality).
- Evaluation columns can now use the function HasLabel() to see if the file has a specific label applied to it (e.g. HasLabel("green")).
- The Evaluator now has CRLF as a predefined value, expands to a string containing a carriage return + linefeed.

Scripting:
- Added OnConfigBackup and OnConfigRestore events
- Added DOpus.FlushConfig method: Forces any pending, unsaved Opus configuration data to be written to disk immediately
- Added Dialog.singleton property: Designed to make it easy to restrict a script dialog to one instance at a time. To use, assign your own (unique) name to the property before calling Dialog.Create or Dialog.Show. If the function returns false, it means the singleton dialog already existed, and your script should exit. The existing dialog will be brought to the front automatically.
- Added Dialog.state property: Returns "min", "max", "visible" or "hidden" to indicate the dialog's state.
- Added Dialog.WindowCmd method: Changes how a dialog is displayed. Takes a single string: "min", "max", "restore", "show", "showna", "hide", or "front".
- Added OrderedMap object: Has the same interface as Map, but remembers the order items were added rather than sorting by their keys. Create via DOpus.Create.OrderedMap method.
- All script methods/properties that accept a Map now also accept an OrderedMap.
- Script configuration items can now be specified using an OrderedMap, allowing them to be displayed in a custom order within the script's configuration dialog.
- Added FSUtil.GetSignature script method. Retrieves information about (and optionally validates) file signatures.
- FSUtil.OpenFile can now be told to exclude other readers (lowercase x in mode string) or writers (uppercase X in mode string) from accessing the file, if supported by the filesystem.
- FSUtil.Resolve has new c flag: Returns "canonical path", including expanding short 8.3 paths to their long equivalents.
- Added Control.AddText, ModifyText and RemoveText methods. Lets overlay text be added to an image-mode static control in a script dialog.
- Added Command.DivertClipboard method. Lets you divert text that would normally go to the clipboard (e.g. by running the Clipboard COPYCOLUMNS command) into a Opus variable.
- Added the OnQuickFilterChange script event. Is notified whenever the quick filter changes (e.g. from the filter bar) in a tab.
- Added script OnPeriodicTimer event. Allows scripts to have Opus call them periodically at a controllable rate. Use the DOpus.SetTimer method to create a timer, and DOpus.KillTimer method to cancel one (or all) timers.
- In script dialogs, Control.RemoveItem, MoveItem, AddItem and InsertItemAt now work on tab controls to let you remove, move and add back tab pages dynamically. All pages of the tab must still be added in the dialog editor, as before, but once the dialog is created you can use RemoveItem to remove one or more pages and add them back later if needed.
- Control.GetItemByName and Control.GetItemAt also work with tab controls now, to find the index of a tab by the name of its dialog (or vice versa).
- Markup text controls in script dialogs now have a Scrollbar property. If set to true, and the assigned text doesn't fit within the control, a scrollbar will be shown allowing the text to be scrolled.
- Added ScriptInitData.config_group_order property. This lets you control the order of configuration item groups for your script. To use this, set the property to a Vector object (created by the DOpus.NewVector) method, and push the group names onto the vector in the desired order.
- Added Func.qualifiers_raw script property. Provides the "true" key qualifiers that were held down when the script was launched (as opposed to the qualifiers property, which has any qualifiers used to launch the function filtered out).
- Added DialogListColumn.align property. Set to either "left", "right" or "center" to control column alignment.
- Added the script OnPowerEvent event. Lets a script receive notifications of system power events (e.g. when the monitor switches off, or when the computer changes from AC to battery power).
- Added PairedFolder.parent_level script object property. Returns the parent level number of the paired folder if it was necessary to go up in the tree to find a match. Returns 0 if an exact match was found.

Other changes:
- Folders added to the Preferences / Folders / Special Folders / Other cloud folders list now appear in the tree's Cloud Storage branch
- Libraries and File Collections now support shell columns (i.e. those added via Preferences / File Display Columns / Shell Properties)
- Improved handling of portable devices (MTP) that put path separator characters in the device name (e.g. Samsung phones in some cases)
- The advanced filter control can now match on the value of Evaluator columns


Directory Opus 13.8
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 FilesEverythingEverything.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.

Changes to commands:
- 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.
- The internal viewer's slideshow can now use a crossfade transition between images. Activate it using the Show SLIDESHOW=fade argument. The Show VIEWERCMD=slideshow command can also specify fading, e.g. Show VIEWERCMD=slideshow,fade,on

Scripting improvements:
- 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 Msg.name 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 Msg.data 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 Dialog.FlushMsg() script function. Flushes all messages from a dialog's message queue.
- 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.
- Added Image.type property, reports the type of file the image was loaded from (if known).
- Added EverythingInterface script object. Create using DOpusFactory. Has properties to tell you if Everything is running and if it's configured in Opus to autorun or not. Also has methods to start it (if it's set to autorun) and stop it, run queries and send it commands.
- Added Command.RunAsync and RunCommandAsync script methods. Runs the commands and returns immediately rather than waiting for them to complete.
- Added evaluator SysInfo("VerBuild") value.

Other minor changes:
- 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 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
- Improved performance of cached archive thumbnails (particularly on network drives).
- Go FOLDERCONTENT now supports embedded functions, to enable the behaviour of the generated file buttons to be configured.
- 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.


Directory Opus 13.7
New:
- Added Preferences / Toolbars / Options / Move top-row toolbars into the window title bar option. When turned on, the top row of toolbars will appear in the Lister's title bar rather than below it. Any blank spaces in the toolbars (e.g. Spacer buttons) can be used to drag the window. The window icon (top-left) can also be used to move the window if Shift or Ctrl are held down (in case there's nowhere on the toolbar that can do it).
- Added separate color options for toolbars that have been moved to the window title (Preferences / Colors and Fonts / Directory Opus Colors / Toolbars)
- Added Preferences / Folders / Virtual Folders / This PC / Drive size units option. Lets you select a specific size unit (KB/MB/GB/TB) for drive sizes shown in the native This PC folder.
- The Copy of and Shortcut to templates now support %3 to insert the duplicate file count without surrounding parentheses, and can also use the evaluator to generate new names for duplicate files. To use the evaluator, begin the clause with a = and return the new name. Variables provided are name, ext (file extension - for information only, it will be added automatically so the eval clause should not add it) and count (duplicate name count, begins at 0).
- Added a new option for single-click mode; Preferences / File Displays / Mouse / Expand sub-folders on hover lets you select whether sub-folders are expanded on hover or if they still require a click to expand.

Changes to commands:
- The Set AUTOSIZECOLUMNS command can now autosize columns selectively rather than only being able to autosize all of them. For example, Set AUTOSIZECOLUMNS=col:name,col:desc to resize just the name and description columns. The override flag makes it ignore the min/max limits for the columns being resized.
- Added Set THUMBNAILBORDERS command. Allows the thumbnail border flags under Preferences / Colors and Fonts / Directory Opus Colors / Borders to be toggled via a command.
- Added Set BACKGROUNDIMAGE and BACKGROUNDIMAGEOPTS command arguments. Allows the various Lister background images to be changed via a command.
- Spacer buttons can now be edited, and have a new option to show a label. When turned on the displayed label will be shown rather than an empty space. They behave very much like Label buttons in this mode; the main differences are that Spacer buttons can be set to full-width or a specific size, whereas Label buttons always auto-size to show the specified label.
- Both Label and Spacer buttons (with labels) can now use the evaluator, by prefixing the label definition with a = character. The evaluator is now given the lister_title value in toolbar-related contexts; returns the current window title of the Lister.

Scripting improvements:
- Added script object HTTPRequest. Provides a simple object for sending asynchronous HTTP requests and retrieving the results. Use the Dlg.NewHTTPReq method to create the object.
- Changes to button controls in script dialogs to support images and control the appearance
- The FSUtil.ReadDir script method now accepts the p flag to suppress password requests (e.g. when reading encrypted ZIP files)
- Script add-ins now support //@@include as well as @include to use script include files

Other minor changes:
- Changes to improve support for IMEs which generate Unicode surrogate pairs, including fix for Chrome crash
- Improved support for YCCK-encoded JPEGs and EXIF orientations involving reflections
- WebP files are now recognised by file content, allowing WebP files with incorrect extensions (e.g. .JPG) to be displayed
- Opus now traps drag&drop to the Windows fonts folder (within Opus itself) and uses its own font installation function. Should prevent crashes some people have experienced on Windows 7 when installing fonts in this way.
- Evaluator SysInfo() function has new "Version", "VerHigh", "VerLow" and "VerBeta" values it can return
- The custom Lister title now accepts the %F code to display the full pathname of the selected file
- The search field now allows a Global Everything search (if Everything is installed) when in non-filesystem locations like File Collections, rather than being disabled
- Changed behaviour of inline rename popup history list to make it more like Opus 12 - the filename is updated in real time as items are chosen from the history list
- Input fields that support the keys configured in File Operations / Renaming Files / Control Keys (e.g. inline rename) can now show a tooltip of the available keys, triggered by holding down the Ctrl key by itself


Directory Opus 13.6
New:
- The Filter Bar's "match any word" mode is again automatically turned off for wildcard patterns that start with "~(", making negation possible again without manually toggling the option
- Fixed scripting Format properties group_order and group_combine which reported incorrect values
- Fixed licence manager appearing in a mix of dark and light modes if it appeared early during startup because an evaluation certificate was about to expire


Directory Opus 13.2
- Fixed crash on startup in Licence Manager if user had an old Opus 12 cert and for some reason the Opus 13 stock cert couldn't be found


Directory Opus 13.1
Highlights:
- Dark Mode and Themes
- Fonts
- File Copying
- Everything (Indeed Search)
- Epandable Folders
- Favorites Bar
- Automatic Formats
- Paired Folders
- Selection Summaries
- Lister Defaults
- Folder Tree
- Thumbnails
- Folder Tabs
- Find As You Type (FAYT)
- Viewer
- Image Converter
- Metadata Display
- Metadata Editing
- Rename
- Find Files
- Duplicate Files Finder
- Synchronize
- Columns
- Preferences
- Customize
- Script IDE


Directory Opus 12.33
- Drag & drops from XNViewMP should now work
- If a blocked preview handler (e.g. PowerToys PDF) is encountered, Opus will now check for common alternatives to use instead, rather than failing to show the file. (The same as it does if no preview handler is found at all. So enabling the PDF preview handler within PowerToys will no longer prevent Opus from viewing PDFs, as long as one of the known alternatives is available.)
- Updated RAR and 7Z DLLs

Fixed:
- Fixed PDF metadata not roundtripping correctly for strings containing certain characters
- Fixed PDF metadata not handling UTF-16 encoded as ASCII hex bytes
- Fixed problem decoding some JPEG images which could leave pink dots on the left-hand column
- Fixed crash when using FAYT to trigger Windows Search from a locked folder tab


Directory Opus 12.32
Added:
- Resolution to the non-editable metadata section for image files
- workaround for duplicate Notepad++ context menu item on Windows 11

- Fixed file type editor crash when holding Ctrl or Shift and scrolling the mouse wheel over the list of actions
- Change to help with performance issue when UNC paths were added to Favorites and the tree was configured to show favorite folders in different colors
- Blocked PowerToys Source Code (Monaco) viewer by default, preventing it from taking over text files in the preview pane
- Fix for crash if a script add-in closed the file display while processing an OnBeforeFolderChange event
- The NanaZip context menu now works properly in Opus


Directory Opus 12.31
The following changes were part of the 12.30.1 - 12.30.3 beta updates:
- Fixed problem reading empty directories with SFTP servers which return a completely empty list for them (missing the usual "." and ".." entries)
- Fix for viewer status bar's text potentially appearing bold (overprinted) if status icons were displayed on it
- Added a kludge to block duplicate DropBox context menu items on Windows 11. (The actual cause is a DropBox bug)

Scripting:
- DialogListColumns object has new GetDisplayOrder and SetDisplayOrder methods for changing the order columns are displayed on-screen, including the ability to move secondary columns before the primary column which usually appears first
- Added Control.redraw property. Set to false to disable redraw in some types of control (e.g. listviews) while making multiple changes to them. Set back to true to redraw changes.
- File objects (representing open file handles which are being read/written) can now be passed directly to Command.AddFile and similar methods without conversion. (Provided the File object has a path; not for virtual files that only exist in memory.)
- Fixed rendering issue with group boxes with no title set in script dialogs
- Removed Open Office extensions from the default ActiveX viewer extension list, as it's unlikely that kind of viewer is installed for them these days
- Improved viewer compatibility with FoxIt PDF preview handler. (Now works again without having to move the .PDF extension to FoxIt's other handler.)
- Rich Text files (.rtf) with names starting "~" are no longer sent to preview handlers in the viewer pane. Microsoft Word uses this pattern for temporary files while editing documents, and Microsoft's preview handlers go wrong (freezing or opening unwanted conversion dialogs) when asked to view the files.
- When in multi-column sort mode, the Set SORTREVERSE=Toggle command did not properly update the arrow in the sort header that indicates the overall sort direction.
- In a dual Lister with two folder trees, clicking on an item in the inactive folder tree no longer causes it to "jump" to show the previously selected item before reading the new folder.
- The icon size is now correct on high-DPI systems when changing view modes in a hosted virtual folder (e.g. Recycle Bin.)

Windows 11 context menus:
- Fixed items for some Store apps not appearing if they used a new method to register themselves against file extensions
- Fixed for unlabeled sub-menus for OneDrive and iCloud appearing. (These didn't appear in File Explorer, didn't work when clicked, and looked wrong due to having icons without labels. We now filter them out.)
- Extended the Delete command's SKIPNOTEMPTY and FAILNOTEMPTY modes to skip or error on files, including zero-byte files. (These modes are for cleaning up empty folders after other commands -- e.g. moving everything up a level -- so passing a file to them would be unexpected and will now be treated as such.)
- Fix for Explorer.exe crash which could happen when dragging a file to the Windows desktop using the right mouse button. (Fix requires reboot or log-out after installing the update.)

The following changes are new for 12.31:
- You can now block "Packaged COM" context menus (the new style for Windows 11) by name using the Preferences / Miscellaneous / Advanced [Troubleshooting]: ignore_context_menus value. For example, to block the context menus added by Skype, you could enter "Microsoft.SkypeApp*". Use context_menu_debug to find the name of the particular package you want to block.


Directory Opus 12.30
- Improved viewer support for Photoshop PSB files (like PSD but larger/rarer). The standalone viewer can now open them on double-click and will include them in the next/previous image list.
- Blocked the PC Revive shell extension by default, due to it breaking other things


Directory Opus 12.29
- Updated LibRaw, including support for new OM-1 cameras
- FLAC/Ogg publisher data now writes "ORGANIZATION" tag for better compatibility. (Both "ORGANIZATION" and "PUBLISHER" work when reading tags.)
- The viewer pane will now allow .docx files which have been incorrectly named .doc to be passed to the MS Word preview handler
- Go NEW=x,y now accepts negative coordinates
- WAV waveform thumbnails in IEEE floating point format are now supported
- SSH connections are now treated as case sensitive by default in case we aren't able to auto-detect it
- Fixed incorrect metadata shown for audio files whose metadata comes from the Windows shell (e.g. .m4a files)
- Fixed range selection via Shift + Page Down which, with the file display grouped and some of the groups collapsed, would not always immediately repaint all items to reflect their new states
- Fixed mouse cursor being confined until you alt-tab'd to another window if you opened a color picker, dragged its sliders with the mouse, then closed it with the Esc key without releasing the mouse button
- Fixed problem with separators going missing if the buttons they were attached to were hidden (e.g. an Undo LIST command that didn't generate any items.)
- Fixed problem with range selection in details mode when selecting a range by shift-clicking and then pressing Shift+Up to deselect the last item in the range
- Fixed problem where the path-to-selection highlight in the folder tree could show in the wrong color if the tree was locked
- Fixed problem where the busy indicator in the location field could keep spinning forever if a script column called Script.RefreshColumn in certain circumstances
- Fixed "Stretch background" not working in floating toolbars
- Fixed problem setting EXIF dates which meant Adobe Bridge did not recognize the "Date Taken" field ("DateTimeOriginal") when set through Opus
- Setting the EXIF Date Taken ("DateTimeOriginal" tag 0x9003) field in Opus now applies the same value to the EXIF "ModifyDate" field (tag 0x0132). Previously this would be set when changing the modification time of the actual file, but it makes more sense for it to mirror the DateTimeOriginal field
- The "Ignore diacritics" option in the Filter Bar now handles the Norse O correctly (or at least, it's now consistent with the similar option for the Find As You Type field)
- Fixed problem with Explorer Replacement when clicking on folder links in Excel
- Fix for CreateFolder command, when run via scripts, creating things below the selected folder if there is one and a name (not full path) is specified
- Simple OK/Cancel dialogs that respond to the Y or N keys now only do so on key press, not key release (in case the same key is used to launch the function.)
- Fixed problem with script dialog static controls which could display text in the wrong color in some situations
- Fixed TortoiseGit showing additional, non-functional, context menu in Windows 11
- Fixed problem opening folder links containing spaces from Outlook emails


Directory Opus 12.28
- Improved layout of button editor menus on low resolution (~720p) screens
- The archives plugin now filters the file attributes it returns to Opus to avoid ones that can appear in archives but don't make sense in them and cause problems (e.g. "offline" and "pinned")
- Fix for situation where a credentials prompt wasn't triggered for some network drives that needed one
- Fixed problem which meant desktop double-click handling would stop working if Explorer was restarted
- On Windows 11, the OneDrive commands to pin or free up space now work recursively on folders to match Explorer's behavior
- Fixed the Toolbar command ignoring its POS argument if the first coordinate was negative
- If a Style is saved with the view mode option turned on, but a tab group selected, the view mode setting is now correctly ignored (since view modes in that instance are supposed to come from the tab group)
- Fixed Open With > Paint.Net opening the file twice with newer versions of PaintDotNet
- Fixed a problem where the folder format could go wrong if a style that was set to turn the format lock on opened a tab group
- Improved performance of context menus in some situations
- Updated WebP plugin, which fixes some images not loading
- Fixed context menu items registered under HKCR* appearing for directories when they should only appear for files
- Fix for OneDrive context menus not appearing when "Files On Demand" is turned off
- Fixed @if not working on Viewer toolbar buttons if the only command being run after them was a Show VIEWERCMD=... variant
- Show VIEWERCMD=fullscreen,on and ...,off can now be used with the viewer to always get a particular state rather than toggle the current state
- Fixed issue where nothing happened if some Control Panels were opened in particular ways (e.g. "Manage BitLocker" from the drive right-click menu)
- Fix for standalone image viewer opening on the wrong screen if it was previously moved and closed near the right (or bottom) of another screen
- Fixed incorrect behaviour when renaming files in FlatView when two files in different folders ended up with the same name
- Fixed problem with undoing a create folder
- Fix for crash which could happen when undoing a rename
- Fix for "New" context menu excluding items without descriptions in the registry
- Fix for bogus Open With menu items due to uninstalled Microsoft Store apps


Directory Opus 12.27
- Improved file context menu de-duplication. While building the menus, some registry keys were processed more than once. Menus should now open a little faster. This also fixes the problem introduced in 12.26.2 beta where a single item added via the File Types dialog could appear in the menu more than once.
- Fixed bug introduced in 12.23 where the Viewer Pane / Display Shell Icons checkbox did nothing and the adjacent Display Shell Thumbnails checkbox controlled both settings


Directory Opus 12.26
- Added support for the new Windows 11 context menu system. This makes context menus for things like OneDrive and WinRAR show up again on Windows 11.
- Added SetAttr PIN and DEHYDRATE arguments; for cloud files, this implements the same logic as the "Always keep on this device" and "Free up space" context menu commands.
- Lister windows now take on the current folder's icon by default. (In a dual-display or multi-tab window, the source active folder tab's icon will be used.) A new option under Preferences / Display / Options lets you switch back to the color-coded Opus logo if you wish.
- Added metadata panel support for Composer, Conductor and Encoded By fields on FLAC, OGG and APE audio files. Also tidied up where the Encoded By data comes from for FLAC files.
- CreateFolder READAUTO now has left and right parameters which are like the old dual but always read the folder into a particular side.
- Added Properties SETLABELREMOVE argument; similar to SETLABELTOGGLE, except it only turns the specified labels off, it won't turn them on.
- Properties ADDLABEL, SETLABELTOGGLE (and SETLABELREMOVE) now accept shift/alt/ctrl arguments to allow any of the three qualifier keys to be chosen.
- Fix/workaround for Windows 11's bug which caused the Desktop Double-Click feature to open Listers from just a single-click if desktop icons were turned off. If you still see an issue after installing the update, please try rebooting, although it isn't normally needed.
- Added support for quotes around parameters given to @ifexists, @ifrunning, and @script. (Quotes are not required for any of them, but now you don't have to remember that.)
- File display scrolling via the mouse wheel is now capped so it won't scroll more than a page, even if the mouse wheel is configured to scroll more lines than are visible. (Mainly helps with Details+Thumbnails mode and large thumbs combined with a wheel configured to scroll a lot more lines than usual.)
- Fixed incorrect display of multi-value ID3v2 tags written by Media Monkey.
- Fixed situation where the standalone viewer's metadata editor still said changes were pending after clicking Apply.
- Improved drag & drop editing of Favorites list in Preferences. As well as fixing a couple of bugs, it is now possible to control whether an item is dropped into or next to a Favorites branch by dragging it to the left or right of the branch's label. (The drop indicator lets you see what will happen before releasing the button.)
- Fixed Add To Favorites dialog getting confused by Favorites tree branches with colons in their names, and made name filtering consistent between that dialog and the editor in Preferences.
- You can now use the Copy MAKESFX HERE command on archives within collections (e.g. Find Results), where it will create the new exe in the same folder as the archive. (Similar functionality already existed for extracting archives in collections to their own parent folders.)
- Added workarounds for handling shortcut files under very long paths.
- Find (Simple) now ignores the Type drop-down being set to File Type Group if no group is selected in the drop-down next to it.
- Menus listing columns from multi-column scripts are now sorted by name. (This was incorrectly listed in the 12.21 release notes before the actual change was made.)
- Where two paths point to the same drive via the Windows subst command, moving files between them is now done via a fast rename rather than a slow copy-then-delete.
- When undoing a folder creation, the deletion will do nothing if the folder contains any files or non-empty folders. This is to avoid accidentally deleting items created after the folder was created. ("Empty folder" here means a folder with zero files below it and at most one child "empty" folder which itself is either empty or has one empty child folder, and so on, recursively. So you can still undo a multi-level folder creation, as long as nothing extra has been created within the directories.)
- You can now use the Copy MAKESFX HERE command on archives within collections (e.g. Find Results), where it will create the new exe in the same folder as the archive. (Similar functionality already existed for extracting archives in collections to their own parent folders.)
- Fixed problem with Rename command where if you used the FROM argument without the PATTERN argument, and the FROM argument contained a wildcard it would try to use that as the value for PATTERN even if it contained wildcard characters that PATTERN doesn't support. Now it will only do this if the only wildcard char used is a *.
- If Rename uses FROM as the value for PATTERN, it now unescapes any wildcard chars that are also valid filename chars automatically.
- Fix for rare crash in the sound player when a sample stops playing and auto-close is on.
- Viewer plugins that return a text stream for another plugin (e.g. the text viewer plugin) to display can now return Unicode/UTF-8 text in the stream without a BOM.
- URL targets are now displayed for .url files with very long paths. (Workaround for Windows limitation.)
- If you right-click an archive and choose "Extract To..." from a dual-display Lister, the Select Destination Folder dialog that opens will now default to the path in the other file display.
- Thumbnails generated via Windows now go one at a time, as the OS seems to have issues with multiple simultaneous requests. (This was already being done for Folder Thumbnails, but is now done for all thumbnails which come via the shell. Normal image files are not affected, as Opus generates thumbnails for those itself.)
- The Display extended sync attributes for cloud folders option was backwards. Note this has been reset to off for everyone.
- Fix for nothing happening on drag & drop of individual pages from PDF-XChange Editor's thumbnails view into Opus
- Fixed bug which could cause the progress dialog to appear unnecessarily behind the delete confirmation dialog
- Added Windows 11 support to the WinVer script object (win11 and win11orbetter properties).
- Scripting FSUtil.SameDrive method has a new s flag to test if two paths point to the same drive via drive letters made via the Windows subst command.
- Script listviews can now use 0 as a group id


Directory Opus 12.24
Fixed:
- {file|noext} not adding automatic quotes when needed
- issue with local HTTP help where some internal page links used Javascript that didn't work locally
- Preferences / Miscellaneous / Advanced not filtering itself if the search cache existed and a Preferences search matching the Advanced page was done before it had been displayed.

- Added PDF-XChange Column Handler shell extension to the default blocklist, as it was causing delays reading the first folder after a reboot. This only affects the custom file display columns it added, which we don't think many people were using. Other PDF-XChange functionality, such as the Preview Handler, is unaffected.
- If you need to unblock it, add {D8716A0E-4E9F-4D3F-BF1B-3460D86BB310} to Preferences / Miscellaneous / Advanced [Troubleshooting]: allow_context_menus


Directory Opus 12.23
- Updated libraw from 0.20.0 to 0.20.2
- Modified Raw Digital Camera plugin to default to the old dcraw code for .ORF images, due to problems found with images from some cameras and libraw
- Scripting: Fixed some cases where item.realpath returned the path as a string instead of a Path object as documented


Directory Opus 12.22
- Fixed icons in some dialogs getting clipped slightly at 125% DPI scaling
- Made it easier to edit a new, empty toolbar docked to the side of the screen. Previously, only a narrow strip of the visible space responded to right-clicks and drag & drops until the first button was added; now the whole toolbar does
- Simple request dialogs now use minimal widths for multi-line messages
- Added mitigation for something external to Opus setting ACDSee32.exe as the double-click event for images, even on machines which do not have ACDSee installed
- Folders prevented from auto-loading by Preferences flags now do a proper evaluation of their folder format once they are loaded
- The script Dlg.RunDlg method will now show the dialog if it has not been shown already
- Fixed rare issue decoding certain JPEGs
- The Folder Format group Collapse checkbox is now ignored when a file display is in List or Tiles (Vertical Layout) modes, since they do not support collapsed groups. Similarly, if you go to Preferences and turn on Tiles / Vertical Layout, all groups in Tiles mode file displays will be expanded automatically
- Fixed List mode scrollbar appearing before it was really required if the file display was grouped
- If the preview pane falls back on a shell thumbnail, it will now request one the size of the screen instead of something 256x256. This makes the Microsoft Raw Extension usable as a viewer within the Opus preview pane. Also fixed an issue where some file types loaded via shell thumbnails would be rotated incorrectly
- Exporting a User Command now works even if it has illegal path characters in its name. Those characters are now also filtered out when editing user command names, since they could cause other problems
- Adobe Illustrator .AI files are new always opened via temporary copies, like .PDF files before them, due to a lot of PDF/AI viewers ignoring the Preview Handler specifications about not locking the files they view
- Fix for modes other than Details/Power, where shift + cursor did not select the expected range if you had just changed the selection via certain commands
- The "close" event for the Tab.WatchTab script notification system wasn't being sent
- Fix for slow scrolling in folders with a large number of files when labels using filters were active
- Menus listing columns from multi-column scripts are now sorted by name
- file:// URLs pasted into the path field are now converted to normal paths. (Note: Typing them by hand, rather than pasting, doesn't work, but we can't think of any reason you'd ever do that.)
- Added Copy WHENEXISTS=recycle option (can be combined with others, e.g. WHENEXISTS=replace,recycle). Replaced files will be deleted to the recycle bin if possible. Note that Undo can not be used to restore these files automatically, however you will be able to retrieve them from the recycle bin manually
- Fixed crash that could occur in a Go FOLDERCONTENT-generated menu if you opened several nested submenus and then right-clicked on one to show the context menu
- The Sort By and Group By menus now list columns in the same order as the file display, instead of alphabetically
- Go FOLDERCONTENT now treats shortcuts to folders like folders. (Unless noparselinks is specified.)
- Localized folder names are supported again for profile folders (etc.) which have been moved to other drives
- Added workaround for Windows issue where VLC's file type context menus do not work if VLC is not the default video player
- Text pasted into the User Command name field is now processed the same as text typed into the field
- When the folder tab bar is on the left or right, it can now be resized using the Set TABWIDTH command (in addition to dragging and double-clicking the splitter, as before). e.g. Set TABWIDTH=auto,both or Set TABWIDTH=widest can be used to make both tab bars the same width in a dual-display window. See docs for full details
- A dynamic list of user-defined aliases can now be added to a toolbar or menu using Favorites ALIAS=list. You can also specify ALIAS=list,all (all aliases) and ALIAS=list,builtin (built-in aliases only)
- The MTP "Can Delete" flag is now mapped to the Read-Only attribute when copying files from MTP devices (assuming Opus is configured to preserve attributes)
- Fix for unnecessary errors in the script log when scripts which use Shell Properties (File Explorer columns) ask about files within archives and other things which the shell doesn't understand
- Improved performance when using script columns in folders with a very large number of items
- Fixed script columns not always auto-resizing for the last data which came back from the script
- Commands like Clipboard PASTE AS C:test now work when the current folder is a plugin archive which doesn't support pasting text/image data
- Disabled the OneDrive bug mitigations as they seem to be no longer needed. Detailed sync status and thumbnails should now work again as they did before Microsoft broke them
- Sub-Folder/File count columns now auto-size correctly again
- Sub-Folder/File count columns now remain blank until calculated (instead of showing zero while calculating)
- For scripts which use Shell Properties (File Explorer columns), removed a second source of potential errors which most scripts would not handle (nor want to handle)
- The option to color folders which are Favorites now works with Favorites defined using env-vars and aliases
- Numeric sorting now works with any length numbers (previously it would only work reliably for 19 digits or so)
- Fixed script test-runs from the button editor showing the wrong line numbers in error messages if they began with // style comments
- Changes to help avoid files being deselected when the Image command modifies them in-place
- The recently-added options for blocking Ctrl/Shift + Mouse Wheel now apply to the Icon/Thumbnails modes as well as Details/Power modes
- Fixed crash which could happen if you used Shift + Mouse Wheel to move back or forward through the history list and span the wheel faster than the folders could be read
- AudioTags plugin now treats .m4b as an alternative extension for .mp4/.m4a audiobooks. (Read-only.)
- In the Rename dialog's preview list, when editing a single file name directly with macro mode turned off, the line being edited is no longer moved slightly to the left
- In the Duplicate Files panel, fixed a browse-for-file dialog appearing instead of a folder dialog if you added the new folder in a particular way
- Fixed a bug where junctions to volume mount points were wrongly considered recursive, which meant the Find tool would not look beyond them
- Fixed the filter bar's Ignore Diacritics option making grp:Vidéos and similar not work

Raw Digital Camera plugin:
- Updated Raw Digital Camera plugin with CR3 support
- You can now specify whether a raw file extension is handled by the newer LibRaw code or the older DCRaw code. Most extensions go through LibRaw by default, but we provide the option to use the old code in case the new library doesn't work with a particular camera. (Please let us know if that happens, so we can try and fix it. We may remove the old code in the future.)
- You can now configure the PNM file extensions (.pnm, .pgm, .ppm by default)
- Removed the old grayscale interpolation options for raw camera images, as they did not map easily to the new library. We doubt anyone was using these but please let us know if you were and need them back
- When using LibRaw, Unicode paths now work for ICC profiles and bad pixel files. (Image paths were already fine.
- Button tooltips now limited to 1024 chars to prevent lockups with ridiculously large tooltips
- The Release Date field now does time zone conversion on values which come from the shell (video files) or WMA API, which both use UTC
- You can now add Folder Tab Groups to the taskbar jump list
- Increased the Create Folder dialog's maximum text length, when in multiple folder mode, from 32 KB to 512 MB
- Removed the Folder Tree's "fully automatic horizontal scrolling" option. (This was based on a Windows feature which was introduced in Vista but then partially broken in Windows 10, or possibly even Windows 8. We doubt many used the option as no one noticed or reported that it was broken for so long, and it never worked that well in the first place. Probably also why Microsoft themselves stopped using it in Windows 7.)
- The active tab group name for the right file display is now cleared if you close the right file display entirely. It is also restored if you re-open the right file display using Set DUAL=Toggle,ToggleLayout or similar
- Menus generated by Go FOLDERCONTENT are now sorted according to locale rules. (e.g. Acker and Äcker now sort next to each other in European locales.)
- If you add or remove a script package (.osp file) containing icons, Opus automatically loads or unloads the affected icons again
- You can now cancel a queued file copy from the queue confirmation dialog
- The Add To Archive dialog's filename field no longer auto-selects the filename stem after you paste test into it, unless the result of the paste was a full path which had to be split between the path and name fields
- Simple, single-file inline rename operations are included in the File Log again if Rename is on in the logging options, without needing to turn on Include all files renamed by wildcard as well
- Fixed some potential issues with Go DUALPATH commands
- Fixed some rare/potential cases where a folder change could wait forever if something failed

Added DOpus.filetypegroups property; returns a FiletypeGroups object representing all configured file type groups:
- Can be enumerated as a collection of FiletypeGroup objects
- The GetGroup() method returns a single FiletypeGroup object by name (translated name or native English name) or False if not found
- The Translate() method takes an English name for one of the default groups (e.g. Movies) and returns the translated name (e.g. Vidéos)
- The MatchExt() method returns a new FiletypeGroups object containing only the groups that match the supplied file extension

The FiletypeGroup scripting object:
- Can now be enumerated as a collection of strings (one for each file extension)
- Has new tooltip and tiles properties
- The new MatchExt() method returns True if the group matches the supplied file extension
- The Item object now has a new groupsobject property which returns a FiletypeGroups object rather than a Vector (which is what the existing groups property returns)
- Added Lister.tabgroupleft and tabgroupright properties which give the names of the last folder tab groups (if any) loaded into each side
- Fixed scripting SetClip issues with some character/locale combinations
- Added Availability filter type to the advanced filter control
- To work around a bug introduced by Microsoft in Windows 10 v2004, Opus no longer uses DDE when opening folders from the desktop with Explorer Replacement turned on. The actual observable behavior should be unchanged
- Fixed cosmetic/layout issue in config restore dialog (and possibly others) when translations had wider checkboxes than expected
- Fixed Show PLUGINLIST
- Fixed scrolling/painting problems after using the Duplicate Finder with Sort newly created and copied files turned off
- Fixed problem using copy & paste between Opus running through TeamViewer and Opus on the local machine
- EXIF tags written by Opus no longer have a UTF-8 BOM prefix
- Fixed problem with @hidenosel and similar not working correctly in a right-button drag and drop context menu if the drop originated in a different Lister
- Added DOpus.LoadThumbnail method, allowing a script to retrieve a thumbnail (which can be displayed using a static control in a script dialog)
- Added Msg.qualifiers property for script dialogs
- The DialogListItem.icon property can be set to "dir", "file", "ftp" and "ftps" for default icons
- Fixed a problem where Msg.tab could return a non-functional object in some cases
- Fixed problem with script dialog listview items displaying in incorrect colors in some cases
- Improved handling when moving folders up to parents. The change that was in 12.20.1 could leave empty folders behind in certain situations, which no longer happens
- Added support for Visio documents to the metadata panel
- Added workaround for the Visio preview handler hanging Opus
- The Preferences / File Displays / FAYT and Filter Bar Keys / FAYT close timeout value can now be set to fractions of a second
- Fixed problem where advanced find filters using script columns could occasionally lose track of the script column they were set to match on
- Fixed a problem where label filters set in the folder format would not be reevaluated when a file changed if there were no global label filters defined
- Metadata should work for .vnd Visio files now as well as .vndx
- Alt + Left Double-Click file type events can now be triggered via Alt + Return. (This previously only worked in Details and Power modes.
- Fixed the Preferences / Viewer / Mouse Buttons / Accumulate wheel movements option not being saved/applied correctly


Directory Opus 12.21
- Fixed minor issue with full-width spacers on docked, auto-hide toolbars with stretched background images
- The DialogListItem.disabled script property didn't work for reading the disabled state in all cases
- The DialogListItem.checked script property only returned true or false, rather than the correct numeric value
- The DialogListItem.group script property now works properly to assign a list view item to a group


Directory Opus 12.20
- Fixed copy queue buttons looking incorrect at 125% DPI scaling
- When thumbnails have rating stars overlaid, the stars are no longer drawn higher up if the filename is wrapped to multiple lines
- The bars drawn by Preferences / File Display Modes / Thumbnails / Overlay relative dimension bars now scale their thickness for high DPI


Directory Opus 12.19
Changes:
- Added a command to delete the current folder's format without showing any UI. Also made it possible to change the view mode and save a new format for the current folder in a single command
 - Added cloud_sync_paths option to Preferences / Miscellaneous / Advanced. Lets you specify folders that will be treated as cloud sync so that Opus supports status icons etc in them.
 - The breadcrumbs field's dropdown menus now indicate the current path in bold
 - The PowerShell Here command now works correctly when the path contains square brackets and other wildcard characters
 - Shortcuts to folders are no longer forced to use the shell's folder thumbnail style if you have configured Opus to use its own
 - Added workaround for Windows bug which meant Listers did not resize properly if you used Shift+Win+Left/Right to move a maximized Lister from a monitor with no taskbar (or docked toolbars/appbars) to a monitor with the taskbar.
 - Fixed Metadata Pane column headings not being wide enough if some or all of the categories were collapsed when the pane opened
 - Fix for rare crash when opening a Lister or the folder tree
 - The Select Files simple dialog now allows the wildcard syntax for matching a file type group. e.g. grp:Images.
 - Fixed @hideifpathr:^C: not working correctly
 - The Creation Date columns are now available for MTP devices (whether they work or not is up to the device, but you can now turn them on)
 - Viewer toolbar now includes a Full Screen button at the top level. (To update your existing toolbar, right-click an empty space on it and choose "Factory Reset this Toolbar")
 - The Mixed DPI Mitigations setting, added in 12.18 but off by default, now has an "automatic" mode, which is the new default. In this mode, the mitigations are turned on when a mixed DPI system is detected, and turned off otherwise. The setting is also now hidden on older versions of Windows which don't support mixed DPI
 - The advanced slow_dblclk_rename option now affects Power Mode
 - Reset focus entry when sorting file list now applies to Thumbnails, Tiles, Icons etc. as well as Details and Power modes
 - @ifset:METAPANE=off now works
 - Added support for Ctrl-C on collection items and then Ctrl-V into the Path Field or Create Folder dialog. (This already worked for normal files/folders)
 - You can now select all files in Flat View and move them to the source folder to flatten everything without having to worry about de-selecting the files which are already directly below the source folder
 - Fixed a problem with Find where if you ran several finds in quick succession, it could seem like no results were returned
 - Fixed problem with Libraries in tree, where if a library sub-folder was selected when the tree opened, it would be inserted immediately under the library in the tree rather than in its correct member folder (assuming separate member folders is enabled)
 - Fixed problem which caused function dialogs owned by the Lister (rather than a progress dialog) to be destroyed when the Lister was closed
 - Fixed crash introduced in 12.18 which could occur if new files were added to the folder while it was grouped and the last group was collapsed
 - Fix for crash triggered by certain JPEG EXIF data
 - Added some extra safety around the Lister being closed while a context menu is open. (Should be impossible, but could happen due to 3rd party menu extensions, perhaps)
 - The folder tree's Favorites branch now shows the special icons for file collections and sub-branches of favorites, instead of generic folder icons. The Favorites list in Preferences now shows any special icons for folders which were added via path aliases or env-vars
 - The Add to Archive dialog now supports aliases in the path field. Also improved handling of tab key when the path completion drop-down is visible
 - Possible fix for viewer/thumbnail code getting stuck on particular MP4/MOV files
 - The Brands ICT .msg preview handler now works in the viewer pane
 - Fixed Go FDBBUTTONS choosing the wrong icons in some cases
 - Commands which generate sub-menus on toolbars now always put the labels of items inside the sub-menu on the right. (Items at the top level still inherit the label position of the button that generates them.) This affects Favorites, FTP Bookmarks, Tab Groups, Layouts, Styles, and Rename Presets. (Other things which generate sub-menus were already like this)
 - Rename's Regular Expression + Find And Replace mode no longer requires brackets around expressions using the | OR operator
 - Rename's Regular Expression + Find And Replace mode no longer has problems with more than seven capture groups


Directory Opus 12.18
Changes:
- When in Preferences / Folders / Folder Formats, the existing format's page override checkboxes are now preserved when adding it as a new Favorite Format or pasting it as a new Path Format
- The new "mixed DPI mitigations" setting is now off by default, after a couple of people reported problems with it in the betas. It can still be turned on via Preferences / Miscellaneous / Advanced for those who want/need it


Directory Opus 12.17.0
- Change log not available for this version


Directory Opus 12.16.0
Changes related to Lister Styles which specify Folder Tab Groups:
- The Close existing folder tabs checkboxes within Styles are now used exclusively when applying a style. The similar checkbox within Folder Tab Groups still works when loading a tab group on its own, but not when loading one via a Style. This is the main change which may affect existing configs
- Styles which explicitly specify File Display: Single, but also specify a Tab Group which has tabs on both sides will no longer switch to a dual-display Lister; right-hand tabs will be ignored
- When a Tab Group is specified, the options under it (View Mode, Format, etc.) which are disabled in the UI are now also ignored when applying the Style. Previously, they would still be applied
- If a Style specified a dual-side Tab Group in the UI for the left side (which loads folders into both left and right), and nothing at all in the UI for the right side, applying the Style would first load the default folder into the right side, before loading the Tab Group over or in addition to it
- If Explorer Replacement is configured to open into a new, dual-display Lister, the left hand display which the double-clicked path is loaded into will now always be given focus, regardless of how the default Lister was set up
- Go TABCLOSE now works with the TABPOS argument. While you could specify a tab index using the PATH argument before, this change allows things like closing the next tab (Go TABCLOSE TABPOS=+1) or previous tab (Go TABCLOSE TABPOS=-1) relative to the current tab
- Addressed a situation where the Jobs Bar Arrow appearing could place a background Lister on top of the active Lister if a new progress dialog appeared in a Lister which didn't currently have focus
- Fixed problems with MTP devices opening in Explorer in some cases
- Fix for double-clicking some virtual folders under Quick Access taking you to their normal locations instead of staying under Quick Access. e.g. Recycle Bin, Dropbox and Creative Cloud Files
- Deleting junctions on network drives no longer deletes their contents
- The Synchronize summary dialog now scales its column sizes for high DPI
- When in a folder under Quick Access, the path field and parent buttons now behave as if you are in the real folder

Changes:
- {dlgopen} and similar now allow you to use forward slashes when specifying the initial path. (Automatically converted to backslashes before calling the Windows API)
- In Customize mode, dragging special folders like Recycle Bin to a toolbar now creates better buttons for them. (Go PATH=/trash instead of a cryptic IDL string)
- File paths copied to the clipboard when on MTP devices are now stripped of the "?s1234?|"-style information at the end of path components which Opus uses internally
- Fix for [Changing folders while Description is being calculatedchanging-folders-while-description-is-being-calculated/32742)
- Fix for double-clicking ".." parent item not working when the parent is the Quick Access folder
- Improved consistency in how the Quick Access folder behaves between navigations made via the folder tree, file display and Go FOLDERCONTENT menus. In all cases, going to a folder below Quick Access now positions you under Quick Access in the tree and breadcrumb path field, such that parenting up will take you to the Quick Access folder. (If you instead go down from there, you'll jump to the folder's real location)
- Fixed problem with drag & drop to folder tree introduced in previous beta
- Opus no longer tries to send offline files from OneDrive to the recycle bin when deleting; if any offline files are selected the recycle bin will be automatically bypassed. This prevents the files having to be downloaded before being deleted with OneDrive in Windows 10 1903
- The Go, Recent and Favorite commands have new NEWTAB=findinactive modes, similar to NEWTAB=findexisting except that they will open a new tab if the current tab already has the specified path. Intended for buttons which reduce clutter by switching to existing tabs while retaining the ability to open a second tab for the same folder when needed
- Fixed HTML codes appearing in progress window when connecting to FTP sites in some situations (e.g. batch rename)
- You can now scroll the Rename dialog's preview list with the mouse wheel while editing the New Name field in macro mode
- The "Slide-out parent buttons" option was broken in beta 12.14.1, now restored
- Clicking the full-screen button in the viewer pane when it was displaying a non-image file (e.g. a PDF) would open the standalone viewer but not show the PDF - instead, the first image file in the folder would be shown
- For FTP servers that don't support MLST, file dates that are returned without a year are now assumed to be the previous year if they are the current month but a day in the future. E.g. if the current date is Jun-17-2019, and the ftp site returns "Jun 30" as the date, that will now be taken as "Jun-30-2018" and not "Jun-30-2019"
- Made improvements to MTP code which will hopefully prevent freezing/lockups with some devices (iPhones etc).


Directory Opus 12.15.0
- Date formatting codes now support DD to insert the ISO day number (Monday = 1, Sunday = 7). D is also supported but was never documented - it also inserts the day number, but with Sunday = 1 and Saturday = 7
- Fixed a problem that could cause a Windows search initiated through the FAYT to be run twice if it returned very quickly
- Fixed problem in betas which stopped Full Path advanced filter clauses working properly
- Added a registry patch flag to allow the enabling of various elements of OneDrive support that are disabled by default in Windows 10 1903


Directory Opus 12.14.0
- Fix for crashes on startup on some machines
- Fix for delays with non-auto-load tabs and unreachable network shares
- Fix for Update Checker not working(This was also in later 12.13 downloads, after the first day of release)
- Improved drive icon updates in the folder tree and toolbar drivebuttons when Bitlocker is locked/unlocked(May also help with things like icons for offline network drives)


Directory Opus 12.13.0

- The update checker can now check for new beta versions as well as stable releases. This can be enabled with the new option in Preferences / Internet / Updates (and will also be turned on automatically if you're currently using a beta version). Also added an option for the update checker to check daily as well as weekly and monthly. The frequency that Opus "nags" you to reboot after installing an update has also been reduced
- The Rename dialog macro builder now supports selecting from a given point to the end of the filename, no matter how long the name is. To access this, position the cursor at the start position, then press Shift+End twice (or Shift+Home twice when right-justified)
- You can now turn off auto-play, and turn on volume mute, for some ActiveX viewers via the ActiveX + Preview + Office + Web plugin. This only works if the ActiveX control understands the appropriate properties. It's known to work with the Windows Media Player ActiveX control (note: not the Preview Handler, which already disables auto-play by default)
- Added support for .opus audio files to the metadata pane
- Added a command (Help RELEASENOTES) to display the current release notes. Added this to the default Help menu
- Added Clipboard FILE argument which allows filenames to be placed in the clipboard to be specified on the command line (e.g. Clipboard COPY FILE C:moo.zip)
- Set LISTERTITLE now accepts %S to insert the name of the currently selected Lister style (if any)
- The Set COLUMNS command now accepts the same special codes as Set FORMAT (e.g. Set COLUMNS=!folder) to load the columns from a special format without affecting anything else about the current folder format
- You can now use @if:Prefs STYLE=xyz to make buttons conditional on the last style which was loaded, e.g. to cycle styles with a single button. Individual buttons which load styles now also highlight when their style is active (i.e. the last style which was loaded)
- Added Command.GetModifiers script method to retrieve a map of modifiers that have been set on the command. Modifiers set in a button that then calls a script command are now passed through to the script (and can be queried using the new method)
- Scripts can now control taskbar grouping of Listers, viewers and custom dialogs using the new SetTaskbarGroup method of the Lister, Viewer and Dialog objects
- Scripting: The FSUtil.Hash object can now generate three flavors of CRC32 checksums in addition to the existing MD5 and SHA variants
- Scripting: Listers now have a style property, which names the last style (if any) applied to them
- Added VFS_TestSameDrive and VFS_TestSamePath vfs plugin functions
- The Owner column is now calculated on a background thread, which should make it more efficient for large network folders
- When the SetAttr command is run on softlinks and junctions to modify the timestamps it now changes the date of the link rather than the date of the target
- When restoring a configuration backup, choosing "replace existing configuration completely" will now delete any icons, images and sound files in the old config folder. Previously, those folders would be merged with the new config even when replacing it
- Below Preferences / Launching Opus, drop-downs for choosing layouts now support the full layouts tree including sub-folders
- Added a simple caching system to the metadata thread so that multiple queries for the same file in a short space of time will come out of the cache rather than re-reading the file every time. Should improve performance when the file display is showing metadata columns and label filters are also querying metadata
- Drive icons now update correctly in the tree when a drive's bitlocker status changes
- It was previously possible (if you tried hard enough) to enable the Always enable this toolbar's keys in Listers option for the viewer toolbar, which could break many normal keys outside of the viewer
- The Customize dialog no longer allows the currently selected Viewer toolbar to be turned on in Listers. Additionally, the Viewer page in Preferences no longer allows a currently selected Lister toolbar to be selected as the Viewer toolbar
- The archives plugin now prefixes an underscore before any file or folder names within an archive which would clash with reserved device names under Windows (CON, AUX, etc.)
- Toolbar buttons that are disabled/hidden by a @disable-type clause can no longer be launched via their hotkey
- If clicking the selected folder tab is configured to go to the previous tab, this no longer happens when clicking a tab to activate the window it is in or make it the source. (Unless you then click it a second time, of course)
- Thumbnails for comic book archives (cbz, cb7, cbr) now support WebP and HEIC files within the archives
- Increased the length of the metadata fields supported by plugins for music and video files (e.g. FLAC files)
- In Preferences and other dialogs, checkboxes and other controls are now checked and expanded slightly if their labels are too long for the control size. This fixes problems in e.g. Polish at 125% DPI scaling where a large number of controls had the ends of their labels cut off
- The 64-bit version of the MultiView plugin now works, provided you have 64-bit versions of the viewer DLLs it uses. This enables an alternative set of viewers for things like Office documents and many other formats
- Increased compatibility with metadata shooting time fields presented in a non-EXIF compliant format
- Updated UnRAR.dll to 5.70.100. (n.b. Opus was not affected by the WinRAR ACE issue fixed in 5.70; we're just updating to the current version)
Updated 7z.dll to 19.0.0.0, which improves encryption strength for 7z archives
- Fixed Windows Search not always working in 12.12
- The path length counts at the bottom of the Create Folder dialog are now correct if it is opened by a button in multi-line mode with predefined folder names
- The Create Folder dialog now remembers its size in multi-line mode
- Fix for SFTP RSA keys using paths containing multibyte UTF8 characters
- Fixed a problem which prevented editing of EXIF metadata on files which had a timestamp (created/modified/accessed) earlier than 1/1/1970
- Improved the way Preferences / Toolbars / Scripts finds the default text editor
- Corrected new multi-file inline rename mode when using brackets and other wildcard characters in the new name
- Fixed rendering of Customize > Commands list when an icon set with large icons in the "small" size was installed
- The FTP log now uses the system text color instead of being hard-coded to black. (Only affects new log messages, since colors are saved into the log)
- Fixed auto-quoting getting confused by {filepath$|nopath} and similar (for example, {destpath$}{filepath$|nopath} wouldn't auto-quote properly)
- Fixed incorrect interaction between @disablenosel and @disableifpath command modifiers
- DOS-mode functions that are intended to be synchronous (i.e. not return until the DOS process has ended) now are
- Fixed the option to add layouts to the Desktop context menu making a mess of the menu if the sub-menu option was turned off and your layouts were arranged into multiple groups/folders. (You may need to reboot for this fix to take effect)
- The Metadata.other.autodesc property didn't work reliably
- The Rename INLINE=single argument was being ignored if the Rename all selected files at once option was turned on under Preferences / File Operations / Inline Rename
- The def_value property is now supported by all scripting objects which use default values
- The Path.filepart property now returns an empty string when called for a root path
- Fixed a bug which meant if the Lister was showing This PC, a command that specified a path on the command line (e.g. Delete C:Moo.txt) might not work
- Fixed (internal, undocumented) DOpusRT.exe /Prefs command crashing Opus if no Preferences page was specified
- Fixed rare freeze which could occur when opening windows containing a combo control
- Fixed inline rename (F2) not working on items in subfolders when in the Desktop folder using Flat View
- Fixed crash which could occur when refreshing (F5) on a UNC path with certain folder tree configurations
- Fixed crash if filters referred to themselves or each other in an infinite loop
- Fixed password prompt appearing if you put e.g. a deleted, encrypted 7z archive into the clipboard from the Recycle Bin
- Fixed a crash when undocking a dual display Lister (assuming docking was enabled in Preferences)
- Fixed a couple of problems that occurred when checkbox mode and details+thumbnails mode were turned on at the same time
- Fixed a problem introduced in Opus 12.11 which could cause the taskbar to flash over borderless full-screen applications and games when doing certain things in Opus on multi-monitor setups
- Fixed cosmetic issue in the Rename dialog if the Rename Macro Builder font was taller than the rest of the line
- Fixed cosmetic issue with buttons to the right of labels on toolbars if you had button spacing set to zero and the Office 2003 style on or themes off
- If "always display the jobs bar" was on and you manually closed the jobs bar, the bar for that Lister would then go into auto-close mode if a file operation caused it to re-appear. It now goes back into "always display" mode
- The Jobs Bar no longer has a close button when "always display the jobs bar" is on. (You can still close it via buttons if you need to, e.g. Set JOBSBAR=off)
- The update icon is now only displayed once in each window when using dual file displays with independent status bars
- Fix for "Crashes unmounting Bitlocker drive" https://resource.dopus.com/t/crashes-unmounting-bitlocker-drive/31868
- Fixed some compatibility problems with the most recent version of OneDrive that meant the online/offline status of files could be displayed incorrectly
- Fixed a bug that in some cases could cause OneDrive offline files to be downloaded when showing their thumbnails
- Now includes updated Portuguese Brazilian translation. (Thanks to Dyecks Rocha and Alexandre Corrêa)