Back to product page

iTidy v2.0

A Workbench Icon and Window Tidy Tool for AmigaOS 3.2+

Workbench drawers have a way of drifting into chaos over time, especially after big Aminet extractions, cover disks, or years of "I will sort it later" installs.

iTidy is a small utility I wrote to bring things back into shape. Point it at a folder or an entire volume and it will tidy icon layouts and drawer windows in a consistent, repeatable way, with optional recursion through subfolders.

Version 2.0 adds a Workbench 3.2 ReAction GUI plus DefIcons-based icon creation, so files without icons can be handled automatically. Where supported, it can also generate thumbnail-style icons for images. Backups are available so you can roll back a run if you change your mind.

Table of Contents

  1. Requirements
  2. Introduction
  3. Getting Started
  4. Main Window
  5. Advanced Settings
  6. Icon Creation Settings
  7. DefIcons Categories
  8. Text Templates
  9. Exclude Paths
  10. Default Tool Analysis
  11. Replacing Default Tools
  12. Restoring Default Tool Backups
  13. Restoring Layout Backups
  14. Folder View
  15. ToolTypes
  16. Tips & Troubleshooting
  17. Credits & Version Info

Requirements


Introduction

iTidy focuses on a few areas that tend to cause friction once your disks and drawers start to grow.

Manual tidying gets tedious. Workbench's built-in "Clean Up" works one drawer at a time. iTidy can walk through entire directory trees (or a whole volume) in one go.

Layouts drift over time. Changing screen modes, fonts, or resolutions can leave icons overlapping or windows sized oddly. iTidy re-arranges icons into a grid, with adjustable spacing and proportions.

Missing and inconsistent icons. Large archive extractions often leave files sitting in drawers with no icons at all. Version 2.0 can create icons automatically using the DefIcons system, including thumbnail-style icons for images and preview icons for text files. If you enable it, iTidy can also refresh icons it previously generated.

Default tools go missing. Older archives often reference tools that are not present on a modern setup, resulting in "Unable to open your tool" errors. iTidy scans for missing tools and lets you fix them.

No safety net for large changes. iTidy includes an optional backup and restore system using LhA, so you can roll back icon and layout changes later if needed.

iTidy only works with Workbench metadata: .info files and drawer/window layout information. It does not modify the contents of your data files.


Getting Started

  1. Double-click the iTidy icon to launch it. The main window opens.

  2. Click the Folder to tidy gadget and choose the drawer (or whole partition) you want to process. The selected path appears in the field.

  3. Choose how you want icons grouped using Grouping (Folders First is the default).

  4. If you want iTidy to process everything underneath the chosen folder, enable Include Subfolders.

  5. If you want backups before any changes are made, enable Back Up Layout Before Changes. LhA must be installed in C: for this to work.

  6. If you want iTidy to create new icons for files and folders that don't already have them, enable Create Icons During Tidy. You can configure which file types get icons, thumbnail settings, and other creation options via Icon Creation....

  7. For more control over layout and window sizing, click Advanced....

  8. Click Start. A progress window shows what iTidy is doing. When it finishes, the Cancel button changes to Close.

Tip: For your first run, try a small test folder. If you enable backups, you can always restore afterwards if you want to undo the changes.


Main Window

The main window is where you choose what to tidy and set the basic options. All other windows are opened from here.

Folder Selection

Tidy Options

Buttons

Presets

Reset To Defaults (Amiga+N) Resets all settings to their default values. The current log level is preserved.

Open Preset... (Amiga+O) Loads a previously saved preferences file. The default location is PROGDIR:userdata/Settings/.

Save Preset (Amiga+S) Saves the current settings to the last-used file path. Behaves like Save Preset As if no file has been saved yet.

Save Preset As... (Amiga+A) Opens a requester to choose where to save. Default filename is iTidy.prefs in PROGDIR:userdata/Settings/.

Quit (Amiga+Q) Closes iTidy.

Settings

Advanced Settings... Opens the Advanced Settings window.

DefIcons Categories... Opens the DefIcons category selection window.

Preview Icons... Opens the Text Templates window.

DefIcons Excluded Folders... Opens the Exclude Paths window.

