ToolbarPalette is a script add-in command for Directory Opus, allowing users to run their commands, scripts, and other toolbar content quickly. Inspired by command palettes from other applications, this tool integrates seamlessly into your workflow, giving you the ability to search 'n run across all your toolbars.
Key Features:
- Provides a search interface (aka UI Mode) to run any button from any toolbar/menu/hotkey, as if launched directly from it.
- You can easily locate and use buttons from any toolbar—even those not currently visible—making it especially useful for users managing multiple toolbars.
- Allows searching by label, description, instructions, hotkey or toolbar names.
- Prioritizes speed when handling results.
- Advanced search options for greater control over results.
- Supports Opus wildcard syntax, regex, case matching, diacritics, and whole-word searches.
- Extensive customization for indexing toolbars, including those not in active use.
- Indexation capability for improve performance.
- Support parameters such as selected files and other Opus-specific arguments, just like a button!
- Real-time detection of toolbar changes!
- Fully customizable right click menu, with support for variables included.
- Can be used even from the FAYT field!
IMPORTANT: READ BEFORE PROCEED
This script is provided "as is" and without warranty of any kind or whatsoever.
It has been made during my spare time and has not been extensively tested, so it is presented as a testing version.
The user assumes full responsibility for its use and understands that the author is not responsible for possible failures or loss of data.
Kind remind that this is a work in progress, so expect bugs.
Any feedback on possible improvements or bugs is welcome.
How to Install
IMPORTANT: Needs at least DOpus v13.17.6
Download the file below. Then simply double click on it or go to Settings / Scripts (or run Prefs SCRIPTINSTALL) and select the downloaded file.
v3.0.0 : Download latest version from here
Usage
ToolbarPalette can be used with its own interface (UI Mode) or via FAYT.
UI Mode
The interface is really easy to use since almost every control has a tooltip that explains how it works.
Basically, on the first run the script builds a map of all the toolbars/menus/hotkeys needed based on the options you chose in the script settings. Once indexing finishes, the dialog lets you quickly filter the content by one or more of these fields:
- Label
- Description
- Instructions
- Toolbar
- Hotkeys
You can pick which fields to use by clicking the
button and selecting the ones you want.
Once you find what you're looking for, press Enter or double-click to run it as if you clicked the button in the toolbar directly. You can also hold modifiers like Ctrl, Shift, and any others supported by Opus to be passed to the launched button. The script will load the selected items in the source filedisplay, along with context like source and destination, and pass them to the button.
There's also an advanced search mode that combines search fields using basic logic.
Its syntax is in the form: $l|d|v|t|h(==|!=)"value", where:
* $l: Label
* $d: Description
* $v: Instructions
* $t: Toolbar
* $h: Hotkey
E.g.:
* && or AND and || or OR are supported
* $l=="fav" && $d!="edit" It will list all the entries with "fav" in their labels and whose description does not contain "edit".
Since v3, you can click the
icon to access the following options:
- Close with Escape key : Close the dialog after pressing Escape
- Keep open after run : Keep the dialog open after running anything.
In UI mode, the script will automatically check for updates and notify you in the dialog's status bar if a new version is available. You can then click there to go directly to the download page.

Edit Menu
Version 2.0.0 introduces a right-click menu for each item that can be customized. To do this, you can use ToolbarPalette EDITMENU or the pencil icon from the ToolbarPalette window. These entries are designed to execute/automate tasks related to toolbars and their associated entries. For example, copying a toolbar, displaying a non-visible toolbar in the Lister, etc.
The supported commands are the same as those used within Directory Opus (e.g., when creating a button), with the feature that the following variables are predefined:
$label$: Label of the button/menu shown in the list.$desc$: Description of the button/menu shown in the list.$hotkey$: Hotkey of the button/menu shown in the list.$toolbar$: Name of the toolbar of the button/menu shown in the list.$instr$: Instructions of the button/menu shown in the list.$toolbar_file$: Full path of the toolbar on disk where this button/menu is located.$toolbar_group$: Indicates the position of the toolbar in the List where this button/menu is located. It can betop,bottom,left,right,center,fdright,fdbottom,tree,none,hotkeys, ormenu.$toolbar_pos$: Line number within the toolbar's group that it resides on in the List where this button/menu is located.-1if not part of a toolbar.$toolbar_line$: Pixel position from the left/top of the toolbar's line in the List where this button/menu is located.-1if not part of a toolbar.
Hotkeys
Available hotkeys are :
F5 : Refresh the list
F3 : Focus on the filter control
Alt+W : Toggle 'Use Wildcards' button
Alt+G : Toggle 'Use Regex' button
Alt+C : Toggle 'Match case' button
Alt+D : Toggle 'Allow diacritics' button
Alt+H : Toggle 'Use whole words' button
Up/Down : Navigation buttons
If the list has focus:
Enter : Run the selected item
Ctrl/C : Copy instructions from the selected item to the clipboard
Also Enter will apply the filter when Advanced Search is enabled.
If Close with Escape key is enabled, Escape key can be used to close the dialog.
FAYT Mode
The script also lets you perform the same tasks as in UI mode, but using the FAYT field. It's specifically engineered to display all results, even when they share the same label, and it fully supports partial searches.
You can search by label (and optionally by description), plus you have access to the same search flags (regex, wildcards, etc.), as well as other options like:
- Force execution : Same as the
FORCEEXECarg - No filter instructions : Same as the
NOFILTERarg - Don't pass selected items : By default, when you run a list option, the currently selected items in the source file display are passed, just like in UI mode. This option disables that behavior.
By default, you can trigger it using ). You can change the key in Preferences / Filtering and Sorting / Quick Keys.
Command Arguments
The script supports the following arguments (which apply when using the command in UI mode) :
| ARGUMENT | TYPE | DESCRIPTION |
|---|---|---|
| FORCERELOAD | /S | Force database index creation. |
| REGEX | /S | Open the dialog with 'Regular Expressions' checked |
| CASE | /S | Open the dialog with 'Match case' checked |
| WHOLEWORDS | /S | Open the dialog with 'Whole words' checked |
| WILDCARDS | /S | Open the dialog with 'Opus Wildcards' checked |
| DIACRITICS | /S | Open the dialog with 'Allow diacritics' checked. |
| FORCEEXEC | /S | By default, when executing certain buttons (e.g. those with instructions that take the selection into account), a confirmation is displayed. Using this argument suppresses that confirmation. |
| ADVSEARCH | /S | Enables Advanced Search (see below in Notes > Advanced Search). |
| SEARCHFILTER | /R | Starts the dialog with the filter set by this argument. |
| EDITMENU | /S | Open the Edit Menu dialog to customize the right click menu. |
| NOFILTER | /S | Force inclusion of detected dynamic buttons in the list. |
Options
In the Script Management window (Settings > Scripts...), select ToolbarPalette and click in the Edit button.
- log level : Logging level to be displayed.
- OFF to show only errors.
- DEBUG to show all messages.
- STANDARD to show only the most relevant information.
- WARNING to show messages that needs your attention.
- nested separator : Separator to use in anidated menus.
- excluded words : If a command has one of this words, it will be excluded from list.
- include lister hotkeys : Set to True to include entries from lister hotkeys.
- include system hotkeys : Set to True to include entries from system hotkeys.
- include floating toolbars : Set to True to include buttons from floating toolbars.
- include all toolbars : Set to True to include all the toolbars, even the unloaded ones.
- excluded toolbars : List of toolbar names that will be ignored by the command.
- load/save UI position : Set to True to save and load the dialog's last used position.
- allow multiple instances per lister : Set to True to allow multiple commands running
simultaneously per Lister. - Label column max width : Max width for Label column. Set to 0 to always autosize to content.
- FunctionType column max width : Max width for Function Type column. Set to 0 to always autosize to content.
- Hotkey column max width : Max width for Hotkey column. Set to 0 to always autosize to content.
- Description column max width : Max width for Descrption column. Set to 0 to always autosize to content.
- Instructions column max width : Max width for Instructions column. Set to 0 to always autosize to content.
Notes / Technical Stuff
-
General
- Certain buttons may have "usage requirements" based on the selection type or other scenarios.** By default, the command detects these instructions and asks for confirmation to continue executing them (since their usage requirements may not be met). So, special attention should be given to these warnings!
- Some buttons with instructions that generate dynamic content (e.g.
GO FOLDERCONTENT,Go DRIVEBUTTONS,FILETYPE***, etc) are automatically ignored. - You can use
excluded wordsif you detect any others that may cause issues when used out of context. - If you are using this command for something other than executing other commands, you may want to include the
NOFILTERargument o el flag correspondiente para FAYT, which forces the listing of this type of command.
-
Context Menus
- The only context menu currently supported is
All Files and Folders. In the future, it may expand to include all context menus, which would be added or removed from the list depending on changes in the item selection within the Lister. - Entries in context menus that use
FILETYPE CONTEXTMENUor similar are ignored because, unfortunately, they cannot be executed outside the menu's context, and no known workaround exists.
- The only context menu currently supported is
-
Hotkeys
- Certain keys may depend on the language and keyboard layout. Since there doesn't seem to be a way to obtain that data via scripting, the command "assumes" that the language matches the one in which DOpus is running. As a result, errors may occur, or the key may appear as
???in some cases.
- Certain keys may depend on the language and keyboard layout. Since there doesn't seem to be a way to obtain that data via scripting, the command "assumes" that the language matches the one in which DOpus is running. As a result, errors may occur, or the key may appear as
Greetings
To @grosner for the idea.
Anyone who participate in the betas.
@abr for the German translation.
Opus devs as usual.
Changelog
- New FAYT mode: The command can now be used from the FAYT field, with multiple options, full partial match support, and the ability to show all results even if they have the same label.
- UI mode filtering: The list now uses a new incremental loading model, displaying results in batches instead of waiting until filtering is complete. This makes results appear much faster.
- General improvements: Optimized code and routines for better overall responsiveness.
- Update checker: In UI mode, the script can now automatically check for updates and notify the user when one is available.
- Minor fixes and tweaks.
Full changelog
v2.0.1 (Feb 17, 2025) :
- Fixed an issue when retrieving toolbar info from floating toolbars when
include all toolbarswas set to false (buttons were loaded fine, but other info retrieval failed). - Fixed an error that could occur when installing the command on a computer didn't have version 1.0.0 previously installed.
- Fixed an issue where the $hotkey$ variable was not working.
- Added tooltips for most controls to improve usability.
- The Edit Menu dialog will now copy variables to the clipboard when clicking on any of them.
- Other minor corrections.
v2.0.0 (Jan 13, 2025) :
- Added support for listing hotkeys.
- Added support for listing entries in context menus (limited to "All Files and Folders").
- Added support for a fully customizable right-click menu with predefined variables:
- Current variables include:
$label$,$desc$,$hotkey$,$instr$,$toolbar$,$toolbar_file$,$toolbar_line$,$toolbar_pos$, and$toolbar_group$. - The menu comes with two predefined entries to help you understand how to use it.
- Current variables include:
- New arguments:
EDITMENU,NOFILTER. - Added options to define maximum width for columns in the list.
- Other minor fixes.
v1.0.2 (Jan 04, 2025) :
- Added
allow comments in commandsin the Script Config, enabling users to choose whether commented lines in instructions are displayed or ignored.
v1.0.1 (Jan 01, 2025) :
- Added exclusion for additional
Gocommands in instructions. - Added exclusion for commented instructions.
v1.0.0 (Dec 22, 2024) : Initial release






