Skip to content

TheHolyOneZ/ZDriveClean

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

23 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation


🧹 ZDriveClean

Visualize Β· Analyze Β· Reclaim
A fast, modern disk-space visualizer and cleaner for Linux β€” built with Tauri v2 and Rust.

License: GPL-3.0 Platform: Linux Version 1.0.0 Tauri v2 Rust React 18



What is ZDriveClean?

ZDriveClean is a desktop application that lets you see exactly where your disk space is going β€” and do something about it. Scan any folder or drive, explore your filesystem through five interactive visualizations, and safely reclaim space by moving files to the system Trash (always recoverable).

Unlike command-line tools, ZDriveClean is designed to be immediately understandable. Unlike bloated system utilities, it starts fast, stays out of your way, and never permanently deletes anything without your confirmation.


Features

πŸ”­ Five visualization modes

Mode Description
Browser File-manager-style list with size bars, sort by size or name, type filter (all / folders / files), and live search
Treemap Hierarchical canvas treemap β€” each top-level folder gets its own color family; depth progressively darkens the shade so hierarchy is immediately readable
Sunburst Radial partition chart; click any arc to drill into a subdirectory, click the center circle to navigate back up
Largest Files Flat sorted list of the top 1 000 biggest files β€” filterable by extension chip and searchable by name or full path
Apps All detected installed applications across Flatpak, Snap, dpkg, rpm, pacman and AppImages, sorted by disk usage

🧹 Safe, recoverable cleanup

  • Click the red mark button on any file or folder in any view to add it to the cleanup queue
  • The queue dock at the bottom tracks a running total of selected items and bytes
  • Review & Clean opens a modal with per-item checkboxes, search bar, bulk select/deselect, and a total size count
  • Clicking Trash moves everything to the OS Trash (~/.local/share/Trash) β€” nothing is permanently deleted until you choose to empty the Trash
  • After every cleanup the app automatically rescans so all views reflect the updated state immediately

πŸ’‘ Smart suggestions sidebar

ZDriveClean analyzes your scan and surfaces known-safe cleanup categories in a persistent right-hand sidebar:

  • Browser & app caches β€” Firefox, Chrome, Discord, Slack, and more detected under ~/.cache
  • Temp files & leftovers β€” /tmp, old .deb / .AppImage installers left in ~/Downloads
  • Dev build artifacts β€” node_modules, target, .next, dist, __pycache__, .gradle, .turbo and a dozen more
  • Large + old files β€” files over 100 MB that haven't been touched in over a year
  • Duplicate files β€” on-demand blake3 content hashing that groups byte-identical copies and shows reclaimable bytes per group

Each category carries a safety label (safe or review) and an Add all to queue button.

πŸ–₯️ Linux app detection

The Apps tab detects installed software from every major package manager on Linux:

Source How
Flatpak flatpak list --app or scanning ~/.local/share/flatpak/app/
Snap snap list with sizes read from /snap/<name>/
dpkg dpkg-query with Installed-Size metadata
rpm rpm -qa with %{SIZE} format
pacman expac (fast single-pass) or pacman -Qi fallback
AppImage File scan of ~/Applications, ~/Downloads, /opt

Source filter chips, live search, and proportional size bars make it easy to spot the heaviest packages at a glance.

⚑ Performance

  • Parallel filesystem walk powered by jwalk β€” scans a large drive in seconds, not minutes
  • In-memory tree held in Rust; the frontend lazily fetches subtrees on demand β€” no multi-GB JSON serialization
  • Virtualized lists via @tanstack/react-virtual β€” 100 000-entry lists scroll at 60 fps
  • Canvas rendering for treemap and sunburst β€” no SVG DOM overhead, smooth at any tree size
  • Module-level view cache β€” switching between the five tabs is instant after the first load per path

πŸ› οΈ Quality of life

  • Reveal in file manager β€” every row in every list view has a hover button that calls xdg-open on the containing folder; treemap and sunburst tooltips have a link too
  • Rescan button in the top bar re-scans the same folder without returning to the drive picker
  • Cancel during scan β€” stop a runaway scan without killing the app
  • Persistent queue β€” your marks survive a restart (saved as JSON in the app data directory)
  • Search in Browser, Largest Files, Apps, and the Cleanup Queue modal
  • Tilde expansion β€” type ~/Downloads in the custom path box and it resolves correctly
  • Error state for invalid or inaccessible paths β€” shows the exact error and a Go Back button
  • No right-click context menu β€” clean, intentional desktop-app feel

Tech stack

Layer Technology
Desktop shell Tauri v2 β€” Rust core + system WebView (no bundled Chromium)
Frontend framework React 18 + TypeScript, bundled with Vite
State management Zustand
Visualizations d3-hierarchy layout math β†’ HTML5 <canvas>
List virtualization @tanstack/react-virtual
Icons lucide-react
Package manager pnpm
Filesystem walk jwalk β€” parallel, Rayon-backed directory traversal
System disk info sysinfo
Trash integration trash β€” XDG Trash on Linux
Duplicate hashing blake3
Async runtime Tokio

Getting started

Pre-built binaries

The easiest way to install ZDriveClean is to grab a pre-built binary from the website:

https://zsync.eu/zdriveclean/

Packages available: .deb (Debian/Ubuntu), .rpm (Fedora/RHEL), .AppImage (universal).

Prerequisites

Build from source

git clone https://github.com/TheHolyOneZ/ZDriveClean.git
cd ZDriveClean

pnpm install
pnpm tauri build

The compiled binary and installable bundles (.deb, .rpm, .AppImage) appear in src-tauri/target/release/bundle/.

Development

pnpm tauri dev

Hot-reload for the React frontend is active; Rust changes trigger a full recompile.


How to use

  1. Launch β€” the drive picker lists your mounted volumes with used/free gauges. Click a drive, or type any custom path (tilde is supported) and press Scan.
  2. Explore β€” switch between the five views using the tab bar at the top. Use the breadcrumb trail to navigate into subdirectories.
  3. Mark for cleanup β€” click the red button on any file or folder you want to remove. Marked items turn red across all views.
  4. Review β€” the dock at the bottom shows your running total. Click Review & Clean to inspect the full list, use checkboxes to adjust, and confirm your selection.
  5. Trash β€” confirm once. Files are moved to the OS Trash. Nothing is permanently gone until you empty the Trash yourself.
  6. Rescan β€” the app rescans automatically after every cleanup. Click the Rescan button in the toolbar any time to manually refresh.

License

ZDriveClean is free software released under the GNU General Public License v3.0.
You are free to use, study, modify, and distribute it β€” see LICENSE for the full terms.


Built by TheHolyOneZ

About

Fast, modern disk-space visualizer and cleaner for Linux. Five interactive views, smart cleanup suggestions, and safe Trash-based deletion. Built with Tauri v2 + Rust + React.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors