Skip to content

CleanMate 2.1.0

Choose a tag to compare

@github-actions github-actions released this 01 Nov 12:32
· 26 commits to main since this release

Added

  • Desktop search index (User & App Junk, not pre-selected): the file search index of GNOME (Tracker / LocalSearch, ~/.cache/tracker3) and KDE (Baloo, ~/.local/share/baloo), which can grow to several GB. Reset with localsearch3/tracker3 reset --filesystem or balooctl6 purge when installed, otherwise the folder is emptied while the indexer is not running. File search is slow or incomplete until it is rebuilt; indexing settings are kept.
  • GPU shader cache (User & App Junk, not pre-selected): shaders compiled by Mesa, NVIDIA and Qt (often 1–5 GB on gaming machines), each folder listed with its size. Skipped while Steam, Lutris, Heroic, Gamescope or Wine/Proton run; a game may stutter briefly the first time afterwards.
  • Welcome (desktop app): the first time it opens, three short steps — what CleanMate cleans and how it keeps your files safe, what needs your password and what it never touches, and the main options (language, automatic cleaning, scan reminder, low disk alert), saved like in Settings. Main menu → Getting Started… shows it again.
  • Report a Bug… (desktop app, main menu): shows your CleanMate version, Ubuntu version, desktop (GNOME, Wayland or X11), how CleanMate was installed (deb, PPA, snap…), language and last five activity lines — without your user name or personal file paths — then opens a new GitHub issue with them filled in. Nothing is sent until you submit it. Suggest a Feature… opens the feature request form and Share CleanMate copies the website link. cm --version prints the same details, and --json sysreport gives them to other tools.
  • Startup Items (both apps): login entries and systemd user services whose program is gone — left behind by an app you removed — are marked Missing and listed first under Broken items in the desktop app, with Remove (the file goes to the Trash, a service is turned off first; Undo puts it back). The terminal app marks them with ! and moves them to the Trash with t (z puts them back). --json startup adds missing and missing_cmd.
  • Low disk alert and scan reminder (both apps): a notification when / has less than 10 % free (Settings → Low disk alert: 5–20 % or Off; once a day at most), and, when Settings → Scan reminder is on, when no scan ran for a week or a month. A daily systemd user timer checks, the desktop app checks the disk when it opens, and clicking the notification opens CleanMate. cm --check checks now.
  • Uninstaller (both apps): Reset an app — it stays installed and its data in your home (config, cache, data and state folders; a Flatpak app's ~/.var/app data, a snap's current revision) goes to the Trash, so it starts as if new. The desktop app lets you untick folders and offers Restore; the terminal app resets with r and puts it back with z. Refused while the app runs.
  • Uninstaller (both apps): AppImage apps — an AppImage with a launcher in ~/.local/share/applications (made by hand, AppImageLauncher or Gear Lever) is listed as kind AppImage, its size the file plus its folders in your home. Uninstalling moves the file, its launcher and the icon only it uses to the Trash, as you and without a password; Restore (desktop app) or z (terminal app) puts it back. A running AppImage is skipped.
  • Privacy (both apps): browsing history, the downloads list and cookies of Firefox, Chrome, Chromium, Brave, Edge, Vivaldi and Opera (deb, Snap and Flatpak, every profile), one item per browser with the number of entries. Passwords, bookmarks and extensions are kept; clearing signs you out of websites. Not pre-selected, skipped while the browser runs; Firefox needs sqlite3.
  • Developer Junk (both apps): old Android SDK components — the NDK (1–4 GB each), build-tools, SDK platform and CMake versions an SDK Manager update leaves behind in ~/Android/Sdk, ANDROID_HOME or ANDROID_SDK_ROOT. The newest of each kind and the versions a project in your home pins in build.gradle, build.gradle.kts or local.properties are kept. Not pre-selected, deleted for good (the SDK Manager downloads any version again), skipped while Android Studio, Gradle or the emulator runs; each version on its own in the desktop app.
  • Developer Junk (both apps): old extension versions of VS Code, VS Code Insiders, VSCodium, Cursor and Windsurf (also the Flatpak builds) — each extension update leaves the previous version behind, often 100–500 MB. The newest version and the one the editor uses are kept. Not pre-selected, deleted for good (the editor downloads any version again), skipped while that editor runs; each extension on its own in the desktop app.

Changed

  • System Overview (desktop app): Freed by CleanMate shows three cards with big numbers — the last 30 days, in total and the last cleanup with its date and time — and a bar per day over the last 30 days; hover a bar for the day and what it freed. The numbers count up once when the page opens, unless animations are turned off in the system settings.

  • App icon: the same broom and sparkles as the macOS app, on a white tile with a gray-to-black glyph.

  • Smart Scan is faster on a computer with many projects: idle node_modules, project build folders and editor data of deleted projects are measured several at a time (up to one per CPU) and their sizes are kept in ~/.cache/cleanmate until something in the folder changes: a file added or removed up to three levels down, or anything CleanMate moves to the Trash or puts back inside it (a week at most). On 50 projects these items take 0.24 s instead of 0.38 s, and 0.10 s on the next scan.

  • Smart Scan no longer waits about a second for Unused packages on a computer with many packages: apt now works out the list from the installed packages alone, without loading the package lists, and the answer is kept in ~/.cache/cleanmate until a package is installed, removed or marked, apt's settings change or another kernel runs (a day at most). With 2700 packages (Ubuntu 24.04 container) this item takes 0.09 s instead of 1.25 s, under 0.02 s on the next scan, and a whole Smart Scan 0.64 s instead of 1.44 s; the packages found and what cleaning removes are unchanged.

  • Smart Scan starts and finishes sooner: simple items (caches, AI tool folders, Trash) are scanned a few per process instead of one process each, the scan wakes when an item is done instead of every 0.1 s, and loading reads your shell startup files once instead of running grep per variable. Measured in an Ubuntu 24.04 container on a busy machine (the scan of tests/bench-scan.sh, old and new version taking turns, median of 15): a first scan 0.62 s instead of 1.18 s, a scan again 0.58 s instead of 1.05 s. Results are unchanged.

Fixed

  • Project build folders could leave out a project at random during Smart Scan, when another item was reading a folder of it at the same moment.
  • Docker sizes (both apps) were wrong or missing when the system language writes decimals with a comma (Vietnamese, German, French…): a 1.5 GB volume showed as 1 GB, and unused volumes or the build cache sized by docker system df could show 0 B and drop out of the scan. Sizes like Docker's "1.5GB" now read the same in every language.