Back Up Layout Before Changes? Toggle checkmark. Kept in sync with the checkbox on the main window.

Logging -- Disabled (Recommended) Turns off all logging. (Default)

Logging -- Debug Most verbose level, logs everything.

Logging -- Info Logs informational messages and above.

Logging -- Warning Logs warnings and errors only.

Logging -- Error Logs errors only.

Logging -- Open Log Folder Opens PROGDIR:logs/ as a Workbench drawer.

The five logging level items are mutually exclusive.

Tools

Restore Layouts... Opens the Restore Backups window (same as the Restore Backups button).

Restore Default Tools... Opens the Restore Default Tools window for reverting default tool changes.

Help

iTidy Guide... Opens PROGDIR:iTidy2.guide using AmigaGuide.

About Shows a requester with the version number, description, and copyright notice.

Tips


Advanced Settings

Open this window with Advanced... on the main window, or via the Settings menu. Settings are organised into five tabs. Changes are applied when you click OK, or discarded if you click Cancel or press Escape. To save settings permanently, use Presets -> Save on the main window.

Layout Tab

Density Tab

Limits Tab

Columns & Groups Tab

Filters & Misc Tab

Buttons

Default Values Summary


Icon Creation Settings

Open this window with Icon Creation... on the main window. It controls how iTidy creates new icons for files and folders that do not already have .info files, using the DefIcons system. Settings are organised into three tabs: Create, Rendering, and DefIcons.

Changes are applied when you click OK, or discarded if you click Cancel.

Create Tab

Note: Smart mode is quickest when iTidy can decide based on existing icons. If a folder has no icons at all, iTidy may need to ask DefIcons about many files to work out what would get an icon. On a large collection, that can mean a DefIcons ARexx call for every file in every subfolder, which can be slow on Classic hardware.

Performance warning: When Smart mode is combined with "Include Subfolders" on the main window, iTidy will recurse into every subfolder, sub-subfolder, and so on -- querying DefIcons for files at every level and then backtracking up through the entire folder tree to determine which folders need drawer icons. On deeply nested volumes or large collections this can take a very long time on Classic Amiga hardware. If processing time is a concern, use "Never Create" for folder icons, or limit the run to a single folder without recursion.

Rendering Tab

These settings control the visual appearance of generated thumbnail icons.

DefIcons Tab

Default Values Summary


DefIcons Categories

Open this window from the main window via Settings -> DefIcons Categories... -> DefIcons Categories..., or from Icon Creation Settings -> DefIcons tab -> Icon Creation Setup....

This window lets you choose which file types iTidy should create icons for. It shows a tree view of all file types defined in the system's DefIcons preferences, with checkboxes to enable or disable each type.

The type tree is read from ENV:deficons.prefs, managed by the "DefaultIcons" Preferences tool in the Workbench Prefs drawer. If the DefIcons system is not available, this window cannot be used.

Type Tree

The tree shows a hierarchical list of file types. Top-level entries are categories (music, picture, tool, etc.). Expanding a category reveals the individual file types within it. Only second-level file types have checkboxes -- root categories and deeper sub-types do not.

The following categories are disabled by default because creating icons for them is rarely useful or could affect system files:

All other types are enabled by default.

Buttons


Text Templates

Open this window from the main window via Settings -> DefIcons Categories... -> Preview Icons..., or from Icon Creation Settings -> Create tab -> Manage Templates....

This window manages the DefIcons text preview templates. Each ASCII sub-type (C source, REXX, HTML, etc.) can have its own template icon (def_<type>.info) stored in PROGDIR:Icons/. These templates contain ToolTypes that control how iTidy renders text previews onto file icons.

Master and Custom Templates

Excluded Types

The master template (def_ascii.info) supports an EXCLUDETYPE ToolType that lists file sub-types that iTidy will never create icons for. These types are shown with the status Excluded.

Example:

EXCLUDETYPE=amigaguide,html,install

To re-enable a type, remove it from the EXCLUDETYPE list by using Edit ToolTypes on the master template row. This opens the Workbench Information editor for def_ascii.info, where the change is saved.

Template ToolTypes

