← На главную

Leaves: treemap дисков через SSH с X-ray поддержкой

16.07.2026 16:03 · hackernews

Leaves — консольный анализатор дискового пространства, вдохновлённый WinDirStat и QDirStat. Он показывает файлы и папки в виде иерархии вложенных прямоугольников: площадь каждого прямоугольника пропорциональна размеру объекта на диске. Из-за ограниченного разрешения символов точность ниже, чем у графических утилит, зато Leaves работает через SSH, когда графический интерфейс недоступен.

Собрать утилиту можно из исходников — для этого нужен Rust (устанавливается через rustup) и базовые инструменты сборки. Для повторяемых сборок подойдёт Nix — достаточно выполнить nix-shell в директории проекта. Готовые бинарники для некоторых платформ лежат на странице релизов. После сборки Leaves запускается через cargo run --release -- [опции] DIR_TO_SCAN или устанавливается через cargo install.

По умолчанию утилита сканирует текущую директорию, игнорирует скрытые папки и файлы, подходящие под паттерны .gitignore и .ignore. Флаг -A отключает все автоматические игнорирования, а -H, -I, -G, -E включают или отключают конкретные источники. Глобовые паттерны с ! позволяют переопределять исключения. Параметр --max-depth (по умолчанию 5) задаёт глубину дерева, до которой Leaves хранит в памяти все файлы; на большей глубине файлы группируются по расширениям. Во время работы глубину можно менять клавишами + и -.

Интерфейс состоит из трёх зон: заголовок (путь, размер, число файлов), боковая панель с деревом каталогов и центральный treemap. Навигация по дереву — стрелками, пробел открывает/закрывает папки. Выделенный элемент и его предки подсвечиваются утолщёнными границами. Enter фокусируется на выбранной папке, Backspace возвращает к родителю. Выйти за пределы начальной директории нельзя. Мышь тоже работает.

Цвета: файлы окрашиваются по расширениям в жёлто-оранжево-коричневую гамму, папки — по имени в холодные тона (viridis). Палитры можно поменять через переменную LEAVES_COLORS=swap. Встроено четыре темы: fall, spring, greys, mono. Пользователь может создать свою тему в конфигурационном файле (~/.config/leaves/setings.toml), указав массивы HTML-цветов для папок и файлов. Также поддерживаются переменные LEAVES_DARK_MODE, LEAVES_COLOR_SHIFT, LEAVES_DIR_STYLE.

X-ray режим (-x или клавиша x) группирует файлы сначала по типу, а затем по папкам. В этом режиме можно фокусироваться на группах, но для выхода к родителю нужно вернуться в обычный режим.

Ограничения: Leaves не следует по символическим ссылкам (они не занимают дополнительное место внутри каталога), не детектит жёсткие ссылки (такие файлы будут посчитаны дважды). При сканировании корня / нужно явно исключать виртуальные файловые системы (/dev, /proc и т.д.) через .ignore или отрицательные glob-паттерны. Утилита может загрузить в память миллионы файлов, но очень мелкие будут отображаться точками, и при переключении режимов возможна задержка.

Читать оригинал →