硬盘满了,却不知道空间被谁吃掉。翻文件夹翻到眼花,这是很多人都有过的体验。一个叫 Omarchy 的个人项目,想用另一种方式回答这个问题。

它用 Rust 语言和 GPUI 图形界面库写成,扫描对象可以是主目录,也可以是整块硬盘。扫完之后,结果不是一列文件清单,而是一张嵌套马赛克。

矩形面积,就是文件实际占的空间

Omarchy 采用的是 Treemap 算法。它把层级化的文件系统映射成二维矩形,每个矩形对应一个文件或目录,面积大小直接对应实际占用空间。

这种方式的好处在于,大文件会以肉眼可见的大色块跳出来,不需要逐层点开目录去比对。哪里占用了空间,看一眼图就知道。

相比传统的列表式展示,嵌套马赛克把"大小"这个抽象数字变成了可以直接感知的视觉面积。作者自己的说法是:把结果画成嵌套马赛克,矩形面积就是实际占的空间。

Rust 加 GPUI 的组合

技术选型上,Omarchy 用了 Rust 加 GPUI。Rust 提供高性能和内存安全,GPUI 负责构建跨平台图形界面。

磁盘扫描本身是 I/O 密集型任务,界面渲染又要求流畅响应,这套组合正好对应这两头的需求。对于系统级工具来说,这也是当下比较受关注的一条开发路径。

Omarchy 目前是一个个人项目,定位很聚焦:只做磁盘空间可视化这一件事。功能不铺开,把"哪里占用了空间"这个问题用一张图讲清楚。