Custom templates can contain the following ITIDY_* ToolTypes to control rendering. Defaults are used for any ToolType that is absent.

Note: The text renderer is a micro-preview renderer, not a text layout engine. It fits an entire file's worth of text into an icon a few dozen pixels across by treating each character as a single pixel-width column and each line as a single pixel-tall band. The result looks like ruled-paper marks that suggest text density and structure, not readable characters. All the size and spacing ToolTypes operate in this output-pixel coordinate space, not in font or point sizes.

ITIDY_TEXT_AREA (Default: 4-pixel margin) Rectangle (x,y,w,h) defining the safe zone where text is drawn.

ITIDY_EXCLUDE_AREA (Default: none) Rectangle (x,y,w,h) area to skip pixel-by-pixel when drawing.

ITIDY_LINE_HEIGHT (Default: 1) Output height in pixels of each rendered line band. At the default of 1, a 60px-tall safe area holds 60 bands. Increase to 2 or 3 for thicker bands and fewer lines per icon.

ITIDY_LINE_GAP (Default: 1) Gap between line bands in pixels (reserved -- not currently used by the renderer).

ITIDY_MAX_LINES (Default: auto) Maximum number of rendered line bands to produce (reserved -- not currently enforced by the renderer).

ITIDY_CHAR_WIDTH (Default: 0/auto) Horizontal pixel step per rendered character (1 = narrow, 2 = normal); 0 = auto-select based on safe area width.

ITIDY_READ_BYTES (Default: 4096) Number of bytes to read from the source file.

ITIDY_BG_COLOUR (Default: none -- no fill) Background colour index (0-254) to fill the safe area; absent or -1 = no fill (preserve template pixels). Index 255 is reserved internally and cannot be used.

ITIDY_TEXT_COLOUR (Default: auto) Text colour index (0-255); ignored when ITIDY_ADAPTIVE_TEXT=YES.

ITIDY_MID_COLOUR (Default: auto) Mid-tone colour index (0-255); ignored when ITIDY_ADAPTIVE_TEXT=YES.

ITIDY_DARKEN_PERCENT (Default: 70) Darkening strength for even output rows (1-100); only active when ITIDY_ADAPTIVE_TEXT=YES.

ITIDY_DARKEN_ALT_PERCENT (Default: 35) Darkening strength for odd output rows (1-100); only active when ITIDY_ADAPTIVE_TEXT=YES.

ITIDY_ADAPTIVE_TEXT (Default: NO) Master switch for the adaptive rendering path (YES/NO).

ITIDY_EXPAND_PALETTE (Default: YES) Pre-adds darkened colour variants derived from the existing palette for smoother tones; only active when ITIDY_ADAPTIVE_TEXT=YES.

Editing ToolTypes opens the Workbench Information editor via ARexx. Changes are saved there, not within iTidy itself.

The two rendering modes: fixed colour vs adaptive

ITIDY_ADAPTIVE_TEXT is the master switch that divides the ToolTypes into two groups. Getting this right is probably the most important thing to understand about the template system.

When ITIDY_ADAPTIVE_TEXT=NO (the default):

When ITIDY_ADAPTIVE_TEXT=YES:

At a glance:

ITIDY_TEXT_COLOUR ITIDY_ADAPTIVE_TEXT=NO: Fixed colour for medium/high-density glyph pixels ITIDY_ADAPTIVE_TEXT=YES: Ignored

ITIDY_MID_COLOUR ITIDY_ADAPTIVE_TEXT=NO: Fixed colour for sparse/edge glyph pixels ITIDY_ADAPTIVE_TEXT=YES: Ignored

ITIDY_DARKEN_PERCENT ITIDY_ADAPTIVE_TEXT=NO: Ignored ITIDY_ADAPTIVE_TEXT=YES: Darkening strength for even rows (default 70%)

ITIDY_DARKEN_ALT_PERCENT ITIDY_ADAPTIVE_TEXT=NO: Ignored ITIDY_ADAPTIVE_TEXT=YES: Darkening strength for odd rows (default 35%)

