Add Bubble Tea TUI with interactive treemap

Cell canvas renderer with frame cache and a perceptual 256-colour
quantizer; responsive geometry (large/medium/small/too-small);
squarified treemap with nested previews, LOD grouping, category
colouring and adaptive labels; spatial arrow navigation with stable
NodeID selection; zoom and breadcrumbs; modal system (info, help,
confirm, save); list, file-type, top-N, scan-info, duplicate and
comparison views; live search/filter; mouse support; move-to-trash.
This commit is contained in:
Andy Dixon
2026-10-02 08:25:35 +01:00
parent e8c831cb47
commit df8b10c6dd
35 changed files with 5294 additions and 25 deletions
+2 -1
View File
@@ -55,6 +55,7 @@ func run(args []string) int {
si = fs.Bool("si", settings.Units == "si", "use SI units (kB, MB) instead of IEC (KiB, MiB)")
logical = fs.Bool("apparent", settings.SizeMode == "logical", "size by logical (apparent) size instead of disk usage")
theme = fs.String("theme", settings.Theme, "colour theme: default, dark, high-contrast, mono")
colorMode = fs.String("color", "auto", "colour support: auto, truecolor, 256, 16, none")
noMouse = fs.Bool("no-mouse", !settings.Mouse, "disable mouse support")
logFile = fs.String("log", "", "write a debug log to `FILE`")
logLevel = fs.String("log-level", "info", "log level: error, warn, info, debug, trace")
@@ -117,7 +118,7 @@ func run(args []string) int {
cfg := &app.Config{
NoUI: *noUI, JSON: *jsonOut, CSV: *csvOut, Depth: *depth, Top: *top, LargestFiles: *largest,
Duplicates: *dups, ReadOnly: *readOnly, Theme: *theme, Mouse: !*noMouse, Load: *load,
Duplicates: *dups, ReadOnly: *readOnly, Theme: *theme, Mouse: !*noMouse, Color: *colorMode, Load: *load,
Settings: settings,
}
if *logical {