FileMan is a fast, responsive two-panel file manager built with Rust, egui, and blade-egui. Navigation stays snappy even in large directories by doing all I/O off the UI thread and streaming results into the view.
- Dual-panel layout with independent navigation, history (Alt+Left/Right), panel swap (Ctrl+U), and tab support.
- Async I/O — directory loading streams in batches; all I/O runs off the UI thread so navigation never stalls.
- SFTP remote browsing — connect to any SSH host (reads
~/.ssh/config), navigate and operate on remote files as naturally as local ones. - Remote search (Alt+F7 on a remote panel) — runs
findorgrepover SSH; results stream back and open directly. - Archive navigation for zip, tar, tar.gz, and tar.bz2 — browse like regular folders, copy files out, or open with system apps.
- Preview (F3): text with syntax highlighting, images (JPEG, PNG, GIF, WebP, BMP, TGA, HDR, DDS) including animated GIF, and archive listings.
- Inline editor (F4) with syntax highlighting; create new files with Shift+F4.
- File operations: copy (F5), move (F6), delete (F8), rename (Shift+F6), new directory (F7) — all work on local and remote panels, with a progress bar for large transfers.
- Search (Alt+F7) by name or content, with wildcard and case-insensitive options; results displayed as a virtual folder you can navigate and operate on.
- Theming: external theme files in
themes/(JSON, YAML, or TOML), toggle with F9, pick with F10.
| Key | Action |
|---|---|
| Enter | Open |
| Shift+Enter | Open with system default app |
| Tab / Ctrl+I | Switch panels |
| Ctrl+U | Swap panels |
| Ctrl+T | New tab |
| Ctrl+W | Close tab |
| Ctrl+Tab / Ctrl+Shift+Tab | Next / previous tab |
| Alt+Left / Alt+Right | Back / forward |
| Backspace / Ctrl+PgUp | Parent folder |
| Ctrl+PgDn | Open selected |
| Ctrl+Left / Ctrl+Right | Open selected dir in other panel |
| F1 | Help |
| F2 / Ctrl+R | Refresh |
| F3 | Preview |
| Ctrl+F | Find in preview |
| F4 | Edit |
| Shift+F4 | New file |
| Alt+F5 | Pack (create archive) |
| F5 | Copy |
| F6 | Move |
| Shift+F6 | Rename |
| F7 | New directory |
| Alt+F7 | Search by name |
| Shift+Alt+F7 | Search by content |
| F8 | Delete |
| F9 | Toggle theme |
| F10 | Theme picker |
| Insert | Mark / unmark |
| Space | Compute folder size |
| Alt+Enter | Properties |
| Ctrl+G | Quick jump |
| Ctrl+Shift+C | Copy path to clipboard |
| Ctrl+, | Settings |
cargo build --release
cargo run --releaseOpen in a specific directory:
cargo run --release -- /path/to/dirEnable verbose logging:
RUST_LOG=info cargo runIf you see NoSupportedDeviceFound, blade-graphics couldn't find a supported GPU backend.
On Linux, this usually means Vulkan drivers aren't available. You can either install Vulkan
drivers or use the GLES fallback:
RUSTFLAGS="--cfg gles" cargo runInstall cargo-bundle from git (the crates.io release has a Windows bug):
cargo install cargo-bundle --git https://github.com/burtonageo/cargo-bundleThen build the bundle:
cargo bundle --releaseOn macOS this produces a .app bundle, on Windows an .msi installer.
Icons are configured in Cargo.toml via package.metadata.bundle.icon.
Install the binary, desktop entry, and icon to ~/.local (the standard per-user prefix):
make installTo install system-wide instead:
sudo make install PREFIX=/usrTo remove:
make uninstallSee CONTRIBUTING.md for repository layout, testing, and code style.