ITIDY_EXPAND_PALETTE ITIDY_ADAPTIVE_TEXT=NO: Ignored ITIDY_ADAPTIVE_TEXT=YES: Adds darkened palette variants for smoother tone gradations

ITIDY_BG_COLOUR ITIDY_ADAPTIVE_TEXT=NO: No fill (template pixels preserved) ITIDY_ADAPTIVE_TEXT=YES: Same default -- no fill. A solid fill defeats adaptive mode; leave absent or set to -1.

ITIDY_EXPAND_PALETTE -- depends on ITIDY_ADAPTIVE_TEXT

When palette expansion is active (ITIDY_ADAPTIVE_TEXT=YES and ITIDY_EXPAND_PALETTE not set to NO), darkened colour variants are derived from the existing palette and added to it, giving the darken tables more entries to map to and producing smoother tone gradations. It works in two phases: first a 70%-darkened copy of every palette colour is added (used for even output rows), then a 35%-darkened copy (used for odd/alternate rows). Entries that are already close enough to an existing colour are reused rather than duplicated, so no colour slots are wasted. No neutral grey values are inserted -- all new entries come from the template's own colours.

Expansion only fires when the palette has fewer than 128 colours and at least 2. If ITIDY_ADAPTIVE_TEXT=NO, this ToolType has no effect regardless of its value.

ITIDY_BG_COLOUR -- absent means no fill

When ITIDY_BG_COLOUR is absent (or set to -1), the safe area is left exactly as it is and glyph pixels are painted on top of whatever template artwork is already there. This is the default behaviour.

This means adaptive mode works correctly without setting ITIDY_BG_COLOUR at all -- just leave it out. You only need to set it if you want a solid fill, and you would not normally want that with ITIDY_ADAPTIVE_TEXT=YES, because once the safe area is filled with one colour, every glyph pixel darkens to the same result, which is no different from fixed colour mode.

Setting ITIDY_BG_COLOUR to a valid palette index (0-254) forces a solid fill. Index 255 is reserved internally as the "no fill" sentinel and cannot be used as a colour. Setting it to any value outside the valid palette range (other than 255, which is always treated as no-fill) triggers auto-detection of the lightest palette entry, which is also a solid fill.

Colour auto-detection

ITIDY_TEXT_COLOUR and ITIDY_MID_COLOUR (fixed colour mode only) auto-detect when absent or out-of-range. ITIDY_BG_COLOUR behaves differently -- see below.

A safety check ensures the text and mid-tone colours never resolve to the same palette index.

ITIDY_TEXT_AREA and ITIDY_EXCLUDE_AREA -- independent zones

These two ToolTypes are checked separately and serve different purposes:

The two zones are independent -- the exclude area can overlap the text area, lie entirely within it, or be placed outside it entirely.

ITIDY_CHAR_WIDTH -- auto-select mode

Setting ITIDY_CHAR_WIDTH=0 (the default) enables automatic selection: 2 pixels per character column if the safe area is 64 pixels wide or greater; 1 pixel per character column if it is narrower. Any non-zero value overrides this.

ITIDY_MAX_LINES and ITIDY_LINE_GAP -- reserved for future use

These ToolTypes are recognised by the Validate function and will not be flagged as unknown keys, but the renderer does not currently use them. ITIDY_MAX_LINES is calculated automatically from the safe area height divided by ITIDY_LINE_HEIGHT. ITIDY_LINE_GAP is parsed but the rendering loop does not read it -- band spacing is controlled solely by ITIDY_LINE_HEIGHT. Setting either will not cause errors but will have no visible effect.

Gadgets

Action Buttons

All action buttons start disabled and enable when a row is selected.


Exclude Paths

Open this window from the main window via Settings -> DefIcons Categories... -> DefIcons Excluded Folders..., or from the DefIcons tab in Icon Creation Settings.

This window manages the list of folder paths skipped during DefIcons icon creation. Any folder matching an exclude path is skipped entirely -- no icons are generated inside it.

DEVICE: Placeholder

Paths can use DEVICE: as a placeholder for the volume currently being scanned. At scan time, iTidy replaces DEVICE: with the scanned volume name, so the exclude list can be reused across different drives.

