Skip to content

Release of the v3.3.1

Choose a tag to compare

@FreakySneaky787 FreakySneaky787 released this 23 Sep 09:25
· 35 commits to main since this release
cd6cc24

What's New in v3.3.1

Duplicate Deleter

The biggest new feature since the rules engine. The Duplicates tab now lets you act on duplicates — not just view them.

After a scan, select any duplicate file rows using click, Ctrl+click, or Shift+click. Then click 🗑 Move Selected to Trash to send them to the system Trash or Recycle Bin.

How it works:

  • Multi-select is fully supported — click, Ctrl+click, Shift+click
  • A live label shows how many files are selected
  • The Move to Trash button is disabled until you make a valid selection
  • A confirmation dialog shows exactly which files will be moved before anything happens
  • Every trashed file is logged in the Log tab

Safety rules — always enforced:

  • At least one file per duplicate group must remain — you can never trash an entire group accidentally. The button stays disabled and shows "keep at least 1 per group" if the selection is invalid.
  • Files go to the system Trash / Recycle Bin only — nothing is ever permanently deleted
  • App files are excluded from duplicate results entirely

Cross-platform implementation — no external packages:

Platform | Method -- | -- Windows | ctypes → SHFileOperation with FOF_ALLOWUNDO (native Recycle Bin) Linux | gio trash → trash-put → manual XDG Trash fallback

No send2trash or any other pip dependency required.

Bug Fixes

save_rules() silently swallowed write errors — rules.py · Low save_rules() caught all exceptions with pass, making a failed rules write invisible. Fixed: now returns bool and the caller logs a warning in the Log tab if saving fails.

_adjust_colour() only lightened colours — main.py · Low The hover colour helper always added to RGB channels, making colours lighter regardless of the theme. In light mode the hover was barely visible. Fixed: the function now supports negative amounts to darken, and the light theme hover correctly darkens the accent.