EVColumnizer is a Directory Opus add-in that deepens Opus's integration with Everything. It lets you surface any Everything column value inside Opus as if it were a native Opus column.
- Built with speed in mind.
- Read any value from Everything inside Directory Opus. Performance is best when those values are indexed.
- Configure everything from an easy UI: pick which Everything columns you want to expose in Opus. Enable only the columns you need.
- Fine-grained column customization, including which file types each column applies to. (see Notes)
- Preview data using a sample file/folder.
- Supports per-item cache for faster responses.
- Everything 1.5 or newer, with Opus integration already enabled.
- Everything CLI (
es.exe) 1.1.0.35 or newer. - Directory Opus 13.19.6 or newer.
The script uses Everything's CLI to fetch values for the involved items directly from Everything.
To start adding columns, after install, just click in Configure in the Script Management window. You can also use EvColumnizer CONFIG as a command.
From there, just select the columns you want to make available in Opus. You can drag and drop any item into that window to preview all available columns, so it’s easier to make your selection.
You can change the header, label, type, alignment, and category for any column.
For most columns, you can also specify which file types will be considered when the column is used. To do this, simply add the extensions (starting with a '.') or add multiple extensions from the same group using grp: + the group name.
The data is automatically saved whenever you close the dialog.
It's recommended to first set everything_autolaunch in Opus settings, and put es.exe in the same place where you configured Opus to find Everything in the previous step. In that case, you won't need to set its path manually.
Otherwise, you can use the Fullpath to es.exe field in the window to specify the full path, or use the "Browse" button to select it via an internal dialog. Aliases are fully supported.
You can reset the selected columns either to their factory defaults or to the last saved values by using the Reset button and choosing the appropriate option.
You can import preconfigured columns from a compatible JSON file or from one generated by the script, using the Import button.
You can export the checked columns to a JSON file to use as a backup or to move your column setup to another machine, using the Export button after selecting the columns you want to export.
Clicking the Options icon (the cog icon) opens the Additional Options window. There you can change the script log output level:
You can also modify options related to cache handling:
Don't erase related cache on a refresh / folder change : By default, the script clears all cached data for the tab’s items when you refresh or navigate to another path. Enabling this option prevents that behavior.
Also, the cache is periodically cleared for all items whose cache age exceeds the value configured in the Erase cache older than... field.
Press OK to save any change here after you're done.
Available arguments are:
| Argument | Type | Value | Description |
|---|---|---|---|
| CONFIG | /S | Open the Configuration dialog. | |
| CLEARCACHE | /O | Clear cache for all the items in the active tab | |
| all | Delete the whole cache |
- Columns are divided into three categories: indexed, fast non-indexed, and regular.
- Indexed: columns Everything always keeps indexed (for example: folder file counts, custom columns, native Everything properties).
- Fast non-indexed: columns not indexed by default but that return values very quickly, the difference versus indexed is tiny.
- Regular: remaining columns.
- For speed, indexed and fast columns are fetched in groups: the script requests values for the whole folder in as few calls as possible and asks for all enabled columns of the same category at once. This drastically speeds up retrieval.
- Regular columns are fetched by running
es.exeper column (see Current limitations for why). - The in-memory cache is used to avoid re-requesting values that were just calculated. The cache is volatile and tied to each item realpath.
- You can preserve the cache across a tab refresh by holding Ctrl+Shift while refreshing evne if
Don't erase related cache on a refresh / folder changeis unchecked. The cache is always cleared when changing folders or closing the tab.
- Some columns visible in Everything's GUI may not return the same values via
es.exe. Please report any such cases. - Some values are retrieved in groups (indexed and fast), while others are retrieved only when explicitly requested, since they may take a considerable amount of time to calculate. The script always requests values in batches of items to avoid unnecessary calls, and the batch size depends on the column category.
- Indexed columns cannot be restricted by file type because they're retrieved for everything at once rather than pre-filtered per type.
- There isn't a reliable programmatic way to tell whether a column is indexed (beyond common ones like size, etc.) via ES.exe. Some properties can be indexed only for specific file types or paths. Here, "indexed" means properties Everything maintains without user intervention. If a column is indexed in Everything, its values should be faster to retrieve.
- "Fast" means the value can be retrieved quicker and indicates those columns are fetched in batches rather than individually.
- "Indexed" columns are hardcoded, so you can't choose specific filetypes.
- Folders-only columns can't choose specific filetypes.
- The in-memory cache purpose is mainly a workaround to allow batch retrievals and avoid recalculating values (for example, after expanding a folder). A disk cache was avoided to keep things faster and avoid unnecesary disk usage.
- The cache is cleared when a tab is closed (for all related items), on demand, whenever you change to another path in the related tab or refresh it(unless you uncheck the corresponding option). Opinions on whether the memory trade-off is worth the speed are welcome.
- ES.exe returns the raw values, so some column types may not make sense here (I'm considering dropping date/time columns). Some values come back in hexadecimal; a few require hardcoded conversions to be human-friendly (attributes, etc.). Ultimately the user chooses the data type for each column.
- Checksum-related columns are not retrieved when previewed items in the Configuration dialog, this mainly because the potential time usage. But can be used in columns just fine.
- Even though the cache is very useful for reducing the processing time, keep in mind it means Opus will use more memory over time, which in some cases could lead to general misbehavior of the program. Because of that, it's not recommended to set cache age values higher than 60 minutes.
- Most of the strings in the configuration dialog depend on the current Opus language. Any strings that aren't translated will appear in English for most users, unless you're using Opus with the Spanish (Mexico) language.
If you're interested, try the script and report edge cases (columns that return nothing when it should, weird raw values, or performance issues) or any suggestion you might have. Feedback will guide the next improvements.
Any suggestions or test results are appreciated. 😉
If you want to help to translate the dialog into your current language, feel free to send me a message.
- David Carpenter for Everything and ES.
- GPSoftware team for Directory Opus.
- Main icon from All SVG Icons