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.
Modules§
- audio
- Inline audio playback.
- cmd
- Launch arguments and the IPC wire format for controlling a running panel.
- config
- Configuration and XDG persistence.
- fs
- Non-visual filesystem primitives.
- ipc
- Single-instance IPC for tree-space.
- preview
- Inline file previews.
- ui
- GTK/relm4 layer: the panel window, toolbar and file tree.