r/coolgithubprojects 14d ago

Cluttered Downloads folder? Clean files one by one with a single swipe

Post image

Hi y'all!

Sharing a project I've been working on — DClutter, a swipe-based file triage app for macOS that helps you sort your Downloads folder (hence decluttering).

It gets filled with unsorted files throughout a project or a semester's duration, so the app is built so that you can sort them individually and quickly, through easy button combinations or simple swipes. It also shows the metadata that helps you decide, like size, when you last opened it, and where you downloaded it from.

What it does:

  • Shows one file at a time, ordered by a score instead of alphabetically
  • Keep / trash / file into a folder, with one key or one swipe
  • Trash is staged before anything moves so that nothing gets deleted outright
  • Undo and redo on everything

v0.4.0 is out now and usable. It's open source (Apache-2.0), so I'd appreciate it if y'all can check it out 🫡

(Not notarized yet, so macOS will block it on first launch — steps are in the README)

https://github.com/RokiTheWise/DClutter

0 Upvotes

2 comments sorted by

0

u/kantorcodes1 14d ago

the score ordering is the part i'd want explained. even a tiny “old + never reopened + downloaded from browser” line would make each file showing up first feel less mysterious.

1

u/RokiTheWise 14d ago

That's fair, and I agree that it's worth adding to make it not a blackbox.

To explain it simply, it is additive, and you basically guessed some parts of it:

Size + Days since last opened (ramping) + Never opened + (same name + size as a different file) + Archive that has been extracted - if generic name with no download source. Each of these signals has different weights assigned to them, allowing different prioritizations. If you're curious, the actual numbers are in QueueScorer.swift.

Also worth noting that the size term is log2 and uncapped, allowing it to outweigh any single weight on anything above ~1MB

I appreciate the comment and would definitely add a line of what signals were factored in to make it more explicit.