For example, if you are scanning Workbench:Games/, then DEVICE:C means Workbench:C. If you are scanning Work:WHDLoad/, the same entry means Work:C.

When you add or modify a path, if the selected folder is on the same volume as the current scan folder, iTidy asks whether to store it as DEVICE: (portable) or as an absolute path (fixed to that specific volume).

Limits

Gadgets


Default Tool Analysis

Open this window with Fix Default Tools... on the main window.

What is a Default Tool?

Most data file icons on the Amiga have a "Default Tool" -- the program Workbench runs when you double-click that icon. After copying icons between systems or extracting older archives, those tool paths often break, resulting in "Unable to open your tool" errors.

Using the Scanner

  1. The Folder field initialises from the current scan folder in your preferences. Change it if needed.

  2. Click Scan to start a recursive scan. A progress window shows scan statistics. After scanning, close the progress window to return to the tool list.

  3. Use the Filter chooser to narrow the list: Show All, Show Valid Only, or Show Missing Only.

  4. Click a tool in the upper list to see which icons reference it in the details panel.

  5. To fix a tool, select it and use Replace Tool (Batch)... to update all icons that reference it, or select a specific icon file in the details panel and use Replace Tool (Single)... to update just that one.

Tool List Columns

Tool Tool name or path.

Files Number of icons that reference this tool.

Status EXISTS or MISSING.

Click a column header to sort. Click again to reverse the sort order.

Details Panel

Shows information about the selected tool: tool name, status, version string if available, and the list of icon files that reference it. If a tool has more than 200 referencing files, only the first 200 are shown.

Buttons

Project Menu

New (Amiga+N) Clears the tool cache and resets the display.

Open... (Amiga+O) Loads a previously saved tool cache from a .dat file.

Save (Amiga+S) Saves the cache to PROGDIR:userdata/DTools/toolcache.dat.

Save as... (Amiga+A) Saves the cache to a user-chosen location.

Close (Amiga+C) Closes the window.

File Menu

Export list of tools (Amiga+T) Exports a text report of all tools.

Export list of files and tools (Amiga+F) Exports a detailed report of all files and their tools.

View Menu

System PATH... (Amiga+P) Shows the list of directories iTidy searches for default tools.

Notes


Replacing Default Tools

This window opens from Replace Tool (Batch)... or Replace Tool (Single)... in the Default Tool Analysis window.

Batch vs Single Mode

In batch mode (opened via Replace Tool (Batch)), all icons that reference the selected tool are updated at once. The Mode field shows "Batch Mode: N icon(s) will be updated".

In single mode (opened via Replace Tool (Single)), only the one icon selected in the details panel is updated. The Mode field shows the icon file path.

Using the Window

  1. The Current Tool field shows the tool being replaced.
  2. Click the browse button next to Change To to select the replacement tool program. The initial location is C:. .info files cannot be selected.
  3. Click Update Default Tool to start the replacement.
  4. Results appear in the progress list as each icon is processed: SUCCESS, FAILED, or READ-ONLY.
  5. After completion, a summary shows success and failure counts. The Update button is disabled after one use -- close and reopen to do another update.
  6. Click Close to return to the Default Tool Analysis window, which refreshes automatically.

Tip: Leave the Change To field empty and click Update to remove the default tool from the icon(s) entirely. A confirmation requester will be shown first.

Note: Write-protected icons are automatically skipped with a "READ-ONLY" status and are not counted as failures.

Backup System

If default tool backup is enabled, every change is recorded in PROGDIR:Backups/tools/YYYYMMDD_HHMMSS/. The session folder contains session.txt (metadata) and changes.csv (one row per icon: icon path, old tool, new tool). Use the Restore Default Tools window to revert changes.


Restoring Default Tool Backups

Open this window from the Default Tool Analysis window via Restore Default Tools Backups..., or from the main window via Tools -> Restore Default Tools....

This window lists all backup sessions created when iTidy replaced default tools. Each session represents one Replace operation.

Session List

Date/Time When the backup was created.

Mode "Batch" or "Single".

Path The folder path that was being processed.

Changed Number of icons that were modified.

Click a session to see its tool changes in the panel below.

Changes Panel

Shows the tool changes recorded in the selected session -- the original tool, the replacement, and how many icons were affected by each specific old->new pair.

Buttons

Note: After restoring, the tool cache in the Default Tool Analysis window is invalidated and must be rebuilt with a new scan.


Restoring Layout Backups

Open this window with Restore Backups... on the main window, or via Tools -> Restore -> Restore Layouts....

This window lists all iTidy backup runs created when tidying with Back Up Layout Before Changes enabled. Each run is an LhA-based snapshot of the .info files and window positions for the processed folders.

Note: This restores icon/layout backups only. To undo default tool changes, use the Restore Default Tools window instead.

Run List

Run Run number (e.g. 0007).

Date/Time When the backup was created.

Folders Number of folder archives in the run.

Size Total size of all archives.

Icons+ Number of icons created by DefIcons during this run ("-" if none).

Status "Complete" (has catalog) or "NoCAT" (no catalog file).

Click a run to select it and update the details panel. Double-click a run to open the Folder View window (requires a catalog file). The first run is automatically selected when the window opens.

Details Panel

Shows: Run Number, Date Created, Source Directory, Total Archives, Total Size, Icons Created, Status, and the on-disk location.

Buttons

Notes


Folder View

This read-only window opens from the Restore Backups window via View Folders... or by double-clicking a run.

It shows the hierarchical folder structure of a backup run -- which folders were backed up, their compressed archive sizes, and how many icons each contained.

The tree starts fully collapsed. Click the disclosure triangles to expand branches. Two columns are shown: the folder name (with indentation showing depth), and a combined Size/Icons value (e.g. "11 KB / 15 icons").

Selecting a tree node has no effect -- this window is informational only. Click Close (or press C) to return to the Restore Backups window.


ToolTypes

These ToolTypes are read from the iTidy program icon when launched from Workbench.

DEBUGLEVEL (Values: 0-4, Default: 4/Disabled) Log level. 0=Debug, 1=Info, 2=Warning, 3=Error, 4=Disabled. Overrides any log level stored in a loaded preferences file.

LOADPREFS (Values: File path, Default: none) Automatically loads a saved preferences file at startup. Paths without a device name are resolved relative to PROGDIR:userdata/Settings/.

PERFLOG (Values: YES / NO, Default: NO) Enables performance timing logs for benchmarking.


Tips & Troubleshooting

General Tips

If something does not look right after a run, check the sections below.

Icons Appear Misaligned

If some icons look misaligned while others look fine, it is often an icon.library issue. On setups with an older icon.library, OS3.5+ colour icons may not render at their real size and can appear as tiny placeholder images. iTidy positions icons using the icon's real dimensions, but Workbench may draw them at the wrong size, so the layout looks off.

What to do:

Window Positions Not Updating

If window positions do not change after a run or restore, this is usually Workbench caching.

What to do:

Backup or Restore Not Working

A few things to check:

Slow Processing on Large Drawer Trees

Recursing through thousands of drawers takes time on real hardware, especially with mechanical drives.

Icons Are Not Moved, and the Progress Log Shows No Icons Found

Check the drawer in Workbench and see if Window -> Show -> All Files is selected. This option shows contents using temporary icons that are not backed by .info files, so iTidy has nothing to move.

If you want iTidy to process this drawer, create real icons first: select the contents via Window -> Select Contents, then choose Icons -> Snapshot. Real icons will be created and iTidy will be able to process them.

iTidy Skips Some Drawers That Contain Valid Icons

By default, iTidy skips drawers without an .info file during recursive processing, because those drawers are not visible in Workbench.

To bypass this, open Advanced Settings and untick Skip Hidden Folders.

Icons Do Not Open ("Unable to open your tool")

This means an icon's Default Tool points to something that is not installed.

What to do:

DefIcons Icon Creation Produces No Icons

Check the following:

Text Preview Icons Look Wrong or Are Missing


Credits & Version Info

Author: Kerry Thompson
Version: 2.0
Website: https://github.com/Kwezza/iTidy
Special thanks: Darren "dmcoles" Cole for ReBuild, an excellent GUI builder that made iTidy's updated interface possible./b>