
A nostalgia project that turned into a real filesystem tool the moment its author needed a reproducible disk layout — and kept the screensaver.
The author’s own framing is the honest one, and it puts the words in the right order: “A real graphical defragmenter for Linux. Occasionally useful but weirdly satisfying.” He moved to Linux twenty-odd years ago and the Windows utility he missed most was the defragmenter — not because ext4 needs a weekly ritual, but because the block map was an accidental interface that made the machine legible. You could watch the filesystem reorganise itself. Nothing since has offered that.
The part the first write-up here missed is why it stopped being nostalgia. He was testing a high-throughput logger and needed a reproducible storage layout; fragmentation and extent allocation were adding measurable variance to the results, on NVMe, where fragmentation is supposed to have stopped mattering. So the toy became an instrument, and it shows in what it will tell you: how files, free space and filesystem metadata are actually allocated, and which files are in pieces.
It is also not what it looks like from the outside. This is not a GUI bolted onto e4defrag and filefrag. For ext4 it reads allocation maps through FS_IOC_GETFSMAP, maps individual files through FS_IOC_FIEMAP, and moves extents with the kernel’s EXT4_IOC_MOVE_EXT. The graphical app and the CLI never run as root at all — privileged work goes through a narrow PolicyKit-authorised helper over D-Bus that accepts validated opaque operation IDs, not paths or commands. For an alpha-stage tool that rewrites filesystems, that boundary is the most reassuring thing in the repository.
The best single detail is just demo. It decompresses a deliberately fragmented ext4 image the repository ships with, attaches the copy as a temporary loop device, opens the app on it, and deletes the image when you close the window. You get to watch the blocks move without pointing it at anything you own — which is exactly the right way to introduce a program of this kind.
The limits are stated as plainly. It is alpha; back up first. ext4 is the tested path and the only one that defragments online. FAT16 and FAT32 are offline-only for both defragmentation and compaction, and the FAT write path is new enough that the README asks you to use a disposable volume. FAT12 and exFAT analyse but do not move. It needs Linux with Qt 6 and Kirigami, KDE Plasma being the primary target, plus Rust 1.85 and a graphical PolicyKit agent for the privileged mode. MIT or Apache 2.0.