# QDirStat: Qt Disk Usage Analyzer for Linux Without KDE

> QDirStat is the Qt6 rewrite of KDirStat by its original author, packaged as a plain Qt application with treemaps, package views and configurable cleanup actions. It is for engineers who need to find what is eating a filesystem, not for people who want a terminal-only scanner.

**shundhammer/qdirstat** — QDirStat - Qt-based directory statistics (KDirStat without any KDE - from the original KDirStat author)

- Repository: https://github.com/shundhammer/qdirstat
- Stars: 2,595 · Forks: 162
- Language: C++
- License: GPL-2.0
- Published: 2026-09-28 · Updated: 2026-09-28 · Language: en
- Canonical page: https://hysenlabs.com/projects/shundhammer-qdirstat

## The problem QDirStat solves, and who actually needs it

A filesystem fills up and the usual tools tell you which directory is largest, not which file inside it is. QDirStat answers the second question. The README describes it as "a graphical application to show where your disk space has gone and to help you to clean it up", and the two views it offers exist for two different questions: the tree view for hierarchy, the treemap for proportion. The treemap draws a large file as a large rectangle and a small file as a small rectangle, with colour mapped to file type, so a directory holding a handful of video files looks different at a glance from one holding thousands of small logs.

The audience is narrower than the topic list suggests. QDirStat is a desktop application. It targets Linux, BSD, Unix-like systems and macOS, and the README states that it runs on every X11-based desktop and in a Docker container. If you administer servers over SSH with no display, this is the wrong shape of tool, and the README's own framing points elsewhere. If you maintain a workstation, a build machine you also use interactively, or a home server with a desktop session, the treemap-plus-cleanup combination is the reason to pick it over a size-sorting utility.

One detail matters for anyone who remembers KDirStat: the README says this is a Qt-only port of the old Qt3/KDE3-based KDirStat, now based on Qt6, and that it does not need any KDE libs or infrastructure. That is the whole point of the fork. You get the KDirStat interaction model without pulling in a KDE stack on a GNOME or Xfce machine.

## How the tree, treemap and package views fit together

QDirStat is a single Qt application with several views over one scanned tree. The main window screenshot in the README shows the layout: tree view in the upper half, treemap below, details panel on the right. Selection is shared. The README notes multi-selection in both the tree and the treemap, so selecting several rectangles narrows the tree to those files and vice versa. Clicking a treemap rectangle shows where in the tree the file is, and the README says you can move it to the trash from there.

The package manager support is the part that distinguishes QDirStat from generic disk tools. The README lists showing what software package a system file belongs to, a Packages view showing disk usage of installed software packages and their individual files, and an Unpackaged files view showing what files in system directories do not belong to any installed software package. That last view is the interesting one: on a distribution-managed system, files under system directories that no package owns are either local configuration, leftovers from a removed package, or something you did not expect. QDirStat makes that set visible rather than leaving you to reconcile package metadata by hand.

The remaining views are narrower. Disk usage per file type by filename extension, a file size histogram, a File Age View, and free, used and reserved disk size for each mounted filesystem, which the README compares to df. Treat these as supporting evidence rather than the reason to install. The file age view is useful when the question is not "what is big" but "what is old and big", which is a different cleanup decision.

Cleanup actions are the mechanism that turns inspection into work. The README describes an unlimited number of user-defined cleanup actions, with errors of cleanup actions and their output shown properly. That is a design choice worth naming: QDirStat does not ship a fixed menu of deletions. You define the commands, and the application reports what they did. It also means the safety of a cleanup run is your responsibility, not the application's.

## Installing QDirStat and running a first scan

The README points at ready-made binary packages for various Linux distributions under a Ready-made Packages section, and separately documents QDirStat Docker Containers. It does not spell out distribution package manager commands, and the repository files given here contain no install command, so the practical route is to look up QDirStat in your distribution's package index or follow the Ready-made Packages section of the README.

If you prefer to build from source, the repository root contains qdirstat.pro, which is a qmake project file. The README has a Building section, and the migration to Qt6 in the 2.0 release notes means the Qt6 development packages are what you need. The .pro file is the build entry point, and the README's Building section is where the exact toolchain invocation is documented.

After starting QDirStat, the first real use is to point it at a directory rather than at the whole filesystem. Scanning / as an unprivileged user produces permission errors that the README's Troubleshooting section is the place to read about. Start with your home directory or a build tree, watch the treemap fill in, then select the largest rectangles and use the details panel to see the full path before deciding anything. The README's own example workflow is exactly this: click a rectangle, see where the file is in the tree, and move it to the trash if you want.

## Where QDirStat is the wrong tool

The clearest limitation is structural: QDirStat is a GUI application. The README lists no command line mode, and the topics include gui rather than cli. If your workflow is a cron job that reports the ten largest directories on a fleet of servers, QDirStat does not fit, and no amount of Docker packaging changes that, because the container still runs the graphical application.

The second limitation is platform. The README has a Windows Compatibility section, but it does not present a supported native Windows build, and the target platform list is Linux, BSD, Unix-like systems and macOS. If you are looking for a WinDirStat replacement on Windows itself, QDirStat is not that, even though the README names WinDirStat among related software and the search questions pair the two.

The third is the cleanup model. Because cleanup actions are user-defined commands, QDirStat will happily run whatever you configure, including something destructive, and the README's framing of showing errors and output is about visibility after the fact, not about preventing the action. There is no documented undo beyond the trash move described for individual files. If you want a tool that constrains what deletion means, this is not it.

Finally, scanning large trees is I/O bound and the README does not publish performance figures. Exclude rules and configurable file categories exist precisely because scanning everything is often not what you want. Treat the exclude configuration as part of the first setup, not an advanced option.

## QDirStat against ncdu, Filelight, Baobab and WinDirStat

The related searches pair QDirStat with ncdu, Filelight, Baobab and WinDirStat, and the differences are real rather than cosmetic.

ncdu is a terminal user interface. It runs over SSH, it is fast to start, and it gives you a sorted list you navigate with the keyboard. It has no treemap and no package ownership views. If your problem is a remote server and a shell, ncdu is the shorter path, and QDirStat's Docker container does not close that gap because you still need a display for the Qt window.

Filelight and Baobab are the KDE and GNOME graphical disk usage tools respectively. Both draw radial or ring-based visualisations rather than a rectangular treemap. QDirStat's treemap is the WinDirStat-style layout, where area is proportional and the geometry is rectangular, which many people find easier to compare at a glance. The package and unpackaged-files views have no equivalent in either, as far as the README describes them.

WinDirStat is the Windows original of this visual style. QDirStat is the Unix-side answer to it, and the README explicitly positions QDirStat as the successor line to KDirStat rather than a port of WinDirStat. If you have used WinDirStat and want the same reading experience on Linux, this is the closest match.

KDE users who already have KDirStat or K4DirStat installed have less reason to switch. The README's argument for QDirStat over those is the absence of KDE dependencies plus the newer features: multi-selection, unlimited cleanup actions, configurable categories and colours, and the package views.

## Maintenance, licensing and what an upgrade costs you

The repository is not archived, and the last push was on 2026-09-20. The 2.0 release was announced on 2026-01-18, following 1.9 on 2024-01-14 and 1.8.1 on 2022-06-30. That cadence is worth reading plainly: roughly two years between 1.8.1 and 1.9, roughly two years between 1.9 and 2.0. This is not a project that ships monthly, and planning should assume that a bug you report may sit for a long time.

The 2.0 release notes describe a migration to Qt6, an infrastructure for program translations with the expectation that somebody volunteers to create a separate GitHub project and package named qdirstat-lang, and a new checkbox in the General tab for ISO date and time format. The translation point deserves attention: the release notes say the infrastructure is added in case somebody volunteers, which means translations are not shipped with 2.0. If you need a localised interface, you are depending on a project that does not yet exist.

The upgrade cost is therefore concentrated in the Qt generation change. A distribution that still packages 1.x gives you the older Qt dependency; a distribution that packages 2.0 gives you Qt6. If you build from source, the Qt6 development packages and the qdirstat.pro file at the repository root are what you need.

Licensing is GPL V2, stated in both the README and the LICENSE file. That is a copyleft licence. If you are considering linking QDirStat into something you distribute, or shipping a modified build, the GPL terms apply to the combined work, and the practical consequences are a question for your own legal review rather than something this article can settle.

## Conclusion

Adopt QDirStat when you want a graphical treemap with per-file-type colouring, package ownership views and user-defined cleanup actions on a Linux, BSD or macOS desktop, and you are willing to install Qt6 build dependencies or a distribution package. Do not adopt it as a headless scanner for scripts or CI, and do not expect a Windows build: the README has a Windows Compatibility section, but it does not document a supported native build. Before relying on it, verify that your distribution ships a 2.0 package, since the 2.0 release notes describe a migration to Qt6 and older packages are built against the previous Qt generation.

## FAQ

### What are the key differences between KDirStat and QDirStat?

QDirStat is a Qt-only port of the Qt3/KDE3-based KDirStat, based on Qt6 and requiring no KDE libraries or infrastructure. The README also lists features added since KDirStat, including multi-selection in the tree and treemap, unlimited user-defined cleanup actions, configurable file categories and colours, and package manager views.

### How do I install QDirStat?

The README points to a Ready-made Packages section with installable binary packages for various Linux distributions, and separately documents Docker containers. For building from source, the repository root contains qdirstat.pro, a qmake project, and the 2.0 release notes describe a migration to Qt6.

### Is there an open-source disk space analyzer available?

QDirStat is one: it is licensed GPL V2 and its README describes it as a graphical application to show where your disk space has gone and to help you clean it up. It targets Linux, BSD, Unix-like systems and macOS.

### What is a Linux equivalent of WinDirStat?

QDirStat uses the same rectangular treemap idea, drawing a large file as a large rectangle and a small file as a small rectangle, with colour mapped to file type. The README names WinDirStat among related software, though QDirStat is presented as the successor to KDirStat rather than a port of WinDirStat.

### How do I use QDirStat?

Point it at a directory, read the tree view for hierarchy and the treemap for proportion, then click a rectangle to see where the file sits in the tree. The README says you can move a file to the trash from there, and that cleanup actions are user-defined commands whose output and errors are shown.

### Is QDirStat safe?

The README does not make a safety claim. It is GPL V2 software whose cleanup actions are user-defined commands, so what runs during a cleanup is whatever you configure; the README describes showing errors and output of cleanup actions rather than restricting them.

## Sources

- [Issues](https://github.com/shundhammer/qdirstat/issues)
- [License: GPL-2.0](https://github.com/shundhammer/qdirstat/blob/master/LICENSE)
- [README](https://github.com/shundhammer/qdirstat/blob/master/README.md)
- [Releases](https://github.com/shundhammer/qdirstat/releases)
- [shundhammer/qdirstat on GitHub](https://github.com/shundhammer/qdirstat)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/shundhammer-qdirstat
