Expand description
tree-space — a dockable, keyboard-first file manager panel for Wayland/Hyprland.
The crate is split into three layers:
config— TOML configuration and XDG state persistence. Pure serde code, fully unit-tested, no GTK imports.fs— the non-visual file-management core:fs::model— a lazy, filesystem-agnostic tree model (expand/collapse, sorting, filtering, incremental updates from change events). Directory listings are read through thefs::model::DirSourcetrait so tests can substitute an in-memory filesystem.fs::ops— create/rename/copy/move/duplicate/trash operations behind thefs::ops::TrashServiceabstraction (GIO trash in production, a recording fake in tests).fs::watcher—notifyinotify wrapper that maps raw filesystem events onto the model’sfs::Changevocabulary.
ui— relm4/GTK4 components. The UI layer is intentionally thin: it rendersfs::model::TreeModeland forwards user intents back into it.
Keeping the model free of GTK imports means the interesting logic can be
tested headlessly with cargo test.