Why I Built Tidey: A Mac Desktop Cleaner
The story behind Tidey, a minimal macOS app that automatically organizes your messy desktop into tidy folders.
My desktop was a disaster. Screenshots, downloads, random files - all scattered across the screen. I tried existing solutions but they were either too complex or too expensive for such a simple task.
The Idea
I wanted something that just works:
- One click to organize
- Smart categorization (images, documents, code, etc.)
- No configuration needed
- Lives in the menu bar
Building with Swift
This was my first serious macOS app. SwiftUI made the UI straightforward, but I learned a lot about:
File System Permissions
macOS sandboxing is strict. Getting the right entitlements for desktop access took some trial and error.
Menu Bar Apps
Creating a menu bar app is different from a regular window app. You need to handle the NSStatusItem and popover properly.
let statusItem = NSStatusBar.system.statusItem(
withLength: NSStatusItem.squareLength
)
if let button = statusItem.button { button.image = NSImage(named: "MenuBarIcon") button.action = #selector(togglePopover) }
File Categorization
I use UTI (Uniform Type Identifiers) to categorize files:
func categorize(_ url: URL) -> Category {
guard let uti = UTType(filenameExtension: url.pathExtension) else {
return .other
}
if uti.conforms(to: .image) { return .images } if uti.conforms(to: .pdf) || uti.conforms(to: .text) { return .documents } if uti.conforms(to: .sourceCode) { return .code } // ... }
Launch and Reception
I launched on Product Hunt and got a modest response. The best feedback came from users who said it solved exactly the problem they had.
What's Next
I'm working on:
- Scheduled auto-cleaning
- Custom rules
- iCloud sync